Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

+22 -16
+2
Documentation/devicetree/bindings/video/backlight/pm8941-wled.txt
··· 5 5 - reg: slave address 6 6 7 7 Optional properties: 8 + - default-brightness: brightness value on boot, value from: 0-4095 9 + default: 2048 8 10 - label: The name of the backlight device 9 11 - qcom,cs-out: bool; enable current sink output 10 12 - qcom,cabc: bool; enable content adaptive backlight control
+1
drivers/video/backlight/88pm860x_bl.c
··· 180 180 data->iset = PM8606_WLED_CURRENT(iset); 181 181 of_property_read_u32(np, "marvell,88pm860x-pwm", 182 182 &data->pwm); 183 + of_node_put(np); 183 184 break; 184 185 } 185 186 }
-1
drivers/video/backlight/adp8860_bl.c
··· 819 819 MODULE_LICENSE("GPL v2"); 820 820 MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>"); 821 821 MODULE_DESCRIPTION("ADP8860 Backlight driver"); 822 - MODULE_ALIAS("i2c:adp8860-backlight");
-1
drivers/video/backlight/adp8870_bl.c
··· 992 992 MODULE_LICENSE("GPL v2"); 993 993 MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>"); 994 994 MODULE_DESCRIPTION("ADP8870 Backlight driver"); 995 - MODULE_ALIAS("i2c:adp8870-backlight");
+1
drivers/video/backlight/lp855x_bl.c
··· 283 283 struct lp855x_platform_data *pdata = lp->pdata; 284 284 const char *name = pdata->name ? : DEFAULT_BL_NAME; 285 285 286 + memset(&props, 0, sizeof(props)); 286 287 props.type = BACKLIGHT_PLATFORM; 287 288 props.max_brightness = MAX_BRIGHTNESS; 288 289
+9 -4
drivers/video/backlight/pm8941-wled.c
··· 17 17 #include <linux/of_device.h> 18 18 #include <linux/regmap.h> 19 19 20 + /* From DT binding */ 21 + #define PM8941_WLED_DEFAULT_BRIGHTNESS 2048 22 + 20 23 #define PM8941_WLED_REG_VAL_BASE 0x40 21 24 #define PM8941_WLED_REG_VAL_MAX 0xFFF 22 25 ··· 376 373 struct backlight_device *bl; 377 374 struct pm8941_wled *wled; 378 375 struct regmap *regmap; 376 + u32 val; 379 377 int rc; 380 378 381 379 regmap = dev_get_regmap(pdev->dev.parent, NULL); ··· 399 395 if (rc) 400 396 return rc; 401 397 398 + val = PM8941_WLED_DEFAULT_BRIGHTNESS; 399 + of_property_read_u32(pdev->dev.of_node, "default-brightness", &val); 400 + 402 401 memset(&props, 0, sizeof(struct backlight_properties)); 403 402 props.type = BACKLIGHT_RAW; 403 + props.brightness = val; 404 404 props.max_brightness = PM8941_WLED_REG_VAL_MAX; 405 405 bl = devm_backlight_device_register(&pdev->dev, wled->name, 406 406 &pdev->dev, wled, 407 407 &pm8941_wled_ops, &props); 408 - if (IS_ERR(bl)) 409 - return PTR_ERR(bl); 410 - 411 - return 0; 408 + return PTR_ERR_OR_ZERO(bl); 412 409 }; 413 410 414 411 static const struct of_device_id pm8941_wled_match_table[] = {
+9 -10
drivers/video/backlight/pwm_bl.c
··· 271 271 } 272 272 273 273 pb->pwm = devm_pwm_get(&pdev->dev, NULL); 274 - if (IS_ERR(pb->pwm)) { 275 - ret = PTR_ERR(pb->pwm); 276 - if (ret == -EPROBE_DEFER) 277 - goto err_alloc; 278 - 274 + if (IS_ERR(pb->pwm) && PTR_ERR(pb->pwm) != -EPROBE_DEFER 275 + && !pdev->dev.of_node) { 279 276 dev_err(&pdev->dev, "unable to request PWM, trying legacy API\n"); 280 277 pb->legacy = true; 281 278 pb->pwm = pwm_request(data->pwm_id, "pwm-backlight"); 282 - if (IS_ERR(pb->pwm)) { 283 - dev_err(&pdev->dev, "unable to request legacy PWM\n"); 284 - ret = PTR_ERR(pb->pwm); 285 - goto err_alloc; 286 - } 279 + } 280 + 281 + if (IS_ERR(pb->pwm)) { 282 + ret = PTR_ERR(pb->pwm); 283 + if (ret != -EPROBE_DEFER) 284 + dev_err(&pdev->dev, "unable to request PWM\n"); 285 + goto err_alloc; 287 286 } 288 287 289 288 dev_dbg(&pdev->dev, "got pwm for backlight\n");