aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/backlight
diff options
context:
space:
mode:
authorAlberto Panizzo <maramaopercheseimorto@gmail.com>2011-01-12 19:59:24 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2011-01-13 11:03:06 -0500
commitaff5ce6ca8d25c7dbcd886e2e51dd081981af95e (patch)
tree789fdb378dac5ac1b71dadf87d222c0a487b9b6a /drivers/video/backlight
parent26bbabc8e80b4b9e42aca13376a2c1609a880e21 (diff)
drivers/video/backlight/l4f00242t03.c: fix reset sequence
The reset command is part of the init sequence and it take effect only if the lcd is powered. The effect of the bug was that the sequence: set lcd power_state to FB_BLANK_POWERDOWN set lcd power_state to FB_BLANK_UNBLANK Did not produced a complete reboot of the LCD which was showing fuzzy colours. This was not experienced before implementing correctly all the LCD power states with the patch [1]. Since before the patch [1] the regulators were not touched and the LCD shutdown was reached with a register write. After the patch [1] a complete boot sequence with an initial reset is needed for the display every time the LCD is powered up. drivers-video-backlight-l4f00242t03c-full-implement-fb-power-states-for-this-lcd.patch Signed-off-by: Alberto Panizzo <maramaopercheseimorto@gmail.com> Cc: Richard Purdie <rpurdie@rpsys.net> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tejun Heo <tj@kernel.org> Cc: Axel Lin <axel.lin@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video/backlight')
-rw-r--r--drivers/video/backlight/l4f00242t03.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/video/backlight/l4f00242t03.c b/drivers/video/backlight/l4f00242t03.c
index 1fcaaf3d78e1..98ad3e5f7c85 100644
--- a/drivers/video/backlight/l4f00242t03.c
+++ b/drivers/video/backlight/l4f00242t03.c
@@ -62,6 +62,8 @@ static void l4f00242t03_lcd_init(struct spi_device *spi)
62 regulator_enable(priv->core_reg); 62 regulator_enable(priv->core_reg);
63 } 63 }
64 64
65 l4f00242t03_reset(pdata->reset_gpio);
66
65 gpio_set_value(pdata->data_enable_gpio, 1); 67 gpio_set_value(pdata->data_enable_gpio, 1);
66 msleep(60); 68 msleep(60);
67 spi_write(spi, (const u8 *)cmd, ARRAY_SIZE(cmd) * sizeof(u16)); 69 spi_write(spi, (const u8 *)cmd, ARRAY_SIZE(cmd) * sizeof(u16));
@@ -227,7 +229,6 @@ static int __devinit l4f00242t03_probe(struct spi_device *spi)
227 } 229 }
228 230
229 /* Init the LCD */ 231 /* Init the LCD */
230 l4f00242t03_reset(pdata->reset_gpio);
231 l4f00242t03_lcd_init(spi); 232 l4f00242t03_lcd_init(spi);
232 priv->lcd_state = FB_BLANK_VSYNC_SUSPEND; 233 priv->lcd_state = FB_BLANK_VSYNC_SUSPEND;
233 l4f00242t03_lcd_power_set(priv->ld, FB_BLANK_UNBLANK); 234 l4f00242t03_lcd_power_set(priv->ld, FB_BLANK_UNBLANK);