hi,
I notice that KMS uses EDID priori to VBT, and some EDID data
is not right on some laptops.
As Jesse added a workaround into intel_bios.c, we should add
the same workaround into drm_edid.c as follows. Probably, we
should merge the calculation made in drm_mode_detailed() and
parse_panel_data(), and have the two routines call a common
sub-routine ?
--- a/drm_edid.c 2009-04-03 15:26:30.000000000 +0800
+++ b/drm_edid.c 2009-04-03 15:24:38.000000000 +0800
@@ -327,6 +327,12 @@
pt->vsync_pulse_width_lo);
mode->vtotal = mode->vdisplay + ((pt->vblank_hi << 8) | pt->vblank_lo);
+ /* Some VBTs have bogus h/vtotal values */
+ if (mode->hsync_end > mode->htotal)
+ mode->htotal = mode->hsync_end + 1;
+ if (mode->vsync_end > mode->vtotal)
+ mode->vtotal = mode->vsync_end + 1;
+
drm_mode_set_name(mode);
if (pt->interlaced)
------------------------------------------------------------------------------
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel