Browse Source

video: fbdev: imxfb: fix semantic of .get_power and .set_power

.set_power gets passed an FB_BLANK_XXX value, not a bool. So 0 signals
on; and >1 means off. The same applies for return values of .get_power.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Uwe Kleine-König 9 years ago
parent
commit
46ffe1097b
1 changed files with 5 additions and 4 deletions
  1. 5 4
      drivers/video/fbdev/imxfb.c

+ 5 - 4
drivers/video/fbdev/imxfb.c

@@ -758,10 +758,11 @@ static int imxfb_lcd_get_power(struct lcd_device *lcddev)
 {
 {
 	struct imxfb_info *fbi = dev_get_drvdata(&lcddev->dev);
 	struct imxfb_info *fbi = dev_get_drvdata(&lcddev->dev);
 
 
-	if (!IS_ERR(fbi->lcd_pwr))
-		return regulator_is_enabled(fbi->lcd_pwr);
+	if (!IS_ERR(fbi->lcd_pwr) &&
+	    !regulator_is_enabled(fbi->lcd_pwr))
+		return FB_BLANK_POWERDOWN;
 
 
-	return 1;
+	return FB_BLANK_UNBLANK;
 }
 }
 
 
 static int imxfb_lcd_set_power(struct lcd_device *lcddev, int power)
 static int imxfb_lcd_set_power(struct lcd_device *lcddev, int power)
@@ -769,7 +770,7 @@ static int imxfb_lcd_set_power(struct lcd_device *lcddev, int power)
 	struct imxfb_info *fbi = dev_get_drvdata(&lcddev->dev);
 	struct imxfb_info *fbi = dev_get_drvdata(&lcddev->dev);
 
 
 	if (!IS_ERR(fbi->lcd_pwr)) {
 	if (!IS_ERR(fbi->lcd_pwr)) {
-		if (power)
+		if (power == FB_BLANK_UNBLANK)
 			return regulator_enable(fbi->lcd_pwr);
 			return regulator_enable(fbi->lcd_pwr);
 		else
 		else
 			return regulator_disable(fbi->lcd_pwr);
 			return regulator_disable(fbi->lcd_pwr);