]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'backlight/for-backlight-next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Thu, 5 Nov 2015 01:29:11 +0000 (12:29 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 5 Nov 2015 01:29:11 +0000 (12:29 +1100)
Documentation/devicetree/bindings/video/backlight/pm8941-wled.txt
drivers/video/backlight/88pm860x_bl.c
drivers/video/backlight/adp8860_bl.c
drivers/video/backlight/adp8870_bl.c
drivers/video/backlight/lp855x_bl.c
drivers/video/backlight/pm8941-wled.c
drivers/video/backlight/pwm_bl.c

index 424f8444a6cd9364aba9267be34e66a6657aa786..e5b294dafc5837f9d580531ad1471bdd9ad3f55d 100644 (file)
@@ -5,6 +5,8 @@ Required properties:
 - reg: slave address
 
 Optional properties:
+- default-brightness: brightness value on boot, value from: 0-4095
+       default: 2048
 - label: The name of the backlight device
 - qcom,cs-out: bool; enable current sink output
 - qcom,cabc: bool; enable content adaptive backlight control
index 2da5862876d1fe78fb53371bce64dde5269ad71b..6d8dc2c775205529a2a6f069e7c12439c12aa53d 100644 (file)
@@ -180,6 +180,7 @@ static int pm860x_backlight_dt_init(struct platform_device *pdev,
                        data->iset = PM8606_WLED_CURRENT(iset);
                        of_property_read_u32(np, "marvell,88pm860x-pwm",
                                             &data->pwm);
+                       of_node_put(np);
                        break;
                }
        }
index 71147f4461b8cb57fc3a0b62b502bc97bdac843b..98ffe71e8af2d1f4fc1cda4c8b009122a0cb0e1b 100644 (file)
@@ -819,4 +819,3 @@ module_i2c_driver(adp8860_driver);
 MODULE_LICENSE("GPL v2");
 MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>");
 MODULE_DESCRIPTION("ADP8860 Backlight driver");
-MODULE_ALIAS("i2c:adp8860-backlight");
index 037e430833435457381f2c282b3839e2a8964dc5..9d738352d7d4b41ff7ad908024e32c6ab071142f 100644 (file)
@@ -992,4 +992,3 @@ module_i2c_driver(adp8870_driver);
 MODULE_LICENSE("GPL v2");
 MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>");
 MODULE_DESCRIPTION("ADP8870 Backlight driver");
-MODULE_ALIAS("i2c:adp8870-backlight");
index f88df9ec08d044091d7c1b531499a46309012904..daca9e6a2bb31590071cfc7100e4c1ee8ca4f1ec 100644 (file)
@@ -283,6 +283,7 @@ static int lp855x_backlight_register(struct lp855x *lp)
        struct lp855x_platform_data *pdata = lp->pdata;
        const char *name = pdata->name ? : DEFAULT_BL_NAME;
 
+       memset(&props, 0, sizeof(props));
        props.type = BACKLIGHT_PLATFORM;
        props.max_brightness = MAX_BRIGHTNESS;
 
index c704c3236034fd43dd5ccd719007b28b26d99736..0b6d21955d91ae875b870664c651e12e08a5ef9f 100644 (file)
@@ -17,6 +17,9 @@
 #include <linux/of_device.h>
 #include <linux/regmap.h>
 
+/* From DT binding */
+#define PM8941_WLED_DEFAULT_BRIGHTNESS         2048
+
 #define PM8941_WLED_REG_VAL_BASE               0x40
 #define  PM8941_WLED_REG_VAL_MAX               0xFFF
 
@@ -373,6 +376,7 @@ static int pm8941_wled_probe(struct platform_device *pdev)
        struct backlight_device *bl;
        struct pm8941_wled *wled;
        struct regmap *regmap;
+       u32 val;
        int rc;
 
        regmap = dev_get_regmap(pdev->dev.parent, NULL);
@@ -395,16 +399,17 @@ static int pm8941_wled_probe(struct platform_device *pdev)
        if (rc)
                return rc;
 
+       val = PM8941_WLED_DEFAULT_BRIGHTNESS;
+       of_property_read_u32(pdev->dev.of_node, "default-brightness", &val);
+
        memset(&props, 0, sizeof(struct backlight_properties));
        props.type = BACKLIGHT_RAW;
+       props.brightness = val;
        props.max_brightness = PM8941_WLED_REG_VAL_MAX;
        bl = devm_backlight_device_register(&pdev->dev, wled->name,
                                            &pdev->dev, wled,
                                            &pm8941_wled_ops, &props);
-       if (IS_ERR(bl))
-               return PTR_ERR(bl);
-
-       return 0;
+       return PTR_ERR_OR_ZERO(bl);
 };
 
 static const struct of_device_id pm8941_wled_match_table[] = {
index eff379b234ccfef7ce0a6abc96e4b9d8e3c6125a..ae3c6b6fd5db1e50e2eb74176f9cb5ef01805bb9 100644 (file)
@@ -271,19 +271,18 @@ static int pwm_backlight_probe(struct platform_device *pdev)
        }
 
        pb->pwm = devm_pwm_get(&pdev->dev, NULL);
-       if (IS_ERR(pb->pwm)) {
-               ret = PTR_ERR(pb->pwm);
-               if (ret == -EPROBE_DEFER)
-                       goto err_alloc;
-
+       if (IS_ERR(pb->pwm) && PTR_ERR(pb->pwm) != -EPROBE_DEFER
+           && !pdev->dev.of_node) {
                dev_err(&pdev->dev, "unable to request PWM, trying legacy API\n");
                pb->legacy = true;
                pb->pwm = pwm_request(data->pwm_id, "pwm-backlight");
-               if (IS_ERR(pb->pwm)) {
-                       dev_err(&pdev->dev, "unable to request legacy PWM\n");
-                       ret = PTR_ERR(pb->pwm);
-                       goto err_alloc;
-               }
+       }
+
+       if (IS_ERR(pb->pwm)) {
+               ret = PTR_ERR(pb->pwm);
+               if (ret != -EPROBE_DEFER)
+                       dev_err(&pdev->dev, "unable to request PWM\n");
+               goto err_alloc;
        }
 
        dev_dbg(&pdev->dev, "got pwm for backlight\n");