diff options
author | Krzysztof Halasa <khc@pm.waw.pl> | 2007-10-16 04:29:18 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 12:43:18 -0400 |
commit | 10b98368a0a94b015c1a596b7a02eff447a65226 (patch) | |
tree | 567997a1ba3e973c630aa203231f8c70aab316a0 /drivers/video/intelfb | |
parent | 68e5e9d734503695915734e50e9427624cf8f3b2 (diff) |
Intel FB: support for interlaced video modes
Intel framebuffer now supports interlaced video modes.
Signed-off-by: Krzysztof Halasa <khc@pm.waw.pl>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video/intelfb')
-rw-r--r-- | drivers/video/intelfb/intelfbhw.c | 12 | ||||
-rw-r--r-- | drivers/video/intelfb/intelfbhw.h | 4 |
2 files changed, 11 insertions, 5 deletions
diff --git a/drivers/video/intelfb/intelfbhw.c b/drivers/video/intelfb/intelfbhw.c index 6a47682d8614..04d0e0fd9bc0 100644 --- a/drivers/video/intelfb/intelfbhw.c +++ b/drivers/video/intelfb/intelfbhw.c | |||
@@ -323,11 +323,7 @@ intelfbhw_validate_mode(struct intelfb_info *dinfo, | |||
323 | return 1; | 323 | return 1; |
324 | } | 324 | } |
325 | 325 | ||
326 | /* Check for interlaced/doublescan modes. */ | 326 | /* Check for doublescan modes. */ |
327 | if (var->vmode & FB_VMODE_INTERLACED) { | ||
328 | WRN_MSG("Mode is interlaced.\n"); | ||
329 | return 1; | ||
330 | } | ||
331 | if (var->vmode & FB_VMODE_DOUBLE) { | 327 | if (var->vmode & FB_VMODE_DOUBLE) { |
332 | WRN_MSG("Mode is double-scan.\n"); | 328 | WRN_MSG("Mode is double-scan.\n"); |
333 | return 1; | 329 | return 1; |
@@ -1220,6 +1216,12 @@ intelfbhw_mode_to_hw(struct intelfb_info *dinfo, struct intelfb_hwstate *hw, | |||
1220 | 1216 | ||
1221 | /* Set the palette to 8-bit mode. */ | 1217 | /* Set the palette to 8-bit mode. */ |
1222 | *pipe_conf &= ~PIPECONF_GAMMA; | 1218 | *pipe_conf &= ~PIPECONF_GAMMA; |
1219 | |||
1220 | if (var->vmode & FB_VMODE_INTERLACED) | ||
1221 | *pipe_conf |= PIPECONF_INTERLACE_W_FIELD_INDICATION; | ||
1222 | else | ||
1223 | *pipe_conf &= ~PIPECONF_INTERLACE_MASK; | ||
1224 | |||
1223 | return 0; | 1225 | return 0; |
1224 | } | 1226 | } |
1225 | 1227 | ||
diff --git a/drivers/video/intelfb/intelfbhw.h b/drivers/video/intelfb/intelfbhw.h index 8c54ba8fbdda..cfcd53749484 100644 --- a/drivers/video/intelfb/intelfbhw.h +++ b/drivers/video/intelfb/intelfbhw.h | |||
@@ -286,6 +286,10 @@ | |||
286 | #define PIPECONF_UNLOCKED 0 | 286 | #define PIPECONF_UNLOCKED 0 |
287 | #define PIPECONF_GAMMA (1 << 24) | 287 | #define PIPECONF_GAMMA (1 << 24) |
288 | #define PIPECONF_PALETTE 0 | 288 | #define PIPECONF_PALETTE 0 |
289 | #define PIPECONF_PROGRESSIVE (0 << 21) | ||
290 | #define PIPECONF_INTERLACE_W_FIELD_INDICATION (6 << 21) | ||
291 | #define PIPECONF_INTERLACE_FIELD_0_ONLY (7 << 21) | ||
292 | #define PIPECONF_INTERLACE_MASK (7 << 21) | ||
289 | 293 | ||
290 | #define DISPARB 0x70030 | 294 | #define DISPARB 0x70030 |
291 | #define DISPARB_AEND_MASK 0x1ff | 295 | #define DISPARB_AEND_MASK 0x1ff |