diff options
author | Amitoj Kaur Chawla <amitoj1606@gmail.com> | 2016-03-08 22:23:57 -0500 |
---|---|---|
committer | Jacek Anaszewski <j.anaszewski@samsung.com> | 2016-03-14 04:22:22 -0400 |
commit | 48a7032ba044103cf89af680d3e3bb9bf0ba9072 (patch) | |
tree | 2750313bc00f22f51baa93229e7b3529eba6ed8a | |
parent | 8d3b6a4001ceaeef1aaac39e6cb5380780b4ef9c (diff) |
leds: s3c24xx: 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 unnecessary function pdev_to_gpio, platform_set_drvdata
in the probe function and the remove function, s3c24xx_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-s3c24xx.c | 19 |
1 files changed, 1 insertions, 18 deletions
diff --git a/drivers/leds/leds-s3c24xx.c b/drivers/leds/leds-s3c24xx.c index 83641a7b299a..404da451cb88 100644 --- a/drivers/leds/leds-s3c24xx.c +++ b/drivers/leds/leds-s3c24xx.c | |||
@@ -29,11 +29,6 @@ struct s3c24xx_gpio_led { | |||
29 | struct s3c24xx_led_platdata *pdata; | 29 | struct s3c24xx_led_platdata *pdata; |
30 | }; | 30 | }; |
31 | 31 | ||
32 | static inline struct s3c24xx_gpio_led *pdev_to_gpio(struct platform_device *dev) | ||
33 | { | ||
34 | return platform_get_drvdata(dev); | ||
35 | } | ||
36 | |||
37 | static inline struct s3c24xx_gpio_led *to_gpio(struct led_classdev *led_cdev) | 32 | static inline struct s3c24xx_gpio_led *to_gpio(struct led_classdev *led_cdev) |
38 | { | 33 | { |
39 | return container_of(led_cdev, struct s3c24xx_gpio_led, cdev); | 34 | return container_of(led_cdev, struct s3c24xx_gpio_led, cdev); |
@@ -59,15 +54,6 @@ static void s3c24xx_led_set(struct led_classdev *led_cdev, | |||
59 | } | 54 | } |
60 | } | 55 | } |
61 | 56 | ||
62 | static int s3c24xx_led_remove(struct platform_device *dev) | ||
63 | { | ||
64 | struct s3c24xx_gpio_led *led = pdev_to_gpio(dev); | ||
65 | |||
66 | led_classdev_unregister(&led->cdev); | ||
67 | |||
68 | return 0; | ||
69 | } | ||
70 | |||
71 | static int s3c24xx_led_probe(struct platform_device *dev) | 57 | static int s3c24xx_led_probe(struct platform_device *dev) |
72 | { | 58 | { |
73 | struct s3c24xx_led_platdata *pdata = dev_get_platdata(&dev->dev); | 59 | struct s3c24xx_led_platdata *pdata = dev_get_platdata(&dev->dev); |
@@ -79,8 +65,6 @@ static int s3c24xx_led_probe(struct platform_device *dev) | |||
79 | if (!led) | 65 | if (!led) |
80 | return -ENOMEM; | 66 | return -ENOMEM; |
81 | 67 | ||
82 | platform_set_drvdata(dev, led); | ||
83 | |||
84 | led->cdev.brightness_set = s3c24xx_led_set; | 68 | led->cdev.brightness_set = s3c24xx_led_set; |
85 | led->cdev.default_trigger = pdata->def_trigger; | 69 | led->cdev.default_trigger = pdata->def_trigger; |
86 | led->cdev.name = pdata->name; | 70 | led->cdev.name = pdata->name; |
@@ -104,7 +88,7 @@ static int s3c24xx_led_probe(struct platform_device *dev) | |||
104 | 88 | ||
105 | /* register our new led device */ | 89 | /* register our new led device */ |
106 | 90 | ||
107 | ret = led_classdev_register(&dev->dev, &led->cdev); | 91 | ret = devm_led_classdev_register(&dev->dev, &led->cdev); |
108 | if (ret < 0) | 92 | if (ret < 0) |
109 | dev_err(&dev->dev, "led_classdev_register failed\n"); | 93 | dev_err(&dev->dev, "led_classdev_register failed\n"); |
110 | 94 | ||
@@ -113,7 +97,6 @@ static int s3c24xx_led_probe(struct platform_device *dev) | |||
113 | 97 | ||
114 | static struct platform_driver s3c24xx_led_driver = { | 98 | static struct platform_driver s3c24xx_led_driver = { |
115 | .probe = s3c24xx_led_probe, | 99 | .probe = s3c24xx_led_probe, |
116 | .remove = s3c24xx_led_remove, | ||
117 | .driver = { | 100 | .driver = { |
118 | .name = "s3c24xx_led", | 101 | .name = "s3c24xx_led", |
119 | }, | 102 | }, |