summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-11-06 13:53:48 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2015-11-06 13:53:48 -0500
commit5bc23a0cdee4a6757fcc2919eb26827fe11e3bee (patch)
treed401c7e620a1ea80099aaa348f5408edd5976912
parent4dcee4d84394dc5d9a0cc3e9ccbb633fd2ea08d2 (diff)
parent9d6c243502b7f0a9696bc6fe5b473e40d8478d28 (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.txt2
-rw-r--r--drivers/video/backlight/88pm860x_bl.c1
-rw-r--r--drivers/video/backlight/adp8860_bl.c1
-rw-r--r--drivers/video/backlight/adp8870_bl.c1
-rw-r--r--drivers/video/backlight/lp855x_bl.c1
-rw-r--r--drivers/video/backlight/pm8941-wled.c13
-rw-r--r--drivers/video/backlight/pwm_bl.c19
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
7Optional properties: 7Optional 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);
819MODULE_LICENSE("GPL v2"); 819MODULE_LICENSE("GPL v2");
820MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>"); 820MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>");
821MODULE_DESCRIPTION("ADP8860 Backlight driver"); 821MODULE_DESCRIPTION("ADP8860 Backlight driver");
822MODULE_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);
992MODULE_LICENSE("GPL v2"); 992MODULE_LICENSE("GPL v2");
993MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>"); 993MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>");
994MODULE_DESCRIPTION("ADP8870 Backlight driver"); 994MODULE_DESCRIPTION("ADP8870 Backlight driver");
995MODULE_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
410static const struct of_device_id pm8941_wled_match_table[] = { 415static 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");