backlight: atmel-pwm-bl: refactor gpio_on handling
authorJohan Hovold <jhovold@gmail.com>
Tue, 12 Nov 2013 23:09:45 +0000 (15:09 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 13 Nov 2013 03:09:21 +0000 (12:09 +0900)
Add helper function to control the gpio_on signal.

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Acked-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/video/backlight/atmel-pwm-bl.c

index c254209..bd1ed34 100644 (file)
@@ -26,6 +26,14 @@ struct atmel_pwm_bl {
        int                                     gpio_on;
 };
 
+static void atmel_pwm_bl_set_gpio_on(struct atmel_pwm_bl *pwmbl, int on)
+{
+       if (!gpio_is_valid(pwmbl->gpio_on))
+               return;
+
+       gpio_set_value(pwmbl->gpio_on, on ^ pwmbl->pdata->on_active_low);
+}
+
 static int atmel_pwm_bl_set_intensity(struct backlight_device *bd)
 {
        struct atmel_pwm_bl *pwmbl = bl_get_data(bd);
@@ -48,19 +56,13 @@ static int atmel_pwm_bl_set_intensity(struct backlight_device *bd)
                pwm_duty = pwmbl->pdata->pwm_duty_min;
 
        if (!intensity) {
-               if (gpio_is_valid(pwmbl->gpio_on)) {
-                       gpio_set_value(pwmbl->gpio_on,
-                                       0 ^ pwmbl->pdata->on_active_low);
-               }
+               atmel_pwm_bl_set_gpio_on(pwmbl, 0);
                pwm_channel_writel(&pwmbl->pwmc, PWM_CUPD, pwm_duty);
                pwm_channel_disable(&pwmbl->pwmc);
        } else {
                pwm_channel_enable(&pwmbl->pwmc);
                pwm_channel_writel(&pwmbl->pwmc, PWM_CUPD, pwm_duty);
-               if (gpio_is_valid(pwmbl->gpio_on)) {
-                       gpio_set_value(pwmbl->gpio_on,
-                                       1 ^ pwmbl->pdata->on_active_low);
-               }
+               atmel_pwm_bl_set_gpio_on(pwmbl, 1);
        }
 
        return 0;
@@ -196,10 +198,7 @@ static int atmel_pwm_bl_remove(struct platform_device *pdev)
 {
        struct atmel_pwm_bl *pwmbl = platform_get_drvdata(pdev);
 
-       if (gpio_is_valid(pwmbl->gpio_on)) {
-               gpio_set_value(pwmbl->gpio_on,
-                                       0 ^ pwmbl->pdata->on_active_low);
-       }
+       atmel_pwm_bl_set_gpio_on(pwmbl, 0);
        pwm_channel_disable(&pwmbl->pwmc);
        pwm_channel_free(&pwmbl->pwmc);