All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Davis <afd@ti.com>
To: "Sebastian Reichel" <sre@kernel.org>,
	"Support Opensource" <support.opensource@diasemi.com>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org>,
	"Pali Rohár" <pali@kernel.org>
Cc: <linux-pm@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	Andrew Davis <afd@ti.com>
Subject: [PATCH 15/21] power: supply: wm8350: Use devm_power_supply_register() helper
Date: Tue, 23 Jan 2024 10:36:47 -0600	[thread overview]
Message-ID: <20240123163653.384385-16-afd@ti.com> (raw)
In-Reply-To: <20240123163653.384385-1-afd@ti.com>

Use the device lifecycle managed register function. This helps prevent
mistakes like unregistering out of order in cleanup functions and
forgetting to unregister on error paths.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 drivers/power/supply/wm8350_power.c | 29 +++++++----------------------
 1 file changed, 7 insertions(+), 22 deletions(-)

diff --git a/drivers/power/supply/wm8350_power.c b/drivers/power/supply/wm8350_power.c
index f23b4f5343bc1..9b0010b28cafc 100644
--- a/drivers/power/supply/wm8350_power.c
+++ b/drivers/power/supply/wm8350_power.c
@@ -540,22 +540,17 @@ static int wm8350_power_probe(struct platform_device *pdev)
 	struct wm8350_charger_policy *policy = power->policy;
 	int ret;
 
-	power->ac = power_supply_register(&pdev->dev, &wm8350_ac_desc, NULL);
+	power->ac = devm_power_supply_register(&pdev->dev, &wm8350_ac_desc, NULL);
 	if (IS_ERR(power->ac))
 		return PTR_ERR(power->ac);
 
-	power->battery = power_supply_register(&pdev->dev, &wm8350_battery_desc,
-					       NULL);
-	if (IS_ERR(power->battery)) {
-		ret = PTR_ERR(power->battery);
-		goto battery_failed;
-	}
+	power->battery = devm_power_supply_register(&pdev->dev, &wm8350_battery_desc, NULL);
+	if (IS_ERR(power->battery))
+		return PTR_ERR(power->battery);
 
-	power->usb = power_supply_register(&pdev->dev, &wm8350_usb_desc, NULL);
-	if (IS_ERR(power->usb)) {
-		ret = PTR_ERR(power->usb);
-		goto usb_failed;
-	}
+	power->usb = devm_power_supply_register(&pdev->dev, &wm8350_usb_desc, NULL);
+	if (IS_ERR(power->usb))
+		return PTR_ERR(power->usb);
 
 	ret = device_create_file(&pdev->dev, &dev_attr_charger_state);
 	if (ret < 0)
@@ -569,13 +564,6 @@ static int wm8350_power_probe(struct platform_device *pdev)
 		wm8350_reg_lock(wm8350);
 	}
 
-	return ret;
-
-usb_failed:
-	power_supply_unregister(power->battery);
-battery_failed:
-	power_supply_unregister(power->ac);
-
 	return ret;
 }
 
@@ -586,9 +574,6 @@ static void wm8350_power_remove(struct platform_device *pdev)
 
 	free_charger_irq(wm8350);
 	device_remove_file(&pdev->dev, &dev_attr_charger_state);
-	power_supply_unregister(power->battery);
-	power_supply_unregister(power->ac);
-	power_supply_unregister(power->usb);
 }
 
 static struct platform_driver wm8350_power_driver = {
-- 
2.39.2


  parent reply	other threads:[~2024-01-23 16:37 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
2024-01-23 16:36 ` [PATCH 01/21] power: supply: da9030: Use devm_power_supply_register() helper Andrew Davis
2024-01-23 16:36 ` [PATCH 02/21] power: supply: da9052: " Andrew Davis
2024-01-23 16:36 ` [PATCH 03/21] power: supply: ds2760: " Andrew Davis
2024-01-23 16:36 ` [PATCH 04/21] power: supply: goldfish: " Andrew Davis
2024-01-23 16:36 ` [PATCH 05/21] power: supply: lp8727: " Andrew Davis
2024-01-23 16:36 ` [PATCH 06/21] power: supply: lp8788: " Andrew Davis
2024-01-23 16:36 ` [PATCH 07/21] power: supply: max14577: " Andrew Davis
2024-01-23 16:36 ` [PATCH 08/21] power: supply: max77693: " Andrew Davis
2024-01-26 11:56   ` kernel test robot
2024-01-23 16:36 ` [PATCH 09/21] power: supply: max8925: " Andrew Davis
2024-01-26 12:28   ` kernel test robot
2024-01-23 16:36 ` [PATCH 10/21] power: supply: pcf50633: " Andrew Davis
2024-01-23 16:36 ` [PATCH 11/21] power: supply: rt5033: " Andrew Davis
2024-01-23 16:36 ` [PATCH 12/21] power: supply: tps65090: " Andrew Davis
2024-01-23 16:36 ` [PATCH 13/21] power: supply: wm831x: " Andrew Davis
2024-01-23 16:36 ` [PATCH 14/21] " Andrew Davis
2024-01-23 16:36 ` Andrew Davis [this message]
2024-01-26 13:00   ` [PATCH 15/21] power: supply: wm8350: " kernel test robot
2024-01-23 16:36 ` [PATCH 16/21] power: supply: da9150: Use devm_iio_channel_get() helper Andrew Davis
2024-01-23 16:36 ` [PATCH 17/21] power: supply: da9150: Use devm_power_supply_register() helper Andrew Davis
2024-01-23 16:36 ` [PATCH 18/21] power: supply: rx51: Use devm_iio_channel_get() helper Andrew Davis
2024-01-23 16:36 ` [PATCH 19/21] power: supply: rx51: Use devm_power_supply_register() helper Andrew Davis
2024-01-23 16:36 ` [PATCH 20/21] power: supply: twl4030_madc: Use devm_iio_channel_get() helper Andrew Davis
2024-01-23 16:36 ` [PATCH 21/21] power: supply: twl4030_madc: Use devm_power_supply_register() helper Andrew Davis
2024-01-27  0:48 ` (subset) [PATCH 00/21] Power supply register with devm Sebastian Reichel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240123163653.384385-16-afd@ti.com \
    --to=afd@ti.com \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=pali@kernel.org \
    --cc=sre@kernel.org \
    --cc=support.opensource@diasemi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.