summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLin Fuzhen <fuzhen.lin@freescale.com>2011-12-14 16:13:43 +0800
committerLin Fuzhen <fuzhen.lin@freescale.com>2011-12-14 16:54:28 +0800
commit70ff6ebd4953526e813e2694fcecdc27bb83e343 (patch)
tree41284552c6e444dc1391e20c214d59e983579613
parent1882fc7bbe9e87d7e060527eee90985654952388 (diff)
ENGR00170072 MX53smd PWM: fix white screen phenomenon after software power off
When doing power off opreation through long press android power key, The screen backlight may not switch off, add shutdown method to the pwm driver to make sure the screen backlight will be disabled Signed-off-by: Lin Fuzhen <fuzhen.lin@freescale.com>
-rw-r--r--drivers/video/backlight/pwm_bl.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c
index 0de5e6fd8f0c..740e36905f81 100644
--- a/drivers/video/backlight/pwm_bl.c
+++ b/drivers/video/backlight/pwm_bl.c
@@ -164,6 +164,19 @@ static int pwm_backlight_suspend(struct platform_device *pdev,
return 0;
}
+static int pwm_backlight_shutdown(struct platform_device *pdev)
+{
+ struct backlight_device *bl = platform_get_drvdata(pdev);
+ struct pwm_bl_data *pb = dev_get_drvdata(&bl->dev);
+
+ if (pb->notify)
+ pb->notify(pb->dev, 0);
+ pwm_config(pb->pwm, 0, pb->period);
+ pwm_disable(pb->pwm);
+ pr_debug("shutdown mxc backlight\n");
+ return 0;
+}
+
static int pwm_backlight_resume(struct platform_device *pdev)
{
struct backlight_device *bl = platform_get_drvdata(pdev);
@@ -174,6 +187,7 @@ static int pwm_backlight_resume(struct platform_device *pdev)
#else
#define pwm_backlight_suspend NULL
#define pwm_backlight_resume NULL
+#define pwm_backlight_shutdown NULL
#endif
static struct platform_driver pwm_backlight_driver = {
@@ -185,6 +199,7 @@ static struct platform_driver pwm_backlight_driver = {
.remove = pwm_backlight_remove,
.suspend = pwm_backlight_suspend,
.resume = pwm_backlight_resume,
+ .shutdown = pwm_backlight_shutdown,
};
static int __init pwm_backlight_init(void)