diff options
| -rw-r--r-- | drivers/leds/leds-lm3530.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/drivers/leds/leds-lm3530.c b/drivers/leds/leds-lm3530.c index 23637bdb275d..1e7ed2abfdcc 100644 --- a/drivers/leds/leds-lm3530.c +++ b/drivers/leds/leds-lm3530.c | |||
| @@ -416,7 +416,7 @@ static int __devinit lm3530_probe(struct i2c_client *client, | |||
| 416 | 416 | ||
| 417 | i2c_set_clientdata(client, drvdata); | 417 | i2c_set_clientdata(client, drvdata); |
| 418 | 418 | ||
| 419 | drvdata->regulator = regulator_get(&client->dev, "vin"); | 419 | drvdata->regulator = devm_regulator_get(&client->dev, "vin"); |
| 420 | if (IS_ERR(drvdata->regulator)) { | 420 | if (IS_ERR(drvdata->regulator)) { |
| 421 | dev_err(&client->dev, "regulator get failed\n"); | 421 | dev_err(&client->dev, "regulator get failed\n"); |
| 422 | err = PTR_ERR(drvdata->regulator); | 422 | err = PTR_ERR(drvdata->regulator); |
| @@ -429,15 +429,13 @@ static int __devinit lm3530_probe(struct i2c_client *client, | |||
| 429 | if (err < 0) { | 429 | if (err < 0) { |
| 430 | dev_err(&client->dev, | 430 | dev_err(&client->dev, |
| 431 | "Register Init failed: %d\n", err); | 431 | "Register Init failed: %d\n", err); |
| 432 | err = -ENODEV; | 432 | return -ENODEV; |
| 433 | goto err_reg_init; | ||
| 434 | } | 433 | } |
| 435 | } | 434 | } |
| 436 | err = led_classdev_register(&client->dev, &drvdata->led_dev); | 435 | err = led_classdev_register(&client->dev, &drvdata->led_dev); |
| 437 | if (err < 0) { | 436 | if (err < 0) { |
| 438 | dev_err(&client->dev, "Register led class failed: %d\n", err); | 437 | dev_err(&client->dev, "Register led class failed: %d\n", err); |
| 439 | err = -ENODEV; | 438 | return -ENODEV; |
| 440 | goto err_class_register; | ||
| 441 | } | 439 | } |
| 442 | 440 | ||
| 443 | err = device_create_file(drvdata->led_dev.dev, &dev_attr_mode); | 441 | err = device_create_file(drvdata->led_dev.dev, &dev_attr_mode); |
| @@ -451,9 +449,6 @@ static int __devinit lm3530_probe(struct i2c_client *client, | |||
| 451 | 449 | ||
| 452 | err_create_file: | 450 | err_create_file: |
| 453 | led_classdev_unregister(&drvdata->led_dev); | 451 | led_classdev_unregister(&drvdata->led_dev); |
| 454 | err_class_register: | ||
| 455 | err_reg_init: | ||
| 456 | regulator_put(drvdata->regulator); | ||
| 457 | return err; | 452 | return err; |
| 458 | } | 453 | } |
| 459 | 454 | ||
| @@ -465,7 +460,6 @@ static int __devexit lm3530_remove(struct i2c_client *client) | |||
| 465 | 460 | ||
| 466 | if (drvdata->enable) | 461 | if (drvdata->enable) |
| 467 | regulator_disable(drvdata->regulator); | 462 | regulator_disable(drvdata->regulator); |
| 468 | regulator_put(drvdata->regulator); | ||
| 469 | led_classdev_unregister(&drvdata->led_dev); | 463 | led_classdev_unregister(&drvdata->led_dev); |
| 470 | return 0; | 464 | return 0; |
| 471 | } | 465 | } |
