lxfb: set the H- and V-SYNC polarity of the flatpanel output

Fixup for the flatpanel output.  The geode_modedb attribute flags are used
to set the SYNC polarity of the flatpanel.  Without this patch our
flatpanel registers stayed unconfigured, so we just saw garbage output.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Cc: Andres Salomon <dilinger@collabora.co.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Michael Grzeschik 2010-03-23 13:35:49 -07:00 committed by Linus Torvalds
parent 4fd2c20d96
commit b5c26f97ec
2 changed files with 11 additions and 1 deletions

View File

@ -365,6 +365,8 @@ enum fp_registers {
FP_CRC, /* 0x458 */ FP_CRC, /* 0x458 */
}; };
#define FP_PT2_HSP (1 << 22)
#define FP_PT2_VSP (1 << 23)
#define FP_PT2_SCRC (1 << 27) /* shfclk free */ #define FP_PT2_SCRC (1 << 27) /* shfclk free */
#define FP_PM_P (1 << 24) /* panel power ctl */ #define FP_PM_P (1 << 24) /* panel power ctl */

View File

@ -274,7 +274,15 @@ static void lx_graphics_enable(struct fb_info *info)
u32 msrlo, msrhi; u32 msrlo, msrhi;
write_fp(par, FP_PT1, 0); write_fp(par, FP_PT1, 0);
write_fp(par, FP_PT2, FP_PT2_SCRC); temp = FP_PT2_SCRC;
if (info->var.sync & FB_SYNC_HOR_HIGH_ACT)
temp |= FP_PT2_HSP;
if (info->var.sync & FB_SYNC_VERT_HIGH_ACT)
temp |= FP_PT2_VSP;
write_fp(par, FP_PT2, temp);
write_fp(par, FP_DFC, FP_DFC_BC); write_fp(par, FP_DFC, FP_DFC_BC);
msrlo = MSR_LX_MSR_PADSEL_TFT_SEL_LOW; msrlo = MSR_LX_MSR_PADSEL_TFT_SEL_LOW;