rk29 mobile sdk:add backlight shutdown function
authorlyx <lyx@rock-chips.com>
Mon, 25 Apr 2011 03:01:46 +0000 (20:01 -0700)
committerlyx <lyx@rock-chips.com>
Mon, 25 Apr 2011 03:01:46 +0000 (20:01 -0700)
drivers/video/backlight/wm831x_bl.c

index 0f52691b04fad4839c8de9259e852f5ee6cef61c..dca935efd094aaa59a86c788cd4342b314c7ec1f 100755 (executable)
@@ -34,6 +34,7 @@ struct wm831x_backlight_data {
        struct  early_suspend early_suspend;
        struct delayed_work work;
        int suspend_flag;
+       int shutdown_flag;
 #endif
 };
 #define TS_POLL_DELAY (10000*1000*1000)
@@ -130,6 +131,8 @@ static int wm831x_backlight_update_status(struct backlight_device *bl)
 
        if(gwm831x_data->suspend_flag == 1)
                brightness = 0;
+       if (gwm831x_data->shutdown_flag == 1)
+               brightness = 0;
                
        if (bl->props.power != FB_BLANK_UNBLANK)
                brightness = 0;
@@ -305,6 +308,17 @@ static int wm831x_backlight_remove(struct platform_device *pdev)
        return 0;
 }
 
+static void wm831x_backlight_shutdown(struct platform_device *pdev)
+{
+       struct backlight_device *bl = platform_get_drvdata(pdev);
+       struct wm831x_backlight_data *data = bl_get_data(bl);
+       
+       printk("enter %s\n", __func__);
+       data->shutdown_flag = 1;
+       wm831x_backlight_update_status(bl);
+       return;
+}
+
 static struct platform_driver wm831x_backlight_driver = {
        .driver         = {
                .name   = "wm831x-backlight",
@@ -312,6 +326,7 @@ static struct platform_driver wm831x_backlight_driver = {
        },
        .probe          = wm831x_backlight_probe,
        .remove         = wm831x_backlight_remove,
+       .shutdown       = wm831x_backlight_shutdown,
 };
 
 static int __init wm831x_backlight_init(void)