2018-12-20 09:09:09

by Gerd Hoffmann

[permalink] [raw]
Subject: [PATCH v2] drm/bochs: add edid present check

Check first two header bytes before trying to read the edid blob,
to avoid the log being spammed in case qemu has no edid support (old
qemu or edid turned off).

Fixes: 01f23459cf drm/bochs: add edid support.
Signed-off-by: Gerd Hoffmann <[email protected]>
---
drivers/gpu/drm/bochs/bochs_hw.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/bochs/bochs_hw.c b/drivers/gpu/drm/bochs/bochs_hw.c
index c90a0d492f..e1f8ffce00 100644
--- a/drivers/gpu/drm/bochs/bochs_hw.c
+++ b/drivers/gpu/drm/bochs/bochs_hw.c
@@ -89,6 +89,14 @@ int bochs_hw_load_edid(struct bochs_device *bochs)
if (!bochs->mmio)
return -1;

+ /*
+ * Check first two EDID blob header bytes to figure whenever
+ * edid support is enabled in qemu.
+ */
+ if (readb(bochs->mmio + 0) != 0x00 ||
+ readb(bochs->mmio + 1) != 0xff)
+ return -1;
+
kfree(bochs->edid);
bochs->edid = drm_do_get_edid(&bochs->connector,
bochs_get_edid_block, bochs);
--
2.9.3



2018-12-20 08:34:52

by Daniel Vetter

[permalink] [raw]
Subject: Re: [PATCH v2] drm/bochs: add edid present check

On Thu, Dec 20, 2018 at 07:50:01AM +0100, Gerd Hoffmann wrote:
> Check first two header bytes before trying to read the edid blob,
> to avoid the log being spammed in case qemu has no edid support (old
> qemu or edid turned off).
>
> Fixes: 01f23459cf drm/bochs: add edid support.
> Signed-off-by: Gerd Hoffmann <[email protected]>

It's a bit a hack, but makes sense.

Acked-by: Daniel Vetter <[email protected]>
> ---
> drivers/gpu/drm/bochs/bochs_hw.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/gpu/drm/bochs/bochs_hw.c b/drivers/gpu/drm/bochs/bochs_hw.c
> index c90a0d492f..e1f8ffce00 100644
> --- a/drivers/gpu/drm/bochs/bochs_hw.c
> +++ b/drivers/gpu/drm/bochs/bochs_hw.c
> @@ -89,6 +89,14 @@ int bochs_hw_load_edid(struct bochs_device *bochs)
> if (!bochs->mmio)
> return -1;
>
> + /*
> + * Check first two EDID blob header bytes to figure whenever
> + * edid support is enabled in qemu.
> + */
> + if (readb(bochs->mmio + 0) != 0x00 ||
> + readb(bochs->mmio + 1) != 0xff)
> + return -1;
> +
> kfree(bochs->edid);
> bochs->edid = drm_do_get_edid(&bochs->connector,
> bochs_get_edid_block, bochs);
> --
> 2.9.3
>
> _______________________________________________
> dri-devel mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

2018-12-20 08:34:57

by Daniel Vetter

[permalink] [raw]
Subject: Re: [PATCH v2] drm/bochs: add edid present check

On Thu, Dec 20, 2018 at 09:28:26AM +0100, Daniel Vetter wrote:
> On Thu, Dec 20, 2018 at 07:50:01AM +0100, Gerd Hoffmann wrote:
> > Check first two header bytes before trying to read the edid blob,
> > to avoid the log being spammed in case qemu has no edid support (old
> > qemu or edid turned off).
> >
> > Fixes: 01f23459cf drm/bochs: add edid support.
> > Signed-off-by: Gerd Hoffmann <[email protected]>
>
> It's a bit a hack, but makes sense.

On 2nd thought, maybe make it less of a hack by reading all 8 bytes of the
header and checking it with drm_edit_is_valid().
-Daniel

>
> Acked-by: Daniel Vetter <[email protected]>
> > ---
> > drivers/gpu/drm/bochs/bochs_hw.c | 8 ++++++++
> > 1 file changed, 8 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/bochs/bochs_hw.c b/drivers/gpu/drm/bochs/bochs_hw.c
> > index c90a0d492f..e1f8ffce00 100644
> > --- a/drivers/gpu/drm/bochs/bochs_hw.c
> > +++ b/drivers/gpu/drm/bochs/bochs_hw.c
> > @@ -89,6 +89,14 @@ int bochs_hw_load_edid(struct bochs_device *bochs)
> > if (!bochs->mmio)
> > return -1;
> >
> > + /*
> > + * Check first two EDID blob header bytes to figure whenever
> > + * edid support is enabled in qemu.
> > + */
> > + if (readb(bochs->mmio + 0) != 0x00 ||
> > + readb(bochs->mmio + 1) != 0xff)
> > + return -1;
> > +
> > kfree(bochs->edid);
> > bochs->edid = drm_do_get_edid(&bochs->connector,
> > bochs_get_edid_block, bochs);
> > --
> > 2.9.3
> >
> > _______________________________________________
> > dri-devel mailing list
> > [email protected]
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch

--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch