search for: bochs_hw_init

Displaying 20 results from an estimated 25 matches for "bochs_hw_init".

Did you mean: bochs_hw_fini
2019 Feb 21
2
[PATCH] drm/bochs: Fix the ID mismatch error
When running RISC-V QEMU with the Bochs device attached via PCIe the probe of the Bochs device fails with: [drm:bochs_hw_init] *ERROR* ID mismatch This was introduced by this commit: 7780eb9ce8 bochs: convert to drm_dev_register To fix the error we ensure that pci_enable_device() is called before bochs_load(). Signed-off-by: Alistair Francis <alistair.francis at wdc.com> Reported-by: David Abdurachmanov <d...
2019 Feb 21
2
[PATCH] drm/bochs: Fix the ID mismatch error
When running RISC-V QEMU with the Bochs device attached via PCIe the probe of the Bochs device fails with: [drm:bochs_hw_init] *ERROR* ID mismatch This was introduced by this commit: 7780eb9ce8 bochs: convert to drm_dev_register To fix the error we ensure that pci_enable_device() is called before bochs_load(). Signed-off-by: Alistair Francis <alistair.francis at wdc.com> Reported-by: David Abdurachmanov <d...
2019 Feb 21
2
[PATCH] drm/bochs: Fix the ID mismatch error
...21, 2019 at 3:52 AM kraxel at redhat.com <kraxel at redhat.com> wrote: > > On Thu, Feb 21, 2019 at 12:33:03AM +0000, Alistair Francis wrote: > > When running RISC-V QEMU with the Bochs device attached via PCIe the > > probe of the Bochs device fails with: > > [drm:bochs_hw_init] *ERROR* ID mismatch > > > > This was introduced by this commit: > > 7780eb9ce8 bochs: convert to drm_dev_register > > > > To fix the error we ensure that pci_enable_device() is called before > > bochs_load(). > > > > Signed-off-by: Alistair Franc...
2019 Feb 21
2
[PATCH] drm/bochs: Fix the ID mismatch error
...21, 2019 at 3:52 AM kraxel at redhat.com <kraxel at redhat.com> wrote: > > On Thu, Feb 21, 2019 at 12:33:03AM +0000, Alistair Francis wrote: > > When running RISC-V QEMU with the Bochs device attached via PCIe the > > probe of the Bochs device fails with: > > [drm:bochs_hw_init] *ERROR* ID mismatch > > > > This was introduced by this commit: > > 7780eb9ce8 bochs: convert to drm_dev_register > > > > To fix the error we ensure that pci_enable_device() is called before > > bochs_load(). > > > > Signed-off-by: Alistair Franc...
2018 Sep 19
0
[PATCH v3 4/5] drm/bochs: support changing byteorder at mode set time
...b4f6bb5219..e7a69077e4 100644 --- a/drivers/gpu/drm/bochs/bochs.h +++ b/drivers/gpu/drm/bochs/bochs.h @@ -58,6 +58,7 @@ struct bochs_device { void __iomem *fb_map; unsigned long fb_base; unsigned long fb_size; + unsigned long qext_size; /* mode */ u16 xres; @@ -121,7 +122,8 @@ int bochs_hw_init(struct drm_device *dev); void bochs_hw_fini(struct drm_device *dev); void bochs_hw_setmode(struct bochs_device *bochs, - struct drm_display_mode *mode); + struct drm_display_mode *mode, + const struct drm_format_info *format); void bochs_hw_setbase(struct bochs_device *boc...
2017 Apr 06
3
DRM_FORMAT_* byte order (was: Re: [PATCH] drm: virtio: fix virtio_gpu_cursor_formats)
...dvga). It supports 32 bpp with depth 24 (DRM_FORMAT_XRGB8888) as the one and only framebuffer format (see bochs_user_framebuffer_create). We still had to add a special register to the virtual hardware so the guest can signal to the host whenever the framebuffer is big endian or little endian (see bochs_hw_init), so both ppc64 and ppc64le guests work properly with the qemu stdvga. So, bigendian guests assume that DRM_FORMAT_XRGB8888 is big endian not little endian. And given that the fourcc codes are used in the userspace/kernel API too (see DRM_IOCTL_MODE_ADDFB2) I think we can't change that any mo...
2017 Apr 06
3
DRM_FORMAT_* byte order (was: Re: [PATCH] drm: virtio: fix virtio_gpu_cursor_formats)
...dvga). It supports 32 bpp with depth 24 (DRM_FORMAT_XRGB8888) as the one and only framebuffer format (see bochs_user_framebuffer_create). We still had to add a special register to the virtual hardware so the guest can signal to the host whenever the framebuffer is big endian or little endian (see bochs_hw_init), so both ppc64 and ppc64le guests work properly with the qemu stdvga. So, bigendian guests assume that DRM_FORMAT_XRGB8888 is big endian not little endian. And given that the fourcc codes are used in the userspace/kernel API too (see DRM_IOCTL_MODE_ADDFB2) I think we can't change that any mo...
2018 Oct 05
0
[PATCH v2] drm/bochs: add edid support.
...= (void *)bochs->edid; + for (i = 0; i < len; i++) { + blob[i] = readb(bochs->mmio+i); + } + + if (!drm_edid_is_valid(bochs->edid)) { + DRM_ERROR("EDID is not valid, ignoring.\n"); + kfree(bochs->edid); + bochs->edid = NULL; + return -1; + } + + return 0; +} + int bochs_hw_init(struct drm_device *dev) { struct bochs_device *bochs = dev->dev_private; @@ -150,6 +185,9 @@ int bochs_hw_init(struct drm_device *dev) } noext: + if (bochs_load_edid(bochs) == 0) + DRM_INFO("Found EDID data blob.\n"); + return 0; } diff --git a/drivers/gpu/drm/bochs/bochs...
2018 Oct 02
0
[PATCH v2 2/2] drm/bochs: add edid support.
...= (void *)bochs->edid; + for (i = 0; i < len; i++) { + blob[i] = readb(bochs->mmio+i); + } + + if (!drm_edid_is_valid(bochs->edid)) { + DRM_ERROR("EDID is not valid, ignoring.\n"); + kfree(bochs->edid); + bochs->edid = NULL; + return -1; + } + + return 0; +} + int bochs_hw_init(struct drm_device *dev, uint32_t flags) { struct bochs_device *bochs = dev->dev_private; @@ -133,6 +168,9 @@ int bochs_hw_init(struct drm_device *dev, uint32_t flags) } noext: + if (bochs_load_edid(bochs) == 0) + DRM_INFO("Found EDID data blob.\n"); + return 0; } diff --g...
2018 Oct 02
0
[PATCH v3 2/2] drm/bochs: add edid support.
...= (void *)bochs->edid; + for (i = 0; i < len; i++) { + blob[i] = readb(bochs->mmio+i); + } + + if (!drm_edid_is_valid(bochs->edid)) { + DRM_ERROR("EDID is not valid, ignoring.\n"); + kfree(bochs->edid); + bochs->edid = NULL; + return -1; + } + + return 0; +} + int bochs_hw_init(struct drm_device *dev, uint32_t flags) { struct bochs_device *bochs = dev->dev_private; @@ -133,6 +168,9 @@ int bochs_hw_init(struct drm_device *dev, uint32_t flags) } noext: + if (bochs_load_edid(bochs) == 0) + DRM_INFO("Found EDID data blob.\n"); + return 0; } diff --g...
2020 Feb 07
2
[PATCH v2] drm/bochs: downgrade pci_request_region failure from error to warning
...rm/bochs/bochs_hw.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bochs/bochs_hw.c b/drivers/gpu/drm/bochs/bochs_hw.c index b615b7dfdd9d..a387efa9e559 100644 --- a/drivers/gpu/drm/bochs/bochs_hw.c +++ b/drivers/gpu/drm/bochs/bochs_hw.c @@ -157,8 +157,7 @@ int bochs_hw_init(struct drm_device *dev) } if (pci_request_region(pdev, 0, "bochs-drm") != 0) { - DRM_ERROR("Cannot request framebuffer\n"); - return -EBUSY; + DRM_WARN("Cannot request framebuffer, boot framebuffer still active?\n"); } bochs->fb_map = ioremap(addr, si...
2020 Feb 07
2
[PATCH v2] drm/bochs: downgrade pci_request_region failure from error to warning
...rm/bochs/bochs_hw.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bochs/bochs_hw.c b/drivers/gpu/drm/bochs/bochs_hw.c index b615b7dfdd9d..a387efa9e559 100644 --- a/drivers/gpu/drm/bochs/bochs_hw.c +++ b/drivers/gpu/drm/bochs/bochs_hw.c @@ -157,8 +157,7 @@ int bochs_hw_init(struct drm_device *dev) } if (pci_request_region(pdev, 0, "bochs-drm") != 0) { - DRM_ERROR("Cannot request framebuffer\n"); - return -EBUSY; + DRM_WARN("Cannot request framebuffer, boot framebuffer still active?\n"); } bochs->fb_map = ioremap(addr, si...
2020 Dec 01
1
[PATCH v2 04/20] drm/bochs: Remove references to struct drm_device.pdev
...ret = bochs_load(dev); diff --git a/drivers/gpu/drm/bochs/bochs_hw.c b/drivers/gpu/drm/bochs/bochs_hw.c index dce4672e3fc8..2d7380a9890e 100644 --- a/drivers/gpu/drm/bochs/bochs_hw.c +++ b/drivers/gpu/drm/bochs/bochs_hw.c @@ -110,7 +110,7 @@ int bochs_hw_load_edid(struct bochs_device *bochs) int bochs_hw_init(struct drm_device *dev) { struct bochs_device *bochs = dev->dev_private; - struct pci_dev *pdev = dev->pdev; + struct pci_dev *pdev = to_pci_dev(dev->dev); unsigned long addr, size, mem, ioaddr, iosize; u16 id; @@ -201,7 +201,7 @@ void bochs_hw_fini(struct drm_device *dev) rele...
2020 Feb 10
1
[PATCH v2] drm/bochs: add drm_driver.release callback.
..._atomic_helper_shutdown(dev); + bochs_hw_fini(dev); drm_dev_put(dev); } diff --git a/drivers/gpu/drm/bochs/bochs_hw.c b/drivers/gpu/drm/bochs/bochs_hw.c index b615b7dfdd9d..48c1a6a8b026 100644 --- a/drivers/gpu/drm/bochs/bochs_hw.c +++ b/drivers/gpu/drm/bochs/bochs_hw.c @@ -168,6 +168,7 @@ int bochs_hw_init(struct drm_device *dev) } bochs->fb_base = addr; bochs->fb_size = size; + bochs->ready = true; DRM_INFO("Found bochs VGA, ID 0x%x.\n", id); DRM_INFO("Framebuffer size %ld kB @ 0x%lx, %s @ 0x%lx.\n", @@ -194,6 +195,10 @@ void bochs_hw_fini(struct drm_device *...
2017 Apr 06
0
DRM_FORMAT_* byte order (was: Re: [PATCH] drm: virtio: fix virtio_gpu_cursor_formats)
...32 bpp with depth 24 (DRM_FORMAT_XRGB8888) as the one and only > framebuffer format (see bochs_user_framebuffer_create). We still had to > add a special register to the virtual hardware so the guest can signal > to the host whenever the framebuffer is big endian or little endian (see > bochs_hw_init), so both ppc64 and ppc64le guests work properly with the > qemu stdvga. > > So, bigendian guests assume that DRM_FORMAT_XRGB8888 is big endian not > little endian. And given that the fourcc codes are used in the > userspace/kernel API too (see DRM_IOCTL_MODE_ADDFB2) I think we can...
2019 Feb 21
0
[PATCH] drm/bochs: Fix the ID mismatch error
On Thu, Feb 21, 2019 at 12:33:03AM +0000, Alistair Francis wrote: > When running RISC-V QEMU with the Bochs device attached via PCIe the > probe of the Bochs device fails with: > [drm:bochs_hw_init] *ERROR* ID mismatch > > This was introduced by this commit: > 7780eb9ce8 bochs: convert to drm_dev_register > > To fix the error we ensure that pci_enable_device() is called before > bochs_load(). > > Signed-off-by: Alistair Francis <alistair.francis at wdc.com&gt...
2019 Feb 22
0
[PATCH] drm/bochs: Fix the ID mismatch error
...el at redhat.com <kraxel at redhat.com> wrote: > > > > On Thu, Feb 21, 2019 at 12:33:03AM +0000, Alistair Francis wrote: > > > When running RISC-V QEMU with the Bochs device attached via PCIe the > > > probe of the Bochs device fails with: > > > [drm:bochs_hw_init] *ERROR* ID mismatch > > > > > > This was introduced by this commit: > > > 7780eb9ce8 bochs: convert to drm_dev_register > > > > > > To fix the error we ensure that pci_enable_device() is called before > > > bochs_load(). > > > >...
2020 Feb 07
0
[PATCH v2] drm/bochs: downgrade pci_request_region failure from error to warning
...file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/bochs/bochs_hw.c b/drivers/gpu/drm/bochs/bochs_hw.c > index b615b7dfdd9d..a387efa9e559 100644 > --- a/drivers/gpu/drm/bochs/bochs_hw.c > +++ b/drivers/gpu/drm/bochs/bochs_hw.c > @@ -157,8 +157,7 @@ int bochs_hw_init(struct drm_device *dev) > } > > if (pci_request_region(pdev, 0, "bochs-drm") != 0) { > - DRM_ERROR("Cannot request framebuffer\n"); > - return -EBUSY; > + DRM_WARN("Cannot request framebuffer, boot framebuffer still active?\n"); > } >...
2018 Dec 19
0
[PATCH 02/14] drm/bochs: split bochs_hw_setmode
...vers/gpu/drm/bochs/bochs_kms.c | 3 ++- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/bochs/bochs.h b/drivers/gpu/drm/bochs/bochs.h index fb38c8b857..4dc1b6384e 100644 --- a/drivers/gpu/drm/bochs/bochs.h +++ b/drivers/gpu/drm/bochs/bochs.h @@ -121,8 +121,9 @@ int bochs_hw_init(struct drm_device *dev); void bochs_hw_fini(struct drm_device *dev); void bochs_hw_setmode(struct bochs_device *bochs, - struct drm_display_mode *mode, - const struct drm_format_info *format); + struct drm_display_mode *mode); +void bochs_hw_setformat(struct bochs_device *b...
2023 Mar 15
0
[PATCH v3 07/38] drm: handle HAS_IOPORT dependencies
...OPORT as dependency for > those drivers using them. In the bochs driver there is optional MMIO > support detected at runtime, warn if this isn't taken when > HAS_IOPORT is not defined. Not that I care a whole lot, but there should really only be one warning or even failure to probe at bochs_hw_init() for !bochs->mmio && !IS_ENABLED(CONFIG_HAS_IOPORT), not warnings all over the place. Moreover, the config macro is CONFIG_HAS_IOPORT instead of HAS_IOPORT that you check for below. BR, Jani. > There is also a direct and hard coded use in cirrus.c which according to > the comme...