Skip to contentSkip to conversation

leds: leds-fsg: Use devm_led_classdev_register

PATCH Applied Vaishali Thakkar 2 participants 2 messages Aug 18, 2015 – Aug 24, 2015 LED

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 leds: leds-fsg: Use devm_led_classdev_register

Use resource-managed function devm_led_classdev_register instead of led_classdev_register to make the error-path simpler.

To be compatible with the change, various gotos are replced with direct returns and unneeded labels are dropped. Also, remove fsg_led_remove as it is now redundant.

---
Changes since v1:
- Fix build errors

---
 drivers/leds/leds-fsg.c | 52 ++++++++++++-------------------------------------
 1 file changed, 12 insertions(+), 40 deletions(-)
drivers/leds/leds-fsg.c +12 -40
index 2b4dc73..257a813 100644
@@ -156,63 +156,35 @@ static int fsg_led_probe(struct platform_device *pdev)
 	latch_value = 0xffff;
 	*latch_address = latch_value;
 
-	ret = led_classdev_register(&pdev->dev, &fsg_wlan_led);
+	ret = devm_led_classdev_register(&pdev->dev, &fsg_wlan_led);
 	if (ret < 0)
-		goto failwlan;
+		return ret;
 
-	ret = led_classdev_register(&pdev->dev, &fsg_wan_led);
+	ret = devm_led_classdev_register(&pdev->dev, &fsg_wan_led);
 	if (ret < 0)
-		goto failwan;
+		return ret;
 
-	ret = led_classdev_register(&pdev->dev, &fsg_sata_led);
+	ret = devm_led_classdev_register(&pdev->dev, &fsg_sata_led);
 	if (ret < 0)
-		goto failsata;
+		return ret;
 
-	ret = led_classdev_register(&pdev->dev, &fsg_usb_led);
+	ret = devm_led_classdev_register(&pdev->dev, &fsg_usb_led);
 	if (ret < 0)
-		goto failusb;
+		return ret;
 
-	ret = led_classdev_register(&pdev->dev, &fsg_sync_led);
+	ret = devm_led_classdev_register(&pdev->dev, &fsg_sync_led);
 	if (ret < 0)
-		goto failsync;
+		return ret;
 
-	ret = led_classdev_register(&pdev->dev, &fsg_ring_led);
+	ret = devm_led_classdev_register(&pdev->dev, &fsg_ring_led);
 	if (ret < 0)
-		goto failring;
-
-	return ret;
-
- failring:
-	led_classdev_unregister(&fsg_sync_led);
- failsync:
-	led_classdev_unregister(&fsg_usb_led);
- failusb:
-	led_classdev_unregister(&fsg_sata_led);
- failsata:
-	led_classdev_unregister(&fsg_wan_led);
- failwan:
-	led_classdev_unregister(&fsg_wlan_led);
- failwlan:
+		return ret;
 
 	return ret;
 }
 
-static int fsg_led_remove(struct platform_device *pdev)
-{
-	led_classdev_unregister(&fsg_wlan_led);
-	led_classdev_unregister(&fsg_wan_led);
-	led_classdev_unregister(&fsg_sata_led);
-	led_classdev_unregister(&fsg_usb_led);
-	led_classdev_unregister(&fsg_sync_led);
-	led_classdev_unregister(&fsg_ring_led);
-
-	return 0;
-}
-
-
 static struct platform_driver fsg_led_driver = {
 	.probe		= fsg_led_probe,
-	.remove		= fsg_led_remove,
 	.driver		= {
 		.name		= "fsg-led",
 	},
Signature · 1 line
1.9.1
#1 lore raw
Quoted 7 lines · Vaishali Thakkar

Use resource-managed function devm_led_classdev_register instead of led_classdev_register to make the error-path simpler.

To be compatible with the change, various gotos are replced with direct returns and unneeded labels are dropped. Also, remove fsg_led_remove as it is now redundant.

Quoted 7 lines

---
Changes since v1:
- Fix build errors

---
  drivers/leds/leds-fsg.c | 52 ++++++++++++-------------------------------------
  1 file changed, 12 insertions(+), 40 deletions(-)

Merged, thanks.

Signature · 2 lines
Best Regards,
Jacek Anaszewski