Commit aff5ce6c authored by Alberto Panizzo's avatar Alberto Panizzo Committed by Linus Torvalds

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: default avatarAlberto 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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 26bbabc8
...@@ -62,6 +62,8 @@ static void l4f00242t03_lcd_init(struct spi_device *spi) ...@@ -62,6 +62,8 @@ static void l4f00242t03_lcd_init(struct spi_device *spi)
regulator_enable(priv->core_reg); regulator_enable(priv->core_reg);
} }
l4f00242t03_reset(pdata->reset_gpio);
gpio_set_value(pdata->data_enable_gpio, 1); gpio_set_value(pdata->data_enable_gpio, 1);
msleep(60); msleep(60);
spi_write(spi, (const u8 *)cmd, ARRAY_SIZE(cmd) * sizeof(u16)); 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,7 +229,6 @@ static int __devinit l4f00242t03_probe(struct spi_device *spi)
} }
/* Init the LCD */ /* Init the LCD */
l4f00242t03_reset(pdata->reset_gpio);
l4f00242t03_lcd_init(spi); l4f00242t03_lcd_init(spi);
priv->lcd_state = FB_BLANK_VSYNC_SUSPEND; priv->lcd_state = FB_BLANK_VSYNC_SUSPEND;
l4f00242t03_lcd_power_set(priv->ld, FB_BLANK_UNBLANK); l4f00242t03_lcd_power_set(priv->ld, FB_BLANK_UNBLANK);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment