Message ID | 20181220065001.9594-1-kraxel@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] drm/bochs: add edid present check | expand |
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 <kraxel@redhat.com> It's a bit a hack, but makes sense. Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > 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 > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
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 <kraxel@redhat.com> > > 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 <daniel.vetter@ffwll.ch> > > --- > > 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 > > dri-devel@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/dri-devel > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch
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);
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 <kraxel@redhat.com> --- drivers/gpu/drm/bochs/bochs_hw.c | 8 ++++++++ 1 file changed, 8 insertions(+)