wm831x backlight : modify brightness
authorlyx <lyx@rock-chips.com>
Sat, 9 Apr 2011 06:07:13 +0000 (23:07 -0700)
committerlyx <lyx@rock-chips.com>
Sat, 9 Apr 2011 06:50:42 +0000 (23:50 -0700)
drivers/video/backlight/wm831x_bl.c

index bf7f8f5855c33c37df6953c13e5f7df1282b973a..643d07f913ef93c5af0f7b4b767d29086b47da13 100755 (executable)
@@ -24,6 +24,9 @@
 #include <linux/delay.h>
 #include <linux/ktime.h>
 #define BL_SET   255
+#define BL_DIFF_VALUE 100
+#define BL_INIT_VALUE 102
+#define BL_MIN_VALUE 0
 struct wm831x_backlight_data {
        struct wm831x *wm831x;
        int isink_reg;
@@ -116,6 +119,14 @@ err:
 static int wm831x_backlight_update_status(struct backlight_device *bl)
 {
        int brightness = bl->props.brightness;
+       if ((brightness<=BL_INIT_VALUE) && (brightness>0)) {
+               brightness = brightness + BL_DIFF_VALUE;
+       }
+       else if (brightness > BL_INIT_VALUE) {
+               brightness = 
+                       ((BL_SET-BL_INIT_VALUE-BL_DIFF_VALUE)*brightness+BL_SET*BL_DIFF_VALUE)
+                               /(BL_SET-BL_INIT_VALUE);
+       }
 
        if(gwm831x_data->suspend_flag == 1)
                brightness = 0;
@@ -256,7 +267,7 @@ static int wm831x_backlight_probe(struct platform_device *pdev)
                return PTR_ERR(bl);
        }
 
-       bl->props.brightness = BL_SET;
+       bl->props.brightness = BL_INIT_VALUE;
        bl->props.max_brightness= BL_SET;
 
        platform_set_drvdata(pdev, bl);