[PATCH] fix-lcm-flicker.patch

Andy Green andy at openmoko.com
Wed Mar 26 13:16:40 CET 2008


Resolve LCM flicker issue at source by modifying LCM register
to not swap Red / Blue data strobe timing on alternate frames only.

Select instead mode 4 which swaps on alternate lines and frames, so
we take advantage of EMI reduction but do not see the flicker.

Signed-off-by: Andy Green <andy at openmoko.com>
---

 arch/arm/mach-s3c2440/mach-gta02.c |    3 ++-
 drivers/mfd/glamo/glamo-core.c     |    2 +-
 drivers/video/display/jbt6k74.c    |    6 +++++-
 3 files changed, 8 insertions(+), 3 deletions(-)


diff --git a/arch/arm/mach-s3c2440/mach-gta02.c b/arch/arm/mach-s3c2440/mach-gta02.c
index 3fc7398..4b0dc50 100644
--- a/arch/arm/mach-s3c2440/mach-gta02.c
+++ b/arch/arm/mach-s3c2440/mach-gta02.c
@@ -1196,7 +1196,8 @@ gta02_glamo_mmc_set_power(unsigned char power_mode, unsigned short vdd)
 static struct glamofb_platform_data gta02_glamo_pdata = {
 	.width		= 43,
 	.height		= 58,
-	.pixclock	= 40816, /* 24.5MHz nom, 40.816ns */
+	 /* 24.5MHz --> 40.816ns */
+	.pixclock	= 40816,
 	.left_margin	= 8,
 	.right_margin	= 16,
 	.upper_margin	= 2,
diff --git a/drivers/mfd/glamo/glamo-core.c b/drivers/mfd/glamo/glamo-core.c
index 628d40d..3544c52 100644
--- a/drivers/mfd/glamo/glamo-core.c
+++ b/drivers/mfd/glamo/glamo-core.c
@@ -678,7 +678,7 @@ static struct glamo_script glamo_init_script[] = {
 	 */
 	{ GLAMO_REG_IRQ_ENABLE,		0x01ff },
 	{ GLAMO_REG_CLOCK_GEN6,		0x2000 },
-	{ GLAMO_REG_CLOCK_GEN7,		0x0001 }, /* 0101 */
+	{ GLAMO_REG_CLOCK_GEN7,		0x0002 }, /* 1 = /2, 2 = /3 */
 	{ GLAMO_REG_CLOCK_GEN8,		0x0100 },
 	{ GLAMO_REG_CLOCK_HOST,		0x000d },
 	{ 0x200,	0x0ef0 },
diff --git a/drivers/video/display/jbt6k74.c b/drivers/video/display/jbt6k74.c
index c37143a..85582e3 100644
--- a/drivers/video/display/jbt6k74.c
+++ b/drivers/video/display/jbt6k74.c
@@ -206,7 +206,11 @@ static int jbt_init_regs(struct jbt_info *jbt, int qvga)
 	rc |= jbt_reg_write(jbt, JBT_REG_VCOM_VOLTAGE, 0x40);
 	rc |= jbt_reg_write(jbt, JBT_REG_EXT_DISPL, 0x03);
 	rc |= jbt_reg_write(jbt, JBT_REG_DCCLK_DCEV, 0x04);
-	rc |= jbt_reg_write(jbt, JBT_REG_ASW_SLEW, 0x02);
+	/*
+	 * default of 0x02 in JBT_REG_ASW_SLEW responsible for 72Hz requirement
+	 * to avoid red / blue flicker
+	 */
+	rc |= jbt_reg_write(jbt, JBT_REG_ASW_SLEW, 0x04);
 	rc |= jbt_reg_write(jbt, JBT_REG_DUMMY_DISPLAY, 0x00);
 
 	rc |= jbt_reg_write(jbt, JBT_REG_SLEEP_OUT_FR_A, 0x11);





More information about the openmoko-kernel mailing list