diff options
author | Jon Dufresne <jon.dufresne@gmail.com> | 2008-10-16 01:03:49 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-16 14:21:44 -0400 |
commit | 1a3b09dc9aeaaab25ff736c2443df423a8fb655e (patch) | |
tree | 10fd0e86dfd9aabc6d74a20ef2eeed05c20dba68 /drivers/video/fbmon.c | |
parent | c1fd1c0764e1a399ccb12e2d261603fe96d2e420 (diff) |
fbmon: fix EDID parser to detect interlace modes
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>
Diffstat (limited to 'drivers/video/fbmon.c')
-rw-r--r-- | drivers/video/fbmon.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/video/fbmon.c b/drivers/video/fbmon.c index 6a0aa180c266..5c1a2c01778f 100644 --- a/drivers/video/fbmon.c +++ b/drivers/video/fbmon.c | |||
@@ -564,7 +564,13 @@ static void get_detailed_timing(unsigned char *block, | |||
564 | mode->sync |= FB_SYNC_VERT_HIGH_ACT; | 564 | mode->sync |= FB_SYNC_VERT_HIGH_ACT; |
565 | mode->refresh = PIXEL_CLOCK/((H_ACTIVE + H_BLANKING) * | 565 | mode->refresh = PIXEL_CLOCK/((H_ACTIVE + H_BLANKING) * |
566 | (V_ACTIVE + V_BLANKING)); | 566 | (V_ACTIVE + V_BLANKING)); |
567 | mode->vmode = 0; | 567 | if (INTERLACED) { |
568 | mode->yres *= 2; | ||
569 | mode->upper_margin *= 2; | ||
570 | mode->lower_margin *= 2; | ||
571 | mode->vsync_len *= 2; | ||
572 | mode->vmode |= FB_VMODE_INTERLACED; | ||
573 | } | ||
568 | mode->flag = FB_MODE_IS_DETAILED; | 574 | mode->flag = FB_MODE_IS_DETAILED; |
569 | 575 | ||
570 | DPRINTK(" %d MHz ", PIXEL_CLOCK/1000000); | 576 | DPRINTK(" %d MHz ", PIXEL_CLOCK/1000000); |