aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmitoj Kaur Chawla <amitoj1606@gmail.com>2016-03-08 22:23:38 -0500
committerJacek Anaszewski <j.anaszewski@samsung.com>2016-03-14 04:22:22 -0400
commitf165a66e16f0aa8270ec4a26fdb07606eb7d6ae3 (patch)
tree6314bce84a0846cc770b26a3b39eaf762793a3cc
parent375446df95eee10c21ecc7fcb2295bd1ae1db8f7 (diff)
leds: lp8788: Use devm_led_classdev_register
Switch to resource-managed function devm_led_classdev_register instead of led_classdev_register and remove unneeded led_classdev_unregister. Also, remove platform_set_drvdata in probe function and the remove function, lp8788_led_remove as it is now has nothing to do. The Coccinelle semantic patch used to make this change is as follows: //<smpl> @platform@ identifier p, probefn, removefn; @@ struct platform_driver p = { .probe = probefn, .remove = removefn, }; @prb@ identifier platform.probefn, pdev; expression e; @@ probefn(struct platform_device *pdev, ...) { ... e = - led_classdev_register + devm_led_classdev_register (...); ... ?- led_classdev_unregister(...); ... } @remove depends on prb@ identifier platform.removefn; @@ removefn(...) { ... ?- led_classdev_unregister(...); ... } //</smpl> Signed-off-by: Amitoj Kaur Chawla <amitoj1606@gmail.com> Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
-rw-r--r--drivers/leds/leds-lp8788.c14
1 files changed, 1 insertions, 13 deletions
diff --git a/drivers/leds/leds-lp8788.c b/drivers/leds/leds-lp8788.c
index 0eee38fc0565..38c253a43700 100644
--- a/drivers/leds/leds-lp8788.c
+++ b/drivers/leds/leds-lp8788.c
@@ -146,15 +146,13 @@ static int lp8788_led_probe(struct platform_device *pdev)
146 146
147 mutex_init(&led->lock); 147 mutex_init(&led->lock);
148 148
149 platform_set_drvdata(pdev, led);
150
151 ret = lp8788_led_init_device(led, led_pdata); 149 ret = lp8788_led_init_device(led, led_pdata);
152 if (ret) { 150 if (ret) {
153 dev_err(dev, "led init device err: %d\n", ret); 151 dev_err(dev, "led init device err: %d\n", ret);
154 return ret; 152 return ret;
155 } 153 }
156 154
157 ret = led_classdev_register(dev, &led->led_dev); 155 ret = devm_led_classdev_register(dev, &led->led_dev);
158 if (ret) { 156 if (ret) {
159 dev_err(dev, "led register err: %d\n", ret); 157 dev_err(dev, "led register err: %d\n", ret);
160 return ret; 158 return ret;
@@ -163,18 +161,8 @@ static int lp8788_led_probe(struct platform_device *pdev)
163 return 0; 161 return 0;
164} 162}
165 163
166static int lp8788_led_remove(struct platform_device *pdev)
167{
168 struct lp8788_led *led = platform_get_drvdata(pdev);
169
170 led_classdev_unregister(&led->led_dev);
171
172 return 0;
173}
174
175static struct platform_driver lp8788_led_driver = { 164static struct platform_driver lp8788_led_driver = {
176 .probe = lp8788_led_probe, 165 .probe = lp8788_led_probe,
177 .remove = lp8788_led_remove,
178 .driver = { 166 .driver = {
179 .name = LP8788_DEV_KEYLED, 167 .name = LP8788_DEV_KEYLED,
180 }, 168 },