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 Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel