drivers/video/backlight/l4f00242t03.c: prevent unbalanced calls to regulator enable...
authorAlberto Panizzo <maramaopercheseimorto@gmail.com>
Thu, 13 Jan 2011 00:59:23 +0000 (16:59 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 13 Jan 2011 16:03:06 +0000 (08:03 -0800)
Otherwise a double call to:
$ echo 4 > /sys/class/lcd/l4f00242t03/lcd_power
Will, the first power down the lcd and regulators correctly and the
second produce an unbalanced call to regulator disable.

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>
drivers/video/backlight/l4f00242t03.c

index 5d25743bf8e26001d00b2cbd558dd67f7b07468b..1fcaaf3d78e15fe7663762f3280738065603db64 100644 (file)
@@ -134,10 +134,12 @@ static int l4f00242t03_lcd_power_set(struct lcd_device *ld, int power)
                }
        } else {
                /* power == FB_BLANK_POWERDOWN */
-               /* Clear the screen before shutting down */
-               spi_write(spi, (const u8 *)&disoff, sizeof(u16));
-               msleep(60);
-               l4f00242t03_lcd_powerdown(spi);
+               if (priv->lcd_state != FB_BLANK_POWERDOWN) {
+                       /* Clear the screen before shutting down */
+                       spi_write(spi, (const u8 *)&disoff, sizeof(u16));
+                       msleep(60);
+                       l4f00242t03_lcd_powerdown(spi);
+               }
        }
 
        priv->lcd_state = power;