]> Pileus Git - ~andy/linux/blobdiff - drivers/leds/leds-lm3530.c
Merge branch 'uprobes/core' of git://git.kernel.org/pub/scm/linux/kernel/git/oleg...
[~andy/linux] / drivers / leds / leds-lm3530.c
index 23637bdb275d0b93d0e5db08f75145295b38af91..b26306f6724dcebc1605625405625aeebe022298 100644 (file)
@@ -150,7 +150,7 @@ static int lm3530_get_mode_from_str(const char *str)
                if (sysfs_streq(str, mode_map[i].mode))
                        return mode_map[i].mode_val;
 
-       return -1;
+       return -EINVAL;
 }
 
 static void lm3530_als_configure(struct lm3530_platform_data *pdata,
@@ -358,7 +358,7 @@ static ssize_t lm3530_mode_set(struct device *dev, struct device_attribute
        mode = lm3530_get_mode_from_str(buf);
        if (mode < 0) {
                dev_err(dev, "Invalid mode\n");
-               return -EINVAL;
+               return mode;
        }
 
        drvdata->mode = mode;
@@ -416,7 +416,7 @@ static int __devinit lm3530_probe(struct i2c_client *client,
 
        i2c_set_clientdata(client, drvdata);
 
-       drvdata->regulator = regulator_get(&client->dev, "vin");
+       drvdata->regulator = devm_regulator_get(&client->dev, "vin");
        if (IS_ERR(drvdata->regulator)) {
                dev_err(&client->dev, "regulator get failed\n");
                err = PTR_ERR(drvdata->regulator);
@@ -429,15 +429,13 @@ static int __devinit lm3530_probe(struct i2c_client *client,
                if (err < 0) {
                        dev_err(&client->dev,
                                "Register Init failed: %d\n", err);
-                       err = -ENODEV;
-                       goto err_reg_init;
+                       return err;
                }
        }
        err = led_classdev_register(&client->dev, &drvdata->led_dev);
        if (err < 0) {
                dev_err(&client->dev, "Register led class failed: %d\n", err);
-               err = -ENODEV;
-               goto err_class_register;
+               return err;
        }
 
        err = device_create_file(drvdata->led_dev.dev, &dev_attr_mode);
@@ -451,9 +449,6 @@ static int __devinit lm3530_probe(struct i2c_client *client,
 
 err_create_file:
        led_classdev_unregister(&drvdata->led_dev);
-err_class_register:
-err_reg_init:
-       regulator_put(drvdata->regulator);
        return err;
 }
 
@@ -465,7 +460,6 @@ static int __devexit lm3530_remove(struct i2c_client *client)
 
        if (drvdata->enable)
                regulator_disable(drvdata->regulator);
-       regulator_put(drvdata->regulator);
        led_classdev_unregister(&drvdata->led_dev);
        return 0;
 }