diff options
Diffstat (limited to 'drivers/leds/leds-wm831x-status.c')
-rw-r--r-- | drivers/leds/leds-wm831x-status.c | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/drivers/leds/leds-wm831x-status.c b/drivers/leds/leds-wm831x-status.c index b1eb34c3e81f..74a24cf897c3 100644 --- a/drivers/leds/leds-wm831x-status.c +++ b/drivers/leds/leds-wm831x-status.c | |||
@@ -237,7 +237,8 @@ static int wm831x_status_probe(struct platform_device *pdev) | |||
237 | goto err; | 237 | goto err; |
238 | } | 238 | } |
239 | 239 | ||
240 | drvdata = kzalloc(sizeof(struct wm831x_status), GFP_KERNEL); | 240 | drvdata = devm_kzalloc(&pdev->dev, sizeof(struct wm831x_status), |
241 | GFP_KERNEL); | ||
241 | if (!drvdata) | 242 | if (!drvdata) |
242 | return -ENOMEM; | 243 | return -ENOMEM; |
243 | dev_set_drvdata(&pdev->dev, drvdata); | 244 | dev_set_drvdata(&pdev->dev, drvdata); |
@@ -300,7 +301,6 @@ static int wm831x_status_probe(struct platform_device *pdev) | |||
300 | 301 | ||
301 | err_led: | 302 | err_led: |
302 | led_classdev_unregister(&drvdata->cdev); | 303 | led_classdev_unregister(&drvdata->cdev); |
303 | kfree(drvdata); | ||
304 | err: | 304 | err: |
305 | return ret; | 305 | return ret; |
306 | } | 306 | } |
@@ -311,7 +311,6 @@ static int wm831x_status_remove(struct platform_device *pdev) | |||
311 | 311 | ||
312 | device_remove_file(drvdata->cdev.dev, &dev_attr_src); | 312 | device_remove_file(drvdata->cdev.dev, &dev_attr_src); |
313 | led_classdev_unregister(&drvdata->cdev); | 313 | led_classdev_unregister(&drvdata->cdev); |
314 | kfree(drvdata); | ||
315 | 314 | ||
316 | return 0; | 315 | return 0; |
317 | } | 316 | } |
@@ -325,17 +324,7 @@ static struct platform_driver wm831x_status_driver = { | |||
325 | .remove = wm831x_status_remove, | 324 | .remove = wm831x_status_remove, |
326 | }; | 325 | }; |
327 | 326 | ||
328 | static int __devinit wm831x_status_init(void) | 327 | module_platform_driver(wm831x_status_driver); |
329 | { | ||
330 | return platform_driver_register(&wm831x_status_driver); | ||
331 | } | ||
332 | module_init(wm831x_status_init); | ||
333 | |||
334 | static void wm831x_status_exit(void) | ||
335 | { | ||
336 | platform_driver_unregister(&wm831x_status_driver); | ||
337 | } | ||
338 | module_exit(wm831x_status_exit); | ||
339 | 328 | ||
340 | MODULE_AUTHOR("Mark Brown <broonie@opensource.wolfsonmicro.com>"); | 329 | MODULE_AUTHOR("Mark Brown <broonie@opensource.wolfsonmicro.com>"); |
341 | MODULE_DESCRIPTION("WM831x status LED driver"); | 330 | MODULE_DESCRIPTION("WM831x status LED driver"); |