UPSTREAM: drm/edid: Fix parsing of EDID 1.4 Established Timings III descriptor
authorPaul Parsons <lost.distance@yahoo.com>
Sat, 26 Mar 2016 13:18:38 +0000 (13:18 +0000)
committerZheng Yang <zhengyang@rock-chips.com>
Tue, 20 Jun 2017 09:22:50 +0000 (17:22 +0800)
The EDID 1.4 specification section 3.10.3.9 defines an Established Timings III
descriptor (tag #F7h). The parsing of this descriptor by drm_est3_modes() is
off by one byte: the offset of the first timing bitmap is 6, not 5.

Change-Id: Ic24532d54245e035feb474309a609d7efb330658
Signed-off-by: Paul Parsons <lost.distance@yahoo.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20160328002258.E75DF6E35D@gabe.freedesktop.org
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
(cherry picked from commit f3a32d74ef733e1ed1a0b804c17ec27081e0ff37)

drivers/gpu/drm/drm_edid.c

index 395c2e0af70f3dd601cfe5f8d632841d41ee8355..cb3e856a8e5156809a034320ad9dc84d5bb73006 100644 (file)
@@ -2446,7 +2446,7 @@ drm_est3_modes(struct drm_connector *connector, struct detailed_timing *timing)
 {
        int i, j, m, modes = 0;
        struct drm_display_mode *mode;
-       u8 *est = ((u8 *)timing) + 5;
+       u8 *est = ((u8 *)timing) + 6;
 
        for (i = 0; i < 6; i++) {
                for (j = 7; j >= 0; j--) {