diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-11-06 13:53:48 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-11-06 13:53:48 -0500 |
commit | 5bc23a0cdee4a6757fcc2919eb26827fe11e3bee (patch) | |
tree | d401c7e620a1ea80099aaa348f5408edd5976912 | |
parent | 4dcee4d84394dc5d9a0cc3e9ccbb633fd2ea08d2 (diff) | |
parent | 9d6c243502b7f0a9696bc6fe5b473e40d8478d28 (diff) |
Merge tag 'backlight-for-linus-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight
Pull backlight updates from Lee Jones:
"New Device Support
- None
New Functionality:
- None
Core Frameworks:
- Reject legacy PWM request for device defined in DT
Fix-ups:
- Remove unnecessary MODULE_ALIAS(); adp8860_bl, adp8870_bl
- Simplify code: pm8941-wled
- Supply default-brightness logic; pm8941-wled
Bug Fixes:
- Clean up OF node; 88pm860x_bl
- Ensure struct is zeroed; lp855x_bl"
* tag 'backlight-for-linus-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
backlight: pm8941-wled: Add default-brightness property
backlight: pm8941-wled: Fix ptr_ret.cocci warnings
backlight: pwm: Reject legacy PWM request for device defined in DT
backlight: 88pm860x_bl: Add missing of_node_put
backlight: adp8870: Remove unnecessary MODULE_ALIAS()
backlight: adp8860: Remove unnecessary MODULE_ALIAS()
backlight: lp855x: Make sure props struct is zeroed
-rw-r--r-- | Documentation/devicetree/bindings/video/backlight/pm8941-wled.txt | 2 | ||||
-rw-r--r-- | drivers/video/backlight/88pm860x_bl.c | 1 | ||||
-rw-r--r-- | drivers/video/backlight/adp8860_bl.c | 1 | ||||
-rw-r--r-- | drivers/video/backlight/adp8870_bl.c | 1 | ||||
-rw-r--r-- | drivers/video/backlight/lp855x_bl.c | 1 | ||||
-rw-r--r-- | drivers/video/backlight/pm8941-wled.c | 13 | ||||
-rw-r--r-- | drivers/video/backlight/pwm_bl.c | 19 |
7 files changed, 22 insertions, 16 deletions
diff --git a/Documentation/devicetree/bindings/video/backlight/pm8941-wled.txt b/Documentation/devicetree/bindings/video/backlight/pm8941-wled.txt index 424f8444a6cd..e5b294dafc58 100644 --- a/Documentation/devicetree/bindings/video/backlight/pm8941-wled.txt +++ b/Documentation/devicetree/bindings/video/backlight/pm8941-wled.txt | |||
@@ -5,6 +5,8 @@ Required properties: | |||
5 | - reg: slave address | 5 | - reg: slave address |
6 | 6 | ||
7 | Optional properties: | 7 | Optional properties: |
8 | - default-brightness: brightness value on boot, value from: 0-4095 | ||
9 | default: 2048 | ||
8 | - label: The name of the backlight device | 10 | - label: The name of the backlight device |
9 | - qcom,cs-out: bool; enable current sink output | 11 | - qcom,cs-out: bool; enable current sink output |
10 | - qcom,cabc: bool; enable content adaptive backlight control | 12 | - qcom,cabc: bool; enable content adaptive backlight control |
diff --git a/drivers/video/backlight/88pm860x_bl.c b/drivers/video/backlight/88pm860x_bl.c index 2da5862876d1..6d8dc2c77520 100644 --- a/drivers/video/backlight/88pm860x_bl.c +++ b/drivers/video/backlight/88pm860x_bl.c | |||
@@ -180,6 +180,7 @@ static int pm860x_backlight_dt_init(struct platform_device *pdev, | |||
180 | data->iset = PM8606_WLED_CURRENT(iset); | 180 | data->iset = PM8606_WLED_CURRENT(iset); |
181 | of_property_read_u32(np, "marvell,88pm860x-pwm", | 181 | of_property_read_u32(np, "marvell,88pm860x-pwm", |
182 | &data->pwm); | 182 | &data->pwm); |
183 | of_node_put(np); | ||
183 | break; | 184 | break; |
184 | } | 185 | } |
185 | } | 186 | } |
diff --git a/drivers/video/backlight/adp8860_bl.c b/drivers/video/backlight/adp8860_bl.c index 71147f4461b8..98ffe71e8af2 100644 --- a/drivers/video/backlight/adp8860_bl.c +++ b/drivers/video/backlight/adp8860_bl.c | |||
@@ -819,4 +819,3 @@ module_i2c_driver(adp8860_driver); | |||
819 | MODULE_LICENSE("GPL v2"); | 819 | MODULE_LICENSE("GPL v2"); |
820 | MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>"); | 820 | MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>"); |
821 | MODULE_DESCRIPTION("ADP8860 Backlight driver"); | 821 | MODULE_DESCRIPTION("ADP8860 Backlight driver"); |
822 | MODULE_ALIAS("i2c:adp8860-backlight"); | ||
diff --git a/drivers/video/backlight/adp8870_bl.c b/drivers/video/backlight/adp8870_bl.c index 037e43083343..9d738352d7d4 100644 --- a/drivers/video/backlight/adp8870_bl.c +++ b/drivers/video/backlight/adp8870_bl.c | |||
@@ -992,4 +992,3 @@ module_i2c_driver(adp8870_driver); | |||
992 | MODULE_LICENSE("GPL v2"); | 992 | MODULE_LICENSE("GPL v2"); |
993 | MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>"); | 993 | MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>"); |
994 | MODULE_DESCRIPTION("ADP8870 Backlight driver"); | 994 | MODULE_DESCRIPTION("ADP8870 Backlight driver"); |
995 | MODULE_ALIAS("i2c:adp8870-backlight"); | ||
diff --git a/drivers/video/backlight/lp855x_bl.c b/drivers/video/backlight/lp855x_bl.c index f88df9ec08d0..daca9e6a2bb3 100644 --- a/drivers/video/backlight/lp855x_bl.c +++ b/drivers/video/backlight/lp855x_bl.c | |||
@@ -283,6 +283,7 @@ static int lp855x_backlight_register(struct lp855x *lp) | |||
283 | struct lp855x_platform_data *pdata = lp->pdata; | 283 | struct lp855x_platform_data *pdata = lp->pdata; |
284 | const char *name = pdata->name ? : DEFAULT_BL_NAME; | 284 | const char *name = pdata->name ? : DEFAULT_BL_NAME; |
285 | 285 | ||
286 | memset(&props, 0, sizeof(props)); | ||
286 | props.type = BACKLIGHT_PLATFORM; | 287 | props.type = BACKLIGHT_PLATFORM; |
287 | props.max_brightness = MAX_BRIGHTNESS; | 288 | props.max_brightness = MAX_BRIGHTNESS; |
288 | 289 | ||
diff --git a/drivers/video/backlight/pm8941-wled.c b/drivers/video/backlight/pm8941-wled.c index c704c3236034..0b6d21955d91 100644 --- a/drivers/video/backlight/pm8941-wled.c +++ b/drivers/video/backlight/pm8941-wled.c | |||
@@ -17,6 +17,9 @@ | |||
17 | #include <linux/of_device.h> | 17 | #include <linux/of_device.h> |
18 | #include <linux/regmap.h> | 18 | #include <linux/regmap.h> |
19 | 19 | ||
20 | /* From DT binding */ | ||
21 | #define PM8941_WLED_DEFAULT_BRIGHTNESS 2048 | ||
22 | |||
20 | #define PM8941_WLED_REG_VAL_BASE 0x40 | 23 | #define PM8941_WLED_REG_VAL_BASE 0x40 |
21 | #define PM8941_WLED_REG_VAL_MAX 0xFFF | 24 | #define PM8941_WLED_REG_VAL_MAX 0xFFF |
22 | 25 | ||
@@ -373,6 +376,7 @@ static int pm8941_wled_probe(struct platform_device *pdev) | |||
373 | struct backlight_device *bl; | 376 | struct backlight_device *bl; |
374 | struct pm8941_wled *wled; | 377 | struct pm8941_wled *wled; |
375 | struct regmap *regmap; | 378 | struct regmap *regmap; |
379 | u32 val; | ||
376 | int rc; | 380 | int rc; |
377 | 381 | ||
378 | regmap = dev_get_regmap(pdev->dev.parent, NULL); | 382 | regmap = dev_get_regmap(pdev->dev.parent, NULL); |
@@ -395,16 +399,17 @@ static int pm8941_wled_probe(struct platform_device *pdev) | |||
395 | if (rc) | 399 | if (rc) |
396 | return rc; | 400 | return rc; |
397 | 401 | ||
402 | val = PM8941_WLED_DEFAULT_BRIGHTNESS; | ||
403 | of_property_read_u32(pdev->dev.of_node, "default-brightness", &val); | ||
404 | |||
398 | memset(&props, 0, sizeof(struct backlight_properties)); | 405 | memset(&props, 0, sizeof(struct backlight_properties)); |
399 | props.type = BACKLIGHT_RAW; | 406 | props.type = BACKLIGHT_RAW; |
407 | props.brightness = val; | ||
400 | props.max_brightness = PM8941_WLED_REG_VAL_MAX; | 408 | props.max_brightness = PM8941_WLED_REG_VAL_MAX; |
401 | bl = devm_backlight_device_register(&pdev->dev, wled->name, | 409 | bl = devm_backlight_device_register(&pdev->dev, wled->name, |
402 | &pdev->dev, wled, | 410 | &pdev->dev, wled, |
403 | &pm8941_wled_ops, &props); | 411 | &pm8941_wled_ops, &props); |
404 | if (IS_ERR(bl)) | 412 | return PTR_ERR_OR_ZERO(bl); |
405 | return PTR_ERR(bl); | ||
406 | |||
407 | return 0; | ||
408 | }; | 413 | }; |
409 | 414 | ||
410 | static const struct of_device_id pm8941_wled_match_table[] = { | 415 | static const struct of_device_id pm8941_wled_match_table[] = { |
diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c index eff379b234cc..ae3c6b6fd5db 100644 --- a/drivers/video/backlight/pwm_bl.c +++ b/drivers/video/backlight/pwm_bl.c | |||
@@ -271,19 +271,18 @@ static int pwm_backlight_probe(struct platform_device *pdev) | |||
271 | } | 271 | } |
272 | 272 | ||
273 | pb->pwm = devm_pwm_get(&pdev->dev, NULL); | 273 | pb->pwm = devm_pwm_get(&pdev->dev, NULL); |
274 | if (IS_ERR(pb->pwm)) { | 274 | if (IS_ERR(pb->pwm) && PTR_ERR(pb->pwm) != -EPROBE_DEFER |
275 | ret = PTR_ERR(pb->pwm); | 275 | && !pdev->dev.of_node) { |
276 | if (ret == -EPROBE_DEFER) | ||
277 | goto err_alloc; | ||
278 | |||
279 | dev_err(&pdev->dev, "unable to request PWM, trying legacy API\n"); | 276 | dev_err(&pdev->dev, "unable to request PWM, trying legacy API\n"); |
280 | pb->legacy = true; | 277 | pb->legacy = true; |
281 | pb->pwm = pwm_request(data->pwm_id, "pwm-backlight"); | 278 | pb->pwm = pwm_request(data->pwm_id, "pwm-backlight"); |
282 | if (IS_ERR(pb->pwm)) { | 279 | } |
283 | dev_err(&pdev->dev, "unable to request legacy PWM\n"); | 280 | |
284 | ret = PTR_ERR(pb->pwm); | 281 | if (IS_ERR(pb->pwm)) { |
285 | goto err_alloc; | 282 | ret = PTR_ERR(pb->pwm); |
286 | } | 283 | if (ret != -EPROBE_DEFER) |
284 | dev_err(&pdev->dev, "unable to request PWM\n"); | ||
285 | goto err_alloc; | ||
287 | } | 286 | } |
288 | 287 | ||
289 | dev_dbg(&pdev->dev, "got pwm for backlight\n"); | 288 | dev_dbg(&pdev->dev, "got pwm for backlight\n"); |