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

Reply via email to