]> nv-tegra.nvidia Code Review - linux-2.6.git/commitdiff
fbmon: fix EDID parser to detect interlace modes
authorJon Dufresne <jon.dufresne@gmail.com>
Thu, 16 Oct 2008 05:03:49 +0000 (22:03 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 16 Oct 2008 18:21:44 +0000 (11:21 -0700)
The current EDID parser in the linux kernel ignores interlace modes.  The
patch looks for the edid interlace flag and adjusts the vertical
resolution if it is found.

Signed-off-by: Jon Dufresne <jon.dufresne@gmail.com>
Cc: Krzysztof Helt <krzysztof.h1@poczta.fm>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/video/fbmon.c

index 6a0aa180c266e0b3d03e8cc2a4dc890f1605d329..5c1a2c01778fe6e195df9405d0409d7a1a2a09f9 100644 (file)
@@ -564,7 +564,13 @@ static void get_detailed_timing(unsigned char *block,
                mode->sync |= FB_SYNC_VERT_HIGH_ACT;
        mode->refresh = PIXEL_CLOCK/((H_ACTIVE + H_BLANKING) *
                                     (V_ACTIVE + V_BLANKING));
-       mode->vmode = 0;
+       if (INTERLACED) {
+               mode->yres *= 2;
+               mode->upper_margin *= 2;
+               mode->lower_margin *= 2;
+               mode->vsync_len *= 2;
+               mode->vmode |= FB_VMODE_INTERLACED;
+       }
        mode->flag = FB_MODE_IS_DETAILED;
 
        DPRINTK("      %d MHz ",  PIXEL_CLOCK/1000000);