leds: Use devm_led_classdev_register
v2 cover leds: 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.
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>
Amitoj Kaur Chawla (6):
leds: 88pm860x: Use devm_led_classdev_register
leds: lp8788: Use devm_led_classdev_register
leds: wm831x-status: Use devm_led_classdev_register
leds: s3c24xx: Use devm_led_classdev_register
leds: da903x: Use devm_led_classdev_register
leds: max8997: Use devm_led_classdev_register
Changes in v2:
-Patches 1-6: Remove unnecessary platform_set_drvdata -Patch 4: Remove unnecessary pdev_to_gpio function definition
drivers/leds/leds-88pm860x.c | 12 +----------- drivers/leds/leds-da903x.c | 12 +----------- drivers/leds/leds-lp8788.c | 14 +------------- drivers/leds/leds-max8997.c | 14 +------------- drivers/leds/leds-s3c24xx.c | 19 +------------------ drivers/leds/leds-wm831x-status.c | 13 +------------ 6 files changed, 6 insertions(+), 78 deletions(-)
Signature · 1 line
1.9.1
PATCH v2 1/6 leds: 88pm860x: 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, pm860x_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>
---
Changes in v2:
-Remove unnecesarry platform_set_drvdata
drivers/leds/leds-88pm860x.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-)
drivers/leds/leds-88pm860x.c +1 -11
@@ -195,7 +195,6 @@ static int pm860x_led_probe(struct platform_device *pdev)sprintf (data->name,"led1-blue" );break ; } -platform_set_drvdata (pdev, data); data->chip = chip; data->i2c = (chip->id ==CHIP_PM8606 ) ? chip->client : chip->companion; data->port = pdev->id;
@@ -208,7 +207,7 @@ static int pm860x_led_probe(struct platform_device *pdev) data->cdev.brightness_set_blocking = pm860x_led_set;mutex_init (&data->lock); - ret =led_classdev_register (chip->dev, &data->cdev); + ret =devm_led_classdev_register (chip->dev, &data->cdev);if (ret <0 ) {dev_err (&pdev->dev,"Failed to register LED: %d\n" , ret);return ret;
@@ -217,21 +216,12 @@ static int pm860x_led_probe(struct platform_device *pdev)return 0 ; } -static int pm860x_led_remove (struct platform_device *pdev) -{ -struct pm860x_led *data =platform_get_drvdata (pdev); - -led_classdev_unregister (&data->cdev); - -return 0 ; -}static struct platform_driver pm860x_led_driver = { .driver = { .name ="88pm860x-led" , }, .probe = pm860x_led_probe, - .remove = pm860x_led_remove, };module_platform_driver (pm860x_led_driver);
Signature · 1 line
1.9.1
PATCH v2 2/6 leds: lp8788: Use devm_led_classdev_register
In reply to Amitoj Kaur ChawlaSwitch 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>
---
Changes in v2:
-Remove unnecessary platform_set_drvdata
drivers/leds/leds-lp8788.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-)
drivers/leds/leds-lp8788.c +1 -13
@@ -146,15 +146,13 @@ static int lp8788_led_probe(struct platform_device *pdev)mutex_init (&led->lock); -platform_set_drvdata (pdev, led); - ret =lp8788_led_init_device (led, led_pdata);if (ret) {dev_err (dev,"led init device err: %d\n" , ret);return ret; } - ret =led_classdev_register (dev, &led->led_dev); + ret =devm_led_classdev_register (dev, &led->led_dev);if (ret) {dev_err (dev,"led register err: %d\n" , ret);return ret;
@@ -163,18 +161,8 @@ static int lp8788_led_probe(struct platform_device *pdev)return 0 ; } -static int lp8788_led_remove (struct platform_device *pdev) -{ -struct lp8788_led *led =platform_get_drvdata (pdev); - -led_classdev_unregister (&led->led_dev); - -return 0 ; -} -static struct platform_driver lp8788_led_driver = { .probe = lp8788_led_probe, - .remove = lp8788_led_remove, .driver = { .name =LP8788_DEV_KEYLED , },
Signature · 1 line
1.9.1
PATCH v2 3/6 leds: wm831x-status: Use devm_led_classdev_register
In reply to Amitoj Kaur ChawlaSwitch to resource-managed function devm_led_classdev_register instead of led_classdev_register and remove unneeded led_classdev_unregister.
Also, remove platform_set_drvdata from probe function and the remove function, wm831x_status_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>
---
Changes in v2:
-Remove unnecessary platform_set_drvdata
drivers/leds/leds-wm831x-status.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-)
drivers/leds/leds-wm831x-status.c +1 -12
@@ -239,7 +239,6 @@ static int wm831x_status_probe(struct platform_device *pdev) GFP_KERNEL);if (!drvdata)return -ENOMEM ; -platform_set_drvdata (pdev, drvdata); drvdata->wm831x = wm831x; drvdata->reg = res->start;
@@ -284,7 +283,7 @@ static int wm831x_status_probe(struct platform_device *pdev) drvdata->cdev.blink_set = wm831x_status_blink_set; drvdata->cdev.groups = wm831x_status_groups; - ret =led_classdev_register (wm831x->dev, &drvdata->cdev); + ret =devm_led_classdev_register (wm831x->dev, &drvdata->cdev);if (ret <0 ) {dev_err (&pdev->dev,"Failed to register LED: %d\n" , ret);return ret;
@@ -293,21 +292,11 @@ static int wm831x_status_probe(struct platform_device *pdev)return 0 ; } -static int wm831x_status_remove (struct platform_device *pdev) -{ -struct wm831x_status *drvdata =platform_get_drvdata (pdev); - -led_classdev_unregister (&drvdata->cdev); - -return 0 ; -} -static struct platform_driver wm831x_status_driver = { .driver = { .name ="wm831x-status" , }, .probe = wm831x_status_probe, - .remove = wm831x_status_remove, };module_platform_driver (wm831x_status_driver);
Signature · 1 line
1.9.1
PATCH v2 4/6 leds: s3c24xx: Use devm_led_classdev_register
In reply to Amitoj Kaur ChawlaSwitch 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>
---
Changes in v2:
-Remove unnecessary platform_set_drvdata and pdev_to_gpio
function definition.
drivers/leds/leds-s3c24xx.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-)
drivers/leds/leds-s3c24xx.c +1 -18
@@ -29,11 +29,6 @@ struct s3c24xx_gpio_led {struct s3c24xx_led_platdata *pdata; }; -static inline struct s3c24xx_gpio_led *pdev_to_gpio (struct platform_device *dev) -{ -return platform_get_drvdata (dev); -} -static inline struct s3c24xx_gpio_led *to_gpio (struct led_classdev *led_cdev) { return container_of(led_cdev, struct s3c24xx_gpio_led, cdev);
@@ -59,15 +54,6 @@ static void s3c24xx_led_set(struct led_classdev *led_cdev, } } -static int s3c24xx_led_remove (struct platform_device *dev) -{ -struct s3c24xx_gpio_led *led =pdev_to_gpio (dev); - -led_classdev_unregister (&led->cdev); - -return 0 ; -} -static int s3c24xx_led_probe (struct platform_device *dev) {struct s3c24xx_led_platdata *pdata =dev_get_platdata (&dev->dev);
@@ -79,8 +65,6 @@ static int s3c24xx_led_probe(struct platform_device *dev)if (!led)return -ENOMEM ; -platform_set_drvdata (dev, led); - led->cdev.brightness_set = s3c24xx_led_set; led->cdev.default_trigger = pdata->def_trigger; led->cdev.name = pdata->name;
@@ -104,7 +88,7 @@ static int s3c24xx_led_probe(struct platform_device *dev)/* register our new led device */ - ret =led_classdev_register (&dev->dev, &led->cdev); + ret =devm_led_classdev_register (&dev->dev, &led->cdev);if (ret <0 )dev_err (&dev->dev,"led_classdev_register failed\n" );
@@ -113,7 +97,6 @@ static int s3c24xx_led_probe(struct platform_device *dev)static struct platform_driver s3c24xx_led_driver = { .probe = s3c24xx_led_probe, - .remove = s3c24xx_led_remove, .driver = { .name ="s3c24xx_led" , },
Signature · 1 line
1.9.1
PATCH v2 5/6 leds: da903x: Use devm_led_classdev_register
In reply to Amitoj Kaur ChawlaSwitch 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, da903x_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>
---
Changes in v2:
-Remove unnecessary platform_set_drvdata
drivers/leds/leds-da903x.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-)
drivers/leds/leds-da903x.c +1 -11
@@ -113,21 +113,12 @@ static int da903x_led_probe(struct platform_device *pdev) led->flags = pdata->flags; led->master = pdev->dev.parent; - ret =led_classdev_register (led->master, &led->cdev); + ret =devm_led_classdev_register (led->master, &led->cdev);if (ret) {dev_err (&pdev->dev,"failed to register LED %d\n" , id);return ret; } -platform_set_drvdata (pdev, led); -return 0 ; -} - -static int da903x_led_remove (struct platform_device *pdev) -{ -struct da903x_led *led =platform_get_drvdata (pdev); - -led_classdev_unregister (&led->cdev);return 0 ; }
@@ -136,7 +127,6 @@ static struct platform_driver da903x_led_driver = { .name = "da903x-led", }, .probe = da903x_led_probe, - .remove = da903x_led_remove, };module_platform_driver (da903x_led_driver);
Signature · 1 line
1.9.1
PATCH v2 6/6 leds: max8997: Use devm_led_classdev_register
In reply to Amitoj Kaur ChawlaSwitch 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, max8997_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>
---
Changes in v2:
-Remove unnecessary platform_set_drvdata
drivers/leds/leds-max8997.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-)
drivers/leds/leds-max8997.c +1 -13
@@ -281,30 +281,18 @@ static int max8997_led_probe(struct platform_device *pdev)mutex_init (&led->mutex); -platform_set_drvdata (pdev, led); - - ret =led_classdev_register (&pdev->dev, &led->cdev); + ret =devm_led_classdev_register (&pdev->dev, &led->cdev);if (ret <0 )return ret;return 0 ; } -static int max8997_led_remove (struct platform_device *pdev) -{ -struct max8997_led *led =platform_get_drvdata (pdev); - -led_classdev_unregister (&led->cdev); - -return 0 ; -} -static struct platform_driver max8997_led_driver = { .driver = { .name ="max8997-led" , }, .probe = max8997_led_probe, - .remove = max8997_led_remove, };module_platform_driver (max8997_led_driver);
Signature · 1 line
1.9.1
Hi Amitoj,
Quoted 49 lines · Amitoj Kaur Chawla
Switch to resource-managed function
devm_led_classdev_registerinstead ofled_classdev_registerand remove unneededled_classdev_unregister.The Coccinelle semantic patch used to make this change is as follows:
//<smpl>
@platform@
identifier p, probefn, removefn;
@@
structplatform_driverp = {
.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>Amitoj Kaur Chawla (6):
leds: 88pm860x: Usedevm_led_classdev_register
leds: lp8788: Usedevm_led_classdev_register
leds: wm831x-status: Usedevm_led_classdev_register
leds: s3c24xx: Usedevm_led_classdev_register
leds: da903x: Usedevm_led_classdev_register
leds: max8997: Usedevm_led_classdev_registerChanges in v2:
-Patches 1-6: Remove unnecessaryplatform_set_drvdata-Patch 4: Remove unnecessarypdev_to_gpiofunction definition
Quoted 8 lines
drivers/leds/leds-88pm860x.c | 12 +----------- drivers/leds/leds-da903x.c | 12 +----------- drivers/leds/leds-lp8788.c | 14 +------------- drivers/leds/leds-max8997.c | 14 +------------- drivers/leds/leds-s3c24xx.c | 19 +------------------ drivers/leds/leds-wm831x-status.c | 13 +------------ 6 files changed, 6 insertions(+), 78 deletions(-)
Thanks for the updated set. All patches have been applied to the linux-leds.git.
Signature · 2 lines
Best regards, Jacek Anaszewski