summaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2018-07-09 08:21:18 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2018-07-09 08:21:18 +0200
commit6af0422208def55bb4eb5a5a0235b48a7c815c8e (patch)
tree6325f157fd7ad908835593862ef8a80043b3bcce /drivers/video
parent1f3af633e28876c2a9649bce59747b3b23990e16 (diff)
parent36260f162defe41fe144d69756990519c4188c83 (diff)
downloadbarebox-6af0422208def55bb4eb5a5a0235b48a7c815c8e.tar.gz
barebox-6af0422208def55bb4eb5a5a0235b48a7c815c8e.tar.xz
Merge branch 'for-next/misc'
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/backlight-pwm.c1
-rw-r--r--drivers/video/backlight.c14
2 files changed, 13 insertions, 2 deletions
diff --git a/drivers/video/backlight-pwm.c b/drivers/video/backlight-pwm.c
index ec35bd1bc0..997235a74a 100644
--- a/drivers/video/backlight-pwm.c
+++ b/drivers/video/backlight-pwm.c
@@ -206,6 +206,7 @@ static int backlight_pwm_of_probe(struct device_d *dev)
pwm_backlight->period = pwm_get_period(pwm_backlight->pwm);
+ pwm_backlight->backlight.slew_time_ms = 100;
pwm_backlight->backlight.brightness_set = backlight_pwm_set;
pwm_backlight->backlight.node = dev->device_node;
diff --git a/drivers/video/backlight.c b/drivers/video/backlight.c
index 09c0e47af6..30d52fcb68 100644
--- a/drivers/video/backlight.c
+++ b/drivers/video/backlight.c
@@ -15,6 +15,15 @@ int backlight_set_brightness(struct backlight_device *bl, int brightness)
if (brightness == bl->brightness_cur)
return 0;
+ if (!bl->slew_time_ms) {
+ ret = bl->brightness_set(bl, brightness);
+ if (ret)
+ return ret;
+
+ bl->brightness_cur = bl->brightness = brightness;
+ return 0;
+ }
+
if (brightness > bl->brightness_cur)
step = 1;
else
@@ -34,10 +43,9 @@ int backlight_set_brightness(struct backlight_device *bl, int brightness)
if (i == brightness)
break;
- udelay(100000 / num_steps);
+ udelay(bl->slew_time_ms * 1000 / num_steps);
}
-
bl->brightness_cur = bl->brightness = brightness;
return ret;
@@ -72,6 +80,8 @@ int backlight_register(struct backlight_device *bl)
dev_add_param_uint32(&bl->dev, "brightness", backlight_brightness_set,
NULL, &bl->brightness, "%d", bl);
+ dev_add_param_uint32(&bl->dev, "slew_time_ms", NULL, NULL,
+ &bl->slew_time_ms, "%d", NULL);
list_add_tail(&bl->list, &backlights);