linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/21] Power supply register with devm
@ 2024-01-23 16:36 Andrew Davis
  2024-01-23 16:36 ` [PATCH 01/21] power: supply: da9030: Use devm_power_supply_register() helper Andrew Davis
                   ` (21 more replies)
  0 siblings, 22 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

Hello all,

This is a semi-automated series converting several drivers
under power/supply over to using devm_power_supply_register().
The more trivial cases are first, the last 3 drivers needed
a little pre-work to convert their IIO uses over to devm before
power_supply_register() could be switched.

Thanks,
Andrew

Andrew Davis (21):
  power: supply: da9030: Use devm_power_supply_register() helper
  power: supply: da9052: Use devm_power_supply_register() helper
  power: supply: ds2760: Use devm_power_supply_register() helper
  power: supply: goldfish: Use devm_power_supply_register() helper
  power: supply: lp8727: Use devm_power_supply_register() helper
  power: supply: lp8788: Use devm_power_supply_register() helper
  power: supply: max14577: Use devm_power_supply_register() helper
  power: supply: max77693: Use devm_power_supply_register() helper
  power: supply: max8925: Use devm_power_supply_register() helper
  power: supply: pcf50633: Use devm_power_supply_register() helper
  power: supply: rt5033: Use devm_power_supply_register() helper
  power: supply: tps65090: Use devm_power_supply_register() helper
  power: supply: wm831x: Use devm_power_supply_register() helper
  power: supply: wm831x: Use devm_power_supply_register() helper
  power: supply: wm8350: Use devm_power_supply_register() helper
  power: supply: da9150: Use devm_iio_channel_get() helper
  power: supply: da9150: Use devm_power_supply_register() helper
  power: supply: rx51: Use devm_iio_channel_get() helper
  power: supply: rx51: Use devm_power_supply_register() helper
  power: supply: twl4030_madc: Use devm_iio_channel_get() helper
  power: supply: twl4030_madc: Use devm_power_supply_register() helper

 drivers/power/supply/da9030_battery.c       |  6 +-
 drivers/power/supply/da9052-battery.c       |  4 +-
 drivers/power/supply/da9150-charger.c       | 72 ++++++---------------
 drivers/power/supply/ds2760_battery.c       |  4 +-
 drivers/power/supply/goldfish_battery.c     | 24 ++-----
 drivers/power/supply/lp8727_charger.c       | 35 ++--------
 drivers/power/supply/lp8788-charger.c       | 21 ++----
 drivers/power/supply/max14577_charger.c     |  6 +-
 drivers/power/supply/max77693_charger.c     |  8 +--
 drivers/power/supply/max8925_power.c        | 36 +++--------
 drivers/power/supply/pcf50633-charger.c     | 23 +++----
 drivers/power/supply/rt5033_battery.c       | 14 +---
 drivers/power/supply/rx51_battery.c         | 57 ++++------------
 drivers/power/supply/tps65090-charger.c     | 18 ++----
 drivers/power/supply/twl4030_madc_battery.c | 59 ++++-------------
 drivers/power/supply/wm831x_backup.c        | 13 +---
 drivers/power/supply/wm831x_power.c         | 24 +++----
 drivers/power/supply/wm8350_power.c         | 29 ++-------
 18 files changed, 121 insertions(+), 332 deletions(-)

-- 
2.39.2


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 01/21] power: supply: da9030: Use devm_power_supply_register() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
@ 2024-01-23 16:36 ` Andrew Davis
  2024-01-23 16:36 ` [PATCH 02/21] power: supply: da9052: " Andrew Davis
                   ` (20 subsequent siblings)
  21 siblings, 0 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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/da9030_battery.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/power/supply/da9030_battery.c b/drivers/power/supply/da9030_battery.c
index 581cf956d2d25..04e0f4162d42b 100644
--- a/drivers/power/supply/da9030_battery.c
+++ b/drivers/power/supply/da9030_battery.c
@@ -530,8 +530,9 @@ static int da9030_battery_probe(struct platform_device *pdev)
 
 	da9030_battery_setup_psy(charger);
 	psy_cfg.drv_data = charger;
-	charger->psy = power_supply_register(&pdev->dev, &charger->psy_desc,
-					     &psy_cfg);
+	charger->psy = devm_power_supply_register(&pdev->dev,
+						  &charger->psy_desc,
+						  &psy_cfg);
 	if (IS_ERR(charger->psy)) {
 		ret = PTR_ERR(charger->psy);
 		goto err_ps_register;
@@ -563,7 +564,6 @@ static void da9030_battery_remove(struct platform_device *dev)
 				   DA9030_EVENT_CHIOVER | DA9030_EVENT_TBAT);
 	cancel_delayed_work_sync(&charger->work);
 	da9030_set_charge(charger, 0);
-	power_supply_unregister(charger->psy);
 }
 
 static struct platform_driver da903x_battery_driver = {
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 02/21] power: supply: da9052: Use devm_power_supply_register() helper
  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 ` Andrew Davis
  2024-01-23 16:36 ` [PATCH 03/21] power: supply: ds2760: " Andrew Davis
                   ` (19 subsequent siblings)
  21 siblings, 0 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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/da9052-battery.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/power/supply/da9052-battery.c b/drivers/power/supply/da9052-battery.c
index 6f7c58a41e918..0d84c42c624e0 100644
--- a/drivers/power/supply/da9052-battery.c
+++ b/drivers/power/supply/da9052-battery.c
@@ -622,7 +622,7 @@ static s32 da9052_bat_probe(struct platform_device *pdev)
 		}
 	}
 
-	bat->psy = power_supply_register(&pdev->dev, &psy_desc, &psy_cfg);
+	bat->psy = devm_power_supply_register(&pdev->dev, &psy_desc, &psy_cfg);
 	if (IS_ERR(bat->psy)) {
 		ret = PTR_ERR(bat->psy);
 		goto err;
@@ -644,8 +644,6 @@ static void da9052_bat_remove(struct platform_device *pdev)
 
 	for (i = 0; i < ARRAY_SIZE(da9052_bat_irqs); i++)
 		da9052_free_irq(bat->da9052, da9052_bat_irq_bits[i], bat);
-
-	power_supply_unregister(bat->psy);
 }
 
 static struct platform_driver da9052_bat_driver = {
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 03/21] power: supply: ds2760: Use devm_power_supply_register() helper
  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 ` Andrew Davis
  2024-01-23 16:36 ` [PATCH 04/21] power: supply: goldfish: " Andrew Davis
                   ` (18 subsequent siblings)
  21 siblings, 0 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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/ds2760_battery.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/power/supply/ds2760_battery.c b/drivers/power/supply/ds2760_battery.c
index 40fba31be1744..7cf4ea06b5003 100644
--- a/drivers/power/supply/ds2760_battery.c
+++ b/drivers/power/supply/ds2760_battery.c
@@ -739,7 +739,7 @@ static int w1_ds2760_add_slave(struct w1_slave *sl)
 	if (current_accum)
 		ds2760_battery_set_current_accum(di, current_accum);
 
-	di->bat = power_supply_register(dev, &di->bat_desc, &psy_cfg);
+	di->bat = devm_power_supply_register(dev, &di->bat_desc, &psy_cfg);
 	if (IS_ERR(di->bat)) {
 		dev_err(di->dev, "failed to register battery\n");
 		retval = PTR_ERR(di->bat);
@@ -762,7 +762,6 @@ static int w1_ds2760_add_slave(struct w1_slave *sl)
 	goto success;
 
 workqueue_failed:
-	power_supply_unregister(di->bat);
 batt_failed:
 di_alloc_failed:
 success:
@@ -777,7 +776,6 @@ static void w1_ds2760_remove_slave(struct w1_slave *sl)
 	cancel_delayed_work_sync(&di->monitor_work);
 	cancel_delayed_work_sync(&di->set_charged_work);
 	destroy_workqueue(di->monitor_wqueue);
-	power_supply_unregister(di->bat);
 }
 
 #ifdef CONFIG_OF
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 04/21] power: supply: goldfish: Use devm_power_supply_register() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (2 preceding siblings ...)
  2024-01-23 16:36 ` [PATCH 03/21] power: supply: ds2760: " Andrew Davis
@ 2024-01-23 16:36 ` Andrew Davis
  2024-01-23 16:36 ` [PATCH 05/21] power: supply: lp8727: " Andrew Davis
                   ` (17 subsequent siblings)
  21 siblings, 0 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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/goldfish_battery.c | 24 +++++++-----------------
 1 file changed, 7 insertions(+), 17 deletions(-)

diff --git a/drivers/power/supply/goldfish_battery.c b/drivers/power/supply/goldfish_battery.c
index 8bb645ad1e5d5..479195e35d734 100644
--- a/drivers/power/supply/goldfish_battery.c
+++ b/drivers/power/supply/goldfish_battery.c
@@ -232,31 +232,22 @@ static int goldfish_battery_probe(struct platform_device *pdev)
 
 	psy_cfg.drv_data = data;
 
-	data->ac = power_supply_register(&pdev->dev, &ac_desc, &psy_cfg);
+	data->ac = devm_power_supply_register(&pdev->dev,
+					      &ac_desc,
+					      &psy_cfg);
 	if (IS_ERR(data->ac))
 		return PTR_ERR(data->ac);
 
-	data->battery = power_supply_register(&pdev->dev, &battery_desc,
-						&psy_cfg);
-	if (IS_ERR(data->battery)) {
-		power_supply_unregister(data->ac);
+	data->battery = devm_power_supply_register(&pdev->dev,
+						   &battery_desc,
+						   &psy_cfg);
+	if (IS_ERR(data->battery))
 		return PTR_ERR(data->battery);
-	}
-
-	platform_set_drvdata(pdev, data);
 
 	GOLDFISH_BATTERY_WRITE(data, BATTERY_INT_ENABLE, BATTERY_INT_MASK);
 	return 0;
 }
 
-static void goldfish_battery_remove(struct platform_device *pdev)
-{
-	struct goldfish_battery_data *data = platform_get_drvdata(pdev);
-
-	power_supply_unregister(data->battery);
-	power_supply_unregister(data->ac);
-}
-
 static const struct of_device_id goldfish_battery_of_match[] = {
 	{ .compatible = "google,goldfish-battery", },
 	{},
@@ -273,7 +264,6 @@ MODULE_DEVICE_TABLE(acpi, goldfish_battery_acpi_match);
 
 static struct platform_driver goldfish_battery_device = {
 	.probe		= goldfish_battery_probe,
-	.remove_new	= goldfish_battery_remove,
 	.driver = {
 		.name = "goldfish-battery",
 		.of_match_table = goldfish_battery_of_match,
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 05/21] power: supply: lp8727: Use devm_power_supply_register() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (3 preceding siblings ...)
  2024-01-23 16:36 ` [PATCH 04/21] power: supply: goldfish: " Andrew Davis
@ 2024-01-23 16:36 ` Andrew Davis
  2024-01-23 16:36 ` [PATCH 06/21] power: supply: lp8788: " Andrew Davis
                   ` (16 subsequent siblings)
  21 siblings, 0 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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/lp8727_charger.c | 35 ++++++---------------------
 1 file changed, 7 insertions(+), 28 deletions(-)

diff --git a/drivers/power/supply/lp8727_charger.c b/drivers/power/supply/lp8727_charger.c
index 0875391f7ac6b..34548a4da90b2 100644
--- a/drivers/power/supply/lp8727_charger.c
+++ b/drivers/power/supply/lp8727_charger.c
@@ -453,39 +453,20 @@ static int lp8727_register_psy(struct lp8727_chg *pchg)
 	psy_cfg.supplied_to = battery_supplied_to;
 	psy_cfg.num_supplicants = ARRAY_SIZE(battery_supplied_to);
 
-	psy->ac = power_supply_register(pchg->dev, &lp8727_ac_desc, &psy_cfg);
+	psy->ac = devm_power_supply_register(pchg->dev, &lp8727_ac_desc, &psy_cfg);
 	if (IS_ERR(psy->ac))
-		goto err_psy_ac;
+		return -EPERM;
 
-	psy->usb = power_supply_register(pchg->dev, &lp8727_usb_desc,
-					 &psy_cfg);
+	psy->usb = devm_power_supply_register(pchg->dev, &lp8727_usb_desc,
+					      &psy_cfg);
 	if (IS_ERR(psy->usb))
-		goto err_psy_usb;
+		return -EPERM;
 
-	psy->batt = power_supply_register(pchg->dev, &lp8727_batt_desc, NULL);
+	psy->batt = devm_power_supply_register(pchg->dev, &lp8727_batt_desc, NULL);
 	if (IS_ERR(psy->batt))
-		goto err_psy_batt;
+		return -EPERM;
 
 	return 0;
-
-err_psy_batt:
-	power_supply_unregister(psy->usb);
-err_psy_usb:
-	power_supply_unregister(psy->ac);
-err_psy_ac:
-	return -EPERM;
-}
-
-static void lp8727_unregister_psy(struct lp8727_chg *pchg)
-{
-	struct lp8727_psy *psy = pchg->psy;
-
-	if (!psy)
-		return;
-
-	power_supply_unregister(psy->ac);
-	power_supply_unregister(psy->usb);
-	power_supply_unregister(psy->batt);
 }
 
 #ifdef CONFIG_OF
@@ -583,7 +564,6 @@ static int lp8727_probe(struct i2c_client *cl)
 	ret = lp8727_setup_irq(pchg);
 	if (ret) {
 		dev_err(pchg->dev, "irq handler err: %d", ret);
-		lp8727_unregister_psy(pchg);
 		return ret;
 	}
 
@@ -595,7 +575,6 @@ static void lp8727_remove(struct i2c_client *cl)
 	struct lp8727_chg *pchg = i2c_get_clientdata(cl);
 
 	lp8727_release_irq(pchg);
-	lp8727_unregister_psy(pchg);
 }
 
 static const struct of_device_id lp8727_dt_ids[] __maybe_unused = {
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 06/21] power: supply: lp8788: Use devm_power_supply_register() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (4 preceding siblings ...)
  2024-01-23 16:36 ` [PATCH 05/21] power: supply: lp8727: " Andrew Davis
@ 2024-01-23 16:36 ` Andrew Davis
  2024-01-23 16:36 ` [PATCH 07/21] power: supply: max14577: " Andrew Davis
                   ` (15 subsequent siblings)
  21 siblings, 0 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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/lp8788-charger.c | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/drivers/power/supply/lp8788-charger.c b/drivers/power/supply/lp8788-charger.c
index 2c81be82a41a4..72b170b4ac46a 100644
--- a/drivers/power/supply/lp8788-charger.c
+++ b/drivers/power/supply/lp8788-charger.c
@@ -406,12 +406,6 @@ static const struct power_supply_desc lp8788_psy_battery_desc = {
 	.get_property	= lp8788_battery_get_property,
 };
 
-static void lp8788_psy_unregister(struct lp8788_charger *pchg)
-{
-	power_supply_unregister(pchg->battery);
-	power_supply_unregister(pchg->charger);
-}
-
 static void lp8788_charger_event(struct work_struct *work)
 {
 	struct lp8788_charger *pchg =
@@ -666,18 +660,16 @@ static int lp8788_psy_register(struct platform_device *pdev,
 	charger_cfg.supplied_to = battery_supplied_to;
 	charger_cfg.num_supplicants = ARRAY_SIZE(battery_supplied_to);
 
-	pchg->charger = power_supply_register(&pdev->dev,
-					      &lp8788_psy_charger_desc,
-					      &charger_cfg);
+	pchg->charger = devm_power_supply_register(&pdev->dev,
+						   &lp8788_psy_charger_desc,
+						   &charger_cfg);
 	if (IS_ERR(pchg->charger))
 		return -EPERM;
 
-	pchg->battery = power_supply_register(&pdev->dev,
-					      &lp8788_psy_battery_desc, NULL);
-	if (IS_ERR(pchg->battery)) {
-		power_supply_unregister(pchg->charger);
+	pchg->battery = devm_power_supply_register(&pdev->dev,
+						   &lp8788_psy_battery_desc, NULL);
+	if (IS_ERR(pchg->battery))
 		return -EPERM;
-	}
 
 	return 0;
 }
@@ -720,7 +712,6 @@ static void lp8788_charger_remove(struct platform_device *pdev)
 
 	flush_work(&pchg->charger_work);
 	lp8788_irq_unregister(pdev, pchg);
-	lp8788_psy_unregister(pchg);
 }
 
 static struct platform_driver lp8788_charger_driver = {
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 07/21] power: supply: max14577: Use devm_power_supply_register() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (5 preceding siblings ...)
  2024-01-23 16:36 ` [PATCH 06/21] power: supply: lp8788: " Andrew Davis
@ 2024-01-23 16:36 ` Andrew Davis
  2024-01-23 16:36 ` [PATCH 08/21] power: supply: max77693: " Andrew Davis
                   ` (14 subsequent siblings)
  21 siblings, 0 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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/max14577_charger.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/power/supply/max14577_charger.c b/drivers/power/supply/max14577_charger.c
index 7c23fa89ea199..1fff82b037097 100644
--- a/drivers/power/supply/max14577_charger.c
+++ b/drivers/power/supply/max14577_charger.c
@@ -586,8 +586,9 @@ static int max14577_charger_probe(struct platform_device *pdev)
 	}
 
 	psy_cfg.drv_data = chg;
-	chg->charger = power_supply_register(&pdev->dev, &max14577_charger_desc,
-						&psy_cfg);
+	chg->charger = devm_power_supply_register(&pdev->dev,
+						  &max14577_charger_desc,
+						  &psy_cfg);
 	if (IS_ERR(chg->charger)) {
 		dev_err(&pdev->dev, "failed: power supply register\n");
 		ret = PTR_ERR(chg->charger);
@@ -611,7 +612,6 @@ static void max14577_charger_remove(struct platform_device *pdev)
 	struct max14577_charger *chg = platform_get_drvdata(pdev);
 
 	device_remove_file(&pdev->dev, &dev_attr_fast_charge_timer);
-	power_supply_unregister(chg->charger);
 }
 
 static const struct platform_device_id max14577_charger_id[] = {
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 08/21] power: supply: max77693: Use devm_power_supply_register() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (6 preceding siblings ...)
  2024-01-23 16:36 ` [PATCH 07/21] power: supply: max14577: " Andrew Davis
@ 2024-01-23 16:36 ` Andrew Davis
  2024-01-26 11:56   ` kernel test robot
  2024-01-23 16:36 ` [PATCH 09/21] power: supply: max8925: " Andrew Davis
                   ` (13 subsequent siblings)
  21 siblings, 1 reply; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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/max77693_charger.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/power/supply/max77693_charger.c b/drivers/power/supply/max77693_charger.c
index d0157e63b8b50..9ad6cc6500fcc 100644
--- a/drivers/power/supply/max77693_charger.c
+++ b/drivers/power/supply/max77693_charger.c
@@ -709,9 +709,9 @@ static int max77693_charger_probe(struct platform_device *pdev)
 		goto err;
 	}
 
-	chg->charger = power_supply_register(&pdev->dev,
-						&max77693_charger_desc,
-						&psy_cfg);
+	chg->charger = devm_power_supply_register(&pdev->dev,
+						  &max77693_charger_desc,
+						  &psy_cfg);
 	if (IS_ERR(chg->charger)) {
 		dev_err(&pdev->dev, "failed: power supply register\n");
 		ret = PTR_ERR(chg->charger);
@@ -735,8 +735,6 @@ static void max77693_charger_remove(struct platform_device *pdev)
 	device_remove_file(&pdev->dev, &dev_attr_top_off_timer);
 	device_remove_file(&pdev->dev, &dev_attr_top_off_threshold_current);
 	device_remove_file(&pdev->dev, &dev_attr_fast_charge_timer);
-
-	power_supply_unregister(chg->charger);
 }
 
 static const struct platform_device_id max77693_charger_id[] = {
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 09/21] power: supply: max8925: Use devm_power_supply_register() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (7 preceding siblings ...)
  2024-01-23 16:36 ` [PATCH 08/21] power: supply: max77693: " Andrew Davis
@ 2024-01-23 16:36 ` Andrew Davis
  2024-01-26 12:28   ` kernel test robot
  2024-01-23 16:36 ` [PATCH 10/21] power: supply: pcf50633: " Andrew Davis
                   ` (12 subsequent siblings)
  21 siblings, 1 reply; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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/max8925_power.c | 36 ++++++++--------------------
 1 file changed, 10 insertions(+), 26 deletions(-)

diff --git a/drivers/power/supply/max8925_power.c b/drivers/power/supply/max8925_power.c
index 4a2d6894f94ee..29ce6c5bfe0e6 100644
--- a/drivers/power/supply/max8925_power.c
+++ b/drivers/power/supply/max8925_power.c
@@ -528,25 +528,19 @@ static int max8925_power_probe(struct platform_device *pdev)
 	psy_cfg.supplied_to = pdata->supplied_to;
 	psy_cfg.num_supplicants = pdata->num_supplicants;
 
-	info->ac = power_supply_register(&pdev->dev, &ac_desc, &psy_cfg);
-	if (IS_ERR(info->ac)) {
-		ret = PTR_ERR(info->ac);
-		goto out;
-	}
+	info->ac = devm_power_supply_register(&pdev->dev, &ac_desc, &psy_cfg);
+	if (IS_ERR(info->ac))
+		return PTR_ERR(info->ac);
 	info->ac->dev.parent = &pdev->dev;
 
-	info->usb = power_supply_register(&pdev->dev, &usb_desc, &psy_cfg);
-	if (IS_ERR(info->usb)) {
-		ret = PTR_ERR(info->usb);
-		goto out_unregister_ac;
-	}
+	info->usb = devm_power_supply_register(&pdev->dev, &usb_desc, &psy_cfg);
+	if (IS_ERR(info->usb))
+		return PTR_ERR(info->usb);
 	info->usb->dev.parent = &pdev->dev;
 
-	info->battery = power_supply_register(&pdev->dev, &battery_desc, NULL);
-	if (IS_ERR(info->battery)) {
-		ret = PTR_ERR(info->battery);
-		goto out_unregister_usb;
-	}
+	info->battery = devm_power_supply_register(&pdev->dev, &battery_desc, NULL);
+	if (IS_ERR(info->battery))
+		return PTR_ERR(info->battery);
 	info->battery->dev.parent = &pdev->dev;
 
 	info->batt_detect = pdata->batt_detect;
@@ -558,24 +552,14 @@ static int max8925_power_probe(struct platform_device *pdev)
 
 	max8925_init_charger(chip, info);
 	return 0;
-out_unregister_usb:
-	power_supply_unregister(info->usb);
-out_unregister_ac:
-	power_supply_unregister(info->ac);
-out:
-	return ret;
 }
 
 static void max8925_power_remove(struct platform_device *pdev)
 {
 	struct max8925_power_info *info = platform_get_drvdata(pdev);
 
-	if (info) {
-		power_supply_unregister(info->ac);
-		power_supply_unregister(info->usb);
-		power_supply_unregister(info->battery);
+	if (info)
 		max8925_deinit_charger(info);
-	}
 }
 
 static struct platform_driver max8925_power_driver = {
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 10/21] power: supply: pcf50633: Use devm_power_supply_register() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (8 preceding siblings ...)
  2024-01-23 16:36 ` [PATCH 09/21] power: supply: max8925: " Andrew Davis
@ 2024-01-23 16:36 ` Andrew Davis
  2024-01-23 16:36 ` [PATCH 11/21] power: supply: rt5033: " Andrew Davis
                   ` (11 subsequent siblings)
  21 siblings, 0 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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/pcf50633-charger.c | 23 +++++++++--------------
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/drivers/power/supply/pcf50633-charger.c b/drivers/power/supply/pcf50633-charger.c
index 950e30917c638..0e980522fee51 100644
--- a/drivers/power/supply/pcf50633-charger.c
+++ b/drivers/power/supply/pcf50633-charger.c
@@ -404,9 +404,9 @@ static int pcf50633_mbc_probe(struct platform_device *pdev)
 	psy_cfg.drv_data		= mbc;
 
 	/* Create power supplies */
-	mbc->adapter = power_supply_register(&pdev->dev,
-					     &pcf50633_mbc_adapter_desc,
-					     &psy_cfg);
+	mbc->adapter = devm_power_supply_register(&pdev->dev,
+						  &pcf50633_mbc_adapter_desc,
+						  &psy_cfg);
 	if (IS_ERR(mbc->adapter)) {
 		dev_err(mbc->pcf->dev, "failed to register adapter\n");
 		return PTR_ERR(mbc->adapter);
@@ -415,20 +415,19 @@ static int pcf50633_mbc_probe(struct platform_device *pdev)
 	usb_psy_cfg = psy_cfg;
 	usb_psy_cfg.attr_grp = pcf50633_mbc_sysfs_groups;
 
-	mbc->usb = power_supply_register(&pdev->dev, &pcf50633_mbc_usb_desc,
-					 &usb_psy_cfg);
+	mbc->usb = devm_power_supply_register(&pdev->dev,
+					      &pcf50633_mbc_usb_desc,
+					      &usb_psy_cfg);
 	if (IS_ERR(mbc->usb)) {
 		dev_err(mbc->pcf->dev, "failed to register usb\n");
-		power_supply_unregister(mbc->adapter);
 		return PTR_ERR(mbc->usb);
 	}
 
-	mbc->ac = power_supply_register(&pdev->dev, &pcf50633_mbc_ac_desc,
-					&psy_cfg);
+	mbc->ac = devm_power_supply_register(&pdev->dev,
+					     &pcf50633_mbc_ac_desc,
+					     &psy_cfg);
 	if (IS_ERR(mbc->ac)) {
 		dev_err(mbc->pcf->dev, "failed to register ac\n");
-		power_supply_unregister(mbc->adapter);
-		power_supply_unregister(mbc->usb);
 		return PTR_ERR(mbc->ac);
 	}
 
@@ -449,10 +448,6 @@ static void pcf50633_mbc_remove(struct platform_device *pdev)
 	/* Remove IRQ handlers */
 	for (i = 0; i < ARRAY_SIZE(mbc_irq_handlers); i++)
 		pcf50633_free_irq(mbc->pcf, mbc_irq_handlers[i]);
-
-	power_supply_unregister(mbc->usb);
-	power_supply_unregister(mbc->adapter);
-	power_supply_unregister(mbc->ac);
 }
 
 static struct platform_driver pcf50633_mbc_driver = {
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 11/21] power: supply: rt5033: Use devm_power_supply_register() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (9 preceding siblings ...)
  2024-01-23 16:36 ` [PATCH 10/21] power: supply: pcf50633: " Andrew Davis
@ 2024-01-23 16:36 ` Andrew Davis
  2024-01-23 16:36 ` [PATCH 12/21] power: supply: tps65090: " Andrew Davis
                   ` (10 subsequent siblings)
  21 siblings, 0 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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/rt5033_battery.c | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

diff --git a/drivers/power/supply/rt5033_battery.c b/drivers/power/supply/rt5033_battery.c
index d90b96df8e73d..32eafe2c00af5 100644
--- a/drivers/power/supply/rt5033_battery.c
+++ b/drivers/power/supply/rt5033_battery.c
@@ -159,12 +159,12 @@ static int rt5033_battery_probe(struct i2c_client *client)
 		return -EINVAL;
 	}
 
-	i2c_set_clientdata(client, battery);
 	psy_cfg.of_node = client->dev.of_node;
 	psy_cfg.drv_data = battery;
 
-	battery->psy = power_supply_register(&client->dev,
-					     &rt5033_battery_desc, &psy_cfg);
+	battery->psy = devm_power_supply_register(&client->dev,
+						  &rt5033_battery_desc,
+						  &psy_cfg);
 	if (IS_ERR(battery->psy))
 		return dev_err_probe(&client->dev, PTR_ERR(battery->psy),
 				     "Failed to register power supply\n");
@@ -172,13 +172,6 @@ static int rt5033_battery_probe(struct i2c_client *client)
 	return 0;
 }
 
-static void rt5033_battery_remove(struct i2c_client *client)
-{
-	struct rt5033_battery *battery = i2c_get_clientdata(client);
-
-	power_supply_unregister(battery->psy);
-}
-
 static const struct i2c_device_id rt5033_battery_id[] = {
 	{ "rt5033-battery", },
 	{ }
@@ -197,7 +190,6 @@ static struct i2c_driver rt5033_battery_driver = {
 		.of_match_table = rt5033_battery_of_match,
 	},
 	.probe = rt5033_battery_probe,
-	.remove = rt5033_battery_remove,
 	.id_table = rt5033_battery_id,
 };
 module_i2c_driver(rt5033_battery_driver);
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 12/21] power: supply: tps65090: Use devm_power_supply_register() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (10 preceding siblings ...)
  2024-01-23 16:36 ` [PATCH 11/21] power: supply: rt5033: " Andrew Davis
@ 2024-01-23 16:36 ` Andrew Davis
  2024-01-23 16:36 ` [PATCH 13/21] power: supply: wm831x: " Andrew Davis
                   ` (9 subsequent siblings)
  21 siblings, 0 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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/tps65090-charger.c | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/drivers/power/supply/tps65090-charger.c b/drivers/power/supply/tps65090-charger.c
index c59197d2aa87d..d41595764caa5 100644
--- a/drivers/power/supply/tps65090-charger.c
+++ b/drivers/power/supply/tps65090-charger.c
@@ -262,7 +262,7 @@ static int tps65090_charger_probe(struct platform_device *pdev)
 	psy_cfg.of_node			= pdev->dev.of_node;
 	psy_cfg.drv_data		= cdata;
 
-	cdata->ac = power_supply_register(&pdev->dev, &tps65090_charger_desc,
+	cdata->ac = devm_power_supply_register(&pdev->dev, &tps65090_charger_desc,
 			&psy_cfg);
 	if (IS_ERR(cdata->ac)) {
 		dev_err(&pdev->dev, "failed: power supply register\n");
@@ -277,7 +277,7 @@ static int tps65090_charger_probe(struct platform_device *pdev)
 	ret = tps65090_config_charger(cdata);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "charger config failed, err %d\n", ret);
-		goto fail_unregister_supply;
+		return ret;
 	}
 
 	/* Check for charger presence */
@@ -286,14 +286,14 @@ static int tps65090_charger_probe(struct platform_device *pdev)
 	if (ret < 0) {
 		dev_err(cdata->dev, "%s(): Error in reading reg 0x%x", __func__,
 			TPS65090_REG_CG_STATUS1);
-		goto fail_unregister_supply;
+		return ret;
 	}
 
 	if (status1 != 0) {
 		ret = tps65090_enable_charging(cdata);
 		if (ret < 0) {
 			dev_err(cdata->dev, "error enabling charger\n");
-			goto fail_unregister_supply;
+			return ret;
 		}
 		cdata->ac_online = 1;
 		power_supply_changed(cdata->ac);
@@ -306,7 +306,7 @@ static int tps65090_charger_probe(struct platform_device *pdev)
 			dev_err(cdata->dev,
 				"Unable to register irq %d err %d\n", irq,
 				ret);
-			goto fail_unregister_supply;
+			return ret;
 		}
 	} else {
 		cdata->poll_task = kthread_run(tps65090_charger_poll_task,
@@ -316,16 +316,11 @@ static int tps65090_charger_probe(struct platform_device *pdev)
 			ret = PTR_ERR(cdata->poll_task);
 			dev_err(cdata->dev,
 				"Unable to run kthread err %d\n", ret);
-			goto fail_unregister_supply;
+			return ret;
 		}
 	}
 
 	return 0;
-
-fail_unregister_supply:
-	power_supply_unregister(cdata->ac);
-
-	return ret;
 }
 
 static void tps65090_charger_remove(struct platform_device *pdev)
@@ -334,7 +329,6 @@ static void tps65090_charger_remove(struct platform_device *pdev)
 
 	if (cdata->irq == -ENXIO)
 		kthread_stop(cdata->poll_task);
-	power_supply_unregister(cdata->ac);
 }
 
 static const struct of_device_id of_tps65090_charger_match[] = {
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 13/21] power: supply: wm831x: Use devm_power_supply_register() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (11 preceding siblings ...)
  2024-01-23 16:36 ` [PATCH 12/21] power: supply: tps65090: " Andrew Davis
@ 2024-01-23 16:36 ` Andrew Davis
  2024-01-23 16:36 ` [PATCH 14/21] " Andrew Davis
                   ` (8 subsequent siblings)
  21 siblings, 0 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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/wm831x_backup.c | 13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/drivers/power/supply/wm831x_backup.c b/drivers/power/supply/wm831x_backup.c
index 1a7265660adeb..9673fcf7f3afb 100644
--- a/drivers/power/supply/wm831x_backup.c
+++ b/drivers/power/supply/wm831x_backup.c
@@ -171,7 +171,6 @@ static int wm831x_backup_probe(struct platform_device *pdev)
 		return -ENOMEM;
 
 	devdata->wm831x = wm831x;
-	platform_set_drvdata(pdev, devdata);
 
 	/* We ignore configuration failures since we can still read
 	 * back the status without enabling the charger (which may
@@ -191,22 +190,14 @@ static int wm831x_backup_probe(struct platform_device *pdev)
 	devdata->backup_desc.properties = wm831x_backup_props;
 	devdata->backup_desc.num_properties = ARRAY_SIZE(wm831x_backup_props);
 	devdata->backup_desc.get_property = wm831x_backup_get_prop;
-	devdata->backup = power_supply_register(&pdev->dev,
-						&devdata->backup_desc, NULL);
+	devdata->backup = devm_power_supply_register(&pdev->dev,
+						     &devdata->backup_desc, NULL);
 
 	return PTR_ERR_OR_ZERO(devdata->backup);
 }
 
-static void wm831x_backup_remove(struct platform_device *pdev)
-{
-	struct wm831x_backup *devdata = platform_get_drvdata(pdev);
-
-	power_supply_unregister(devdata->backup);
-}
-
 static struct platform_driver wm831x_backup_driver = {
 	.probe = wm831x_backup_probe,
-	.remove_new = wm831x_backup_remove,
 	.driver = {
 		.name = "wm831x-backup",
 	},
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 14/21] power: supply: wm831x: Use devm_power_supply_register() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (12 preceding siblings ...)
  2024-01-23 16:36 ` [PATCH 13/21] power: supply: wm831x: " Andrew Davis
@ 2024-01-23 16:36 ` Andrew Davis
  2024-01-23 16:36 ` [PATCH 15/21] power: supply: wm8350: " Andrew Davis
                   ` (7 subsequent siblings)
  21 siblings, 0 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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/wm831x_power.c | 24 +++++++++---------------
 1 file changed, 9 insertions(+), 15 deletions(-)

diff --git a/drivers/power/supply/wm831x_power.c b/drivers/power/supply/wm831x_power.c
index e49b01ee5f3ef..d56e499ac59fb 100644
--- a/drivers/power/supply/wm831x_power.c
+++ b/drivers/power/supply/wm831x_power.c
@@ -570,8 +570,9 @@ static int wm831x_power_probe(struct platform_device *pdev)
 	power->wall_desc.properties = wm831x_wall_props;
 	power->wall_desc.num_properties = ARRAY_SIZE(wm831x_wall_props);
 	power->wall_desc.get_property = wm831x_wall_get_prop;
-	power->wall = power_supply_register(&pdev->dev, &power->wall_desc,
-					    NULL);
+	power->wall = devm_power_supply_register(&pdev->dev,
+						 &power->wall_desc,
+						 NULL);
 	if (IS_ERR(power->wall)) {
 		ret = PTR_ERR(power->wall);
 		goto err;
@@ -582,7 +583,9 @@ static int wm831x_power_probe(struct platform_device *pdev)
 	power->usb_desc.properties = wm831x_usb_props;
 	power->usb_desc.num_properties = ARRAY_SIZE(wm831x_usb_props);
 	power->usb_desc.get_property = wm831x_usb_get_prop;
-	power->usb = power_supply_register(&pdev->dev, &power->usb_desc, NULL);
+	power->usb = devm_power_supply_register(&pdev->dev,
+						&power->usb_desc,
+						NULL);
 	if (IS_ERR(power->usb)) {
 		ret = PTR_ERR(power->usb);
 		goto err_wall;
@@ -599,9 +602,9 @@ static int wm831x_power_probe(struct platform_device *pdev)
 		power->battery_desc.num_properties = ARRAY_SIZE(wm831x_bat_props);
 		power->battery_desc.get_property = wm831x_bat_get_prop;
 		power->battery_desc.use_for_apm = 1;
-		power->battery = power_supply_register(&pdev->dev,
-						       &power->battery_desc,
-						       NULL);
+		power->battery = devm_power_supply_register(&pdev->dev,
+							    &power->battery_desc,
+							    NULL);
 		if (IS_ERR(power->battery)) {
 			ret = PTR_ERR(power->battery);
 			goto err_usb;
@@ -684,12 +687,8 @@ static int wm831x_power_probe(struct platform_device *pdev)
 	irq = wm831x_irq(wm831x, platform_get_irq_byname(pdev, "SYSLO"));
 	free_irq(irq, power);
 err_battery:
-	if (power->have_battery)
-		power_supply_unregister(power->battery);
 err_usb:
-	power_supply_unregister(power->usb);
 err_wall:
-	power_supply_unregister(power->wall);
 err:
 	return ret;
 }
@@ -717,11 +716,6 @@ static void wm831x_power_remove(struct platform_device *pdev)
 
 	irq = wm831x_irq(wm831x, platform_get_irq_byname(pdev, "SYSLO"));
 	free_irq(irq, wm831x_power);
-
-	if (wm831x_power->have_battery)
-		power_supply_unregister(wm831x_power->battery);
-	power_supply_unregister(wm831x_power->wall);
-	power_supply_unregister(wm831x_power->usb);
 }
 
 static struct platform_driver wm831x_power_driver = {
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 15/21] power: supply: wm8350: Use devm_power_supply_register() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (13 preceding siblings ...)
  2024-01-23 16:36 ` [PATCH 14/21] " Andrew Davis
@ 2024-01-23 16:36 ` Andrew Davis
  2024-01-26 13:00   ` kernel test robot
  2024-01-23 16:36 ` [PATCH 16/21] power: supply: da9150: Use devm_iio_channel_get() helper Andrew Davis
                   ` (6 subsequent siblings)
  21 siblings, 1 reply; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 16/21] power: supply: da9150: Use devm_iio_channel_get() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (14 preceding siblings ...)
  2024-01-23 16:36 ` [PATCH 15/21] power: supply: wm8350: " Andrew Davis
@ 2024-01-23 16:36 ` Andrew Davis
  2024-01-23 16:36 ` [PATCH 17/21] power: supply: da9150: Use devm_power_supply_register() helper Andrew Davis
                   ` (5 subsequent siblings)
  21 siblings, 0 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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

Signed-off-by: Andrew Davis <afd@ti.com>
---
 drivers/power/supply/da9150-charger.c | 57 +++++++--------------------
 1 file changed, 14 insertions(+), 43 deletions(-)

diff --git a/drivers/power/supply/da9150-charger.c b/drivers/power/supply/da9150-charger.c
index 37db9e4ed7f30..77e2d42382e45 100644
--- a/drivers/power/supply/da9150-charger.c
+++ b/drivers/power/supply/da9150-charger.c
@@ -521,36 +521,26 @@ static int da9150_charger_probe(struct platform_device *pdev)
 	charger->dev = dev;
 
 	/* Acquire ADC channels */
-	charger->ibus_chan = iio_channel_get(dev, "CHAN_IBUS");
-	if (IS_ERR(charger->ibus_chan)) {
-		ret = PTR_ERR(charger->ibus_chan);
-		goto ibus_chan_fail;
-	}
+	charger->ibus_chan = devm_iio_channel_get(dev, "CHAN_IBUS");
+	if (IS_ERR(charger->ibus_chan))
+		return PTR_ERR(charger->ibus_chan);
 
-	charger->vbus_chan = iio_channel_get(dev, "CHAN_VBUS");
-	if (IS_ERR(charger->vbus_chan)) {
-		ret = PTR_ERR(charger->vbus_chan);
-		goto vbus_chan_fail;
-	}
+	charger->vbus_chan = devm_iio_channel_get(dev, "CHAN_VBUS");
+	if (IS_ERR(charger->vbus_chan))
+		return PTR_ERR(charger->vbus_chan);
 
-	charger->tjunc_chan = iio_channel_get(dev, "CHAN_TJUNC");
-	if (IS_ERR(charger->tjunc_chan)) {
-		ret = PTR_ERR(charger->tjunc_chan);
-		goto tjunc_chan_fail;
-	}
+	charger->tjunc_chan = devm_iio_channel_get(dev, "CHAN_TJUNC");
+	if (IS_ERR(charger->tjunc_chan))
+		return PTR_ERR(charger->tjunc_chan);
 
-	charger->vbat_chan = iio_channel_get(dev, "CHAN_VBAT");
-	if (IS_ERR(charger->vbat_chan)) {
-		ret = PTR_ERR(charger->vbat_chan);
-		goto vbat_chan_fail;
-	}
+	charger->vbat_chan = devm_iio_channel_get(dev, "CHAN_VBAT");
+	if (IS_ERR(charger->vbat_chan))
+		return PTR_ERR(charger->vbat_chan);
 
 	/* Register power supplies */
 	charger->usb = power_supply_register(dev, &usb_desc, NULL);
-	if (IS_ERR(charger->usb)) {
-		ret = PTR_ERR(charger->usb);
-		goto usb_fail;
-	}
+	if (IS_ERR(charger->usb))
+		return PTR_ERR(charger->usb);
 
 	charger->battery = power_supply_register(dev, &battery_desc, NULL);
 	if (IS_ERR(charger->battery)) {
@@ -619,19 +609,6 @@ static int da9150_charger_probe(struct platform_device *pdev)
 battery_fail:
 	power_supply_unregister(charger->usb);
 
-usb_fail:
-	iio_channel_release(charger->vbat_chan);
-
-vbat_chan_fail:
-	iio_channel_release(charger->tjunc_chan);
-
-tjunc_chan_fail:
-	iio_channel_release(charger->vbus_chan);
-
-vbus_chan_fail:
-	iio_channel_release(charger->ibus_chan);
-
-ibus_chan_fail:
 	return ret;
 }
 
@@ -659,12 +636,6 @@ static void da9150_charger_remove(struct platform_device *pdev)
 
 	power_supply_unregister(charger->battery);
 	power_supply_unregister(charger->usb);
-
-	/* Release ADC channels */
-	iio_channel_release(charger->ibus_chan);
-	iio_channel_release(charger->vbus_chan);
-	iio_channel_release(charger->tjunc_chan);
-	iio_channel_release(charger->vbat_chan);
 }
 
 static struct platform_driver da9150_charger_driver = {
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 17/21] power: supply: da9150: Use devm_power_supply_register() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (15 preceding siblings ...)
  2024-01-23 16:36 ` [PATCH 16/21] power: supply: da9150: Use devm_iio_channel_get() helper Andrew Davis
@ 2024-01-23 16:36 ` Andrew Davis
  2024-01-23 16:36 ` [PATCH 18/21] power: supply: rx51: Use devm_iio_channel_get() helper Andrew Davis
                   ` (4 subsequent siblings)
  21 siblings, 0 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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/da9150-charger.c | 15 ++++-----------
 1 file changed, 4 insertions(+), 11 deletions(-)

diff --git a/drivers/power/supply/da9150-charger.c b/drivers/power/supply/da9150-charger.c
index 77e2d42382e45..b13cecd84f589 100644
--- a/drivers/power/supply/da9150-charger.c
+++ b/drivers/power/supply/da9150-charger.c
@@ -538,15 +538,13 @@ static int da9150_charger_probe(struct platform_device *pdev)
 		return PTR_ERR(charger->vbat_chan);
 
 	/* Register power supplies */
-	charger->usb = power_supply_register(dev, &usb_desc, NULL);
+	charger->usb = devm_power_supply_register(dev, &usb_desc, NULL);
 	if (IS_ERR(charger->usb))
 		return PTR_ERR(charger->usb);
 
-	charger->battery = power_supply_register(dev, &battery_desc, NULL);
-	if (IS_ERR(charger->battery)) {
-		ret = PTR_ERR(charger->battery);
-		goto battery_fail;
-	}
+	charger->battery = devm_power_supply_register(dev, &battery_desc, NULL);
+	if (IS_ERR(charger->battery))
+		return PTR_ERR(charger->battery);
 
 	/* Get initial online supply */
 	reg = da9150_reg_read(da9150, DA9150_STATUS_H);
@@ -606,8 +604,6 @@ static int da9150_charger_probe(struct platform_device *pdev)
 chg_irq_fail:
 	if (!IS_ERR_OR_NULL(charger->usb_phy))
 		usb_unregister_notifier(charger->usb_phy, &charger->otg_nb);
-battery_fail:
-	power_supply_unregister(charger->usb);
 
 	return ret;
 }
@@ -633,9 +629,6 @@ static void da9150_charger_remove(struct platform_device *pdev)
 	if (!IS_ERR_OR_NULL(charger->usb_phy))
 		usb_unregister_notifier(charger->usb_phy, &charger->otg_nb);
 	cancel_work_sync(&charger->otg_work);
-
-	power_supply_unregister(charger->battery);
-	power_supply_unregister(charger->usb);
 }
 
 static struct platform_driver da9150_charger_driver = {
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 18/21] power: supply: rx51: Use devm_iio_channel_get() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (16 preceding siblings ...)
  2024-01-23 16:36 ` [PATCH 17/21] power: supply: da9150: Use devm_power_supply_register() helper Andrew Davis
@ 2024-01-23 16:36 ` Andrew Davis
  2024-01-23 16:36 ` [PATCH 19/21] power: supply: rx51: Use devm_power_supply_register() helper Andrew Davis
                   ` (3 subsequent siblings)
  21 siblings, 0 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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

Signed-off-by: Andrew Davis <afd@ti.com>
---
 drivers/power/supply/rx51_battery.c | 45 +++++++----------------------
 1 file changed, 11 insertions(+), 34 deletions(-)

diff --git a/drivers/power/supply/rx51_battery.c b/drivers/power/supply/rx51_battery.c
index e2bfc81f0fd97..d532c670661b6 100644
--- a/drivers/power/supply/rx51_battery.c
+++ b/drivers/power/supply/rx51_battery.c
@@ -192,7 +192,6 @@ static int rx51_battery_probe(struct platform_device *pdev)
 {
 	struct power_supply_config psy_cfg = {};
 	struct rx51_device_info *di;
-	int ret;
 
 	di = devm_kzalloc(&pdev->dev, sizeof(*di), GFP_KERNEL);
 	if (!di)
@@ -209,41 +208,23 @@ static int rx51_battery_probe(struct platform_device *pdev)
 
 	psy_cfg.drv_data = di;
 
-	di->channel_temp = iio_channel_get(di->dev, "temp");
-	if (IS_ERR(di->channel_temp)) {
-		ret = PTR_ERR(di->channel_temp);
-		goto error;
-	}
+	di->channel_temp = devm_iio_channel_get(di->dev, "temp");
+	if (IS_ERR(di->channel_temp))
+		return PTR_ERR(di->channel_temp);
 
-	di->channel_bsi  = iio_channel_get(di->dev, "bsi");
-	if (IS_ERR(di->channel_bsi)) {
-		ret = PTR_ERR(di->channel_bsi);
-		goto error_channel_temp;
-	}
+	di->channel_bsi  = devm_iio_channel_get(di->dev, "bsi");
+	if (IS_ERR(di->channel_bsi))
+		return PTR_ERR(di->channel_bsi);
 
-	di->channel_vbat = iio_channel_get(di->dev, "vbat");
-	if (IS_ERR(di->channel_vbat)) {
-		ret = PTR_ERR(di->channel_vbat);
-		goto error_channel_bsi;
-	}
+	di->channel_vbat = devm_iio_channel_get(di->dev, "vbat");
+	if (IS_ERR(di->channel_vbat))
+		return PTR_ERR(di->channel_vbat);
 
 	di->bat = power_supply_register(di->dev, &di->bat_desc, &psy_cfg);
-	if (IS_ERR(di->bat)) {
-		ret = PTR_ERR(di->bat);
-		goto error_channel_vbat;
-	}
+	if (IS_ERR(di->bat))
+		return PTR_ERR(di->bat);
 
 	return 0;
-
-error_channel_vbat:
-	iio_channel_release(di->channel_vbat);
-error_channel_bsi:
-	iio_channel_release(di->channel_bsi);
-error_channel_temp:
-	iio_channel_release(di->channel_temp);
-error:
-
-	return ret;
 }
 
 static void rx51_battery_remove(struct platform_device *pdev)
@@ -251,10 +232,6 @@ static void rx51_battery_remove(struct platform_device *pdev)
 	struct rx51_device_info *di = platform_get_drvdata(pdev);
 
 	power_supply_unregister(di->bat);
-
-	iio_channel_release(di->channel_vbat);
-	iio_channel_release(di->channel_bsi);
-	iio_channel_release(di->channel_temp);
 }
 
 #ifdef CONFIG_OF
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 19/21] power: supply: rx51: Use devm_power_supply_register() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (17 preceding siblings ...)
  2024-01-23 16:36 ` [PATCH 18/21] power: supply: rx51: Use devm_iio_channel_get() helper Andrew Davis
@ 2024-01-23 16:36 ` Andrew Davis
  2024-01-23 16:36 ` [PATCH 20/21] power: supply: twl4030_madc: Use devm_iio_channel_get() helper Andrew Davis
                   ` (2 subsequent siblings)
  21 siblings, 0 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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/rx51_battery.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/drivers/power/supply/rx51_battery.c b/drivers/power/supply/rx51_battery.c
index d532c670661b6..7cdcd415e8684 100644
--- a/drivers/power/supply/rx51_battery.c
+++ b/drivers/power/supply/rx51_battery.c
@@ -197,8 +197,6 @@ static int rx51_battery_probe(struct platform_device *pdev)
 	if (!di)
 		return -ENOMEM;
 
-	platform_set_drvdata(pdev, di);
-
 	di->dev = &pdev->dev;
 	di->bat_desc.name = "rx51-battery";
 	di->bat_desc.type = POWER_SUPPLY_TYPE_BATTERY;
@@ -220,20 +218,13 @@ static int rx51_battery_probe(struct platform_device *pdev)
 	if (IS_ERR(di->channel_vbat))
 		return PTR_ERR(di->channel_vbat);
 
-	di->bat = power_supply_register(di->dev, &di->bat_desc, &psy_cfg);
+	di->bat = devm_power_supply_register(di->dev, &di->bat_desc, &psy_cfg);
 	if (IS_ERR(di->bat))
 		return PTR_ERR(di->bat);
 
 	return 0;
 }
 
-static void rx51_battery_remove(struct platform_device *pdev)
-{
-	struct rx51_device_info *di = platform_get_drvdata(pdev);
-
-	power_supply_unregister(di->bat);
-}
-
 #ifdef CONFIG_OF
 static const struct of_device_id n900_battery_of_match[] = {
 	{.compatible = "nokia,n900-battery", },
@@ -244,7 +235,6 @@ MODULE_DEVICE_TABLE(of, n900_battery_of_match);
 
 static struct platform_driver rx51_battery_driver = {
 	.probe = rx51_battery_probe,
-	.remove_new = rx51_battery_remove,
 	.driver = {
 		.name = "rx51-battery",
 		.of_match_table = of_match_ptr(n900_battery_of_match),
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 20/21] power: supply: twl4030_madc: Use devm_iio_channel_get() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (18 preceding siblings ...)
  2024-01-23 16:36 ` [PATCH 19/21] power: supply: rx51: Use devm_power_supply_register() helper Andrew Davis
@ 2024-01-23 16:36 ` 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
  21 siblings, 0 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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

Signed-off-by: Andrew Davis <afd@ti.com>
---
 drivers/power/supply/twl4030_madc_battery.c | 44 ++++++---------------
 1 file changed, 11 insertions(+), 33 deletions(-)

diff --git a/drivers/power/supply/twl4030_madc_battery.c b/drivers/power/supply/twl4030_madc_battery.c
index 33106476bea2c..cd9e94134ab21 100644
--- a/drivers/power/supply/twl4030_madc_battery.c
+++ b/drivers/power/supply/twl4030_madc_battery.c
@@ -188,30 +188,23 @@ static int twl4030_madc_battery_probe(struct platform_device *pdev)
 	struct twl4030_madc_battery *twl4030_madc_bat;
 	struct twl4030_madc_bat_platform_data *pdata = pdev->dev.platform_data;
 	struct power_supply_config psy_cfg = {};
-	int ret = 0;
 
 	twl4030_madc_bat = devm_kzalloc(&pdev->dev, sizeof(*twl4030_madc_bat),
 				GFP_KERNEL);
 	if (!twl4030_madc_bat)
 		return -ENOMEM;
 
-	twl4030_madc_bat->channel_temp = iio_channel_get(&pdev->dev, "temp");
-	if (IS_ERR(twl4030_madc_bat->channel_temp)) {
-		ret = PTR_ERR(twl4030_madc_bat->channel_temp);
-		goto err;
-	}
+	twl4030_madc_bat->channel_temp = devm_iio_channel_get(&pdev->dev, "temp");
+	if (IS_ERR(twl4030_madc_bat->channel_temp))
+		return PTR_ERR(twl4030_madc_bat->channel_temp);
 
-	twl4030_madc_bat->channel_ichg = iio_channel_get(&pdev->dev, "ichg");
-	if (IS_ERR(twl4030_madc_bat->channel_ichg)) {
-		ret = PTR_ERR(twl4030_madc_bat->channel_ichg);
-		goto err_temp;
-	}
+	twl4030_madc_bat->channel_ichg = devm_iio_channel_get(&pdev->dev, "ichg");
+	if (IS_ERR(twl4030_madc_bat->channel_ichg))
+		return PTR_ERR(twl4030_madc_bat->channel_ichg);
 
-	twl4030_madc_bat->channel_vbat = iio_channel_get(&pdev->dev, "vbat");
-	if (IS_ERR(twl4030_madc_bat->channel_vbat)) {
-		ret = PTR_ERR(twl4030_madc_bat->channel_vbat);
-		goto err_ichg;
-	}
+	twl4030_madc_bat->channel_vbat = devm_iio_channel_get(&pdev->dev, "vbat");
+	if (IS_ERR(twl4030_madc_bat->channel_vbat))
+		return PTR_ERR(twl4030_madc_bat->channel_vbat);
 
 	/* sort charging and discharging calibration data */
 	sort(pdata->charging, pdata->charging_size,
@@ -227,21 +220,10 @@ static int twl4030_madc_battery_probe(struct platform_device *pdev)
 	twl4030_madc_bat->psy = power_supply_register(&pdev->dev,
 						      &twl4030_madc_bat_desc,
 						      &psy_cfg);
-	if (IS_ERR(twl4030_madc_bat->psy)) {
-		ret = PTR_ERR(twl4030_madc_bat->psy);
-		goto err_vbat;
-	}
+	if (IS_ERR(twl4030_madc_bat->psy))
+		return PTR_ERR(twl4030_madc_bat->psy);
 
 	return 0;
-
-err_vbat:
-	iio_channel_release(twl4030_madc_bat->channel_vbat);
-err_ichg:
-	iio_channel_release(twl4030_madc_bat->channel_ichg);
-err_temp:
-	iio_channel_release(twl4030_madc_bat->channel_temp);
-err:
-	return ret;
 }
 
 static void twl4030_madc_battery_remove(struct platform_device *pdev)
@@ -249,10 +231,6 @@ static void twl4030_madc_battery_remove(struct platform_device *pdev)
 	struct twl4030_madc_battery *bat = platform_get_drvdata(pdev);
 
 	power_supply_unregister(bat->psy);
-
-	iio_channel_release(bat->channel_vbat);
-	iio_channel_release(bat->channel_ichg);
-	iio_channel_release(bat->channel_temp);
 }
 
 static struct platform_driver twl4030_madc_battery_driver = {
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 21/21] power: supply: twl4030_madc: Use devm_power_supply_register() helper
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (19 preceding siblings ...)
  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 ` Andrew Davis
  2024-01-27  0:48 ` (subset) [PATCH 00/21] Power supply register with devm Sebastian Reichel
  21 siblings, 0 replies; 26+ messages in thread
From: Andrew Davis @ 2024-01-23 16:36 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár
  Cc: linux-pm, linux-kernel, Andrew Davis

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/twl4030_madc_battery.c | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

diff --git a/drivers/power/supply/twl4030_madc_battery.c b/drivers/power/supply/twl4030_madc_battery.c
index cd9e94134ab21..3935162e350b5 100644
--- a/drivers/power/supply/twl4030_madc_battery.c
+++ b/drivers/power/supply/twl4030_madc_battery.c
@@ -215,30 +215,21 @@ static int twl4030_madc_battery_probe(struct platform_device *pdev)
 		twl4030_cmp, NULL);
 
 	twl4030_madc_bat->pdata = pdata;
-	platform_set_drvdata(pdev, twl4030_madc_bat);
 	psy_cfg.drv_data = twl4030_madc_bat;
-	twl4030_madc_bat->psy = power_supply_register(&pdev->dev,
-						      &twl4030_madc_bat_desc,
-						      &psy_cfg);
+	twl4030_madc_bat->psy = devm_power_supply_register(&pdev->dev,
+							   &twl4030_madc_bat_desc,
+							   &psy_cfg);
 	if (IS_ERR(twl4030_madc_bat->psy))
 		return PTR_ERR(twl4030_madc_bat->psy);
 
 	return 0;
 }
 
-static void twl4030_madc_battery_remove(struct platform_device *pdev)
-{
-	struct twl4030_madc_battery *bat = platform_get_drvdata(pdev);
-
-	power_supply_unregister(bat->psy);
-}
-
 static struct platform_driver twl4030_madc_battery_driver = {
 	.driver = {
 		.name = "twl4030_madc_battery",
 	},
 	.probe  = twl4030_madc_battery_probe,
-	.remove_new = twl4030_madc_battery_remove,
 };
 module_platform_driver(twl4030_madc_battery_driver);
 
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: [PATCH 08/21] power: supply: max77693: Use devm_power_supply_register() helper
  2024-01-23 16:36 ` [PATCH 08/21] power: supply: max77693: " Andrew Davis
@ 2024-01-26 11:56   ` kernel test robot
  0 siblings, 0 replies; 26+ messages in thread
From: kernel test robot @ 2024-01-26 11:56 UTC (permalink / raw)
  To: Andrew Davis, Sebastian Reichel, Support Opensource,
	Krzysztof Kozlowski, Pali Rohár
  Cc: llvm, oe-kbuild-all, linux-pm, linux-kernel, Andrew Davis

Hi Andrew,

kernel test robot noticed the following build warnings:

[auto build test WARNING on sre-power-supply/for-next]
[also build test WARNING on linus/master v6.8-rc1 next-20240125]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Andrew-Davis/power-supply-da9030-Use-devm_power_supply_register-helper/20240124-004253
base:   https://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply.git for-next
patch link:    https://lore.kernel.org/r/20240123163653.384385-9-afd%40ti.com
patch subject: [PATCH 08/21] power: supply: max77693: Use devm_power_supply_register() helper
config: i386-buildonly-randconfig-006-20240126 (https://download.01.org/0day-ci/archive/20240126/202401261917.tA05PFDO-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240126/202401261917.tA05PFDO-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202401261917.tA05PFDO-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/power/supply/max77693_charger.c:733:27: warning: unused variable 'chg' [-Wunused-variable]
     733 |         struct max77693_charger *chg = platform_get_drvdata(pdev);
         |                                  ^~~
   1 warning generated.


vim +/chg +733 drivers/power/supply/max77693_charger.c

87c2d9067893cd drivers/power/max77693_charger.c        Krzysztof Kozlowski 2015-01-20  730  
1d138270d2963b drivers/power/supply/max77693_charger.c Uwe Kleine-König    2023-09-18  731  static void max77693_charger_remove(struct platform_device *pdev)
87c2d9067893cd drivers/power/max77693_charger.c        Krzysztof Kozlowski 2015-01-20  732  {
87c2d9067893cd drivers/power/max77693_charger.c        Krzysztof Kozlowski 2015-01-20 @733  	struct max77693_charger *chg = platform_get_drvdata(pdev);
87c2d9067893cd drivers/power/max77693_charger.c        Krzysztof Kozlowski 2015-01-20  734  
87c2d9067893cd drivers/power/max77693_charger.c        Krzysztof Kozlowski 2015-01-20  735  	device_remove_file(&pdev->dev, &dev_attr_top_off_timer);
87c2d9067893cd drivers/power/max77693_charger.c        Krzysztof Kozlowski 2015-01-20  736  	device_remove_file(&pdev->dev, &dev_attr_top_off_threshold_current);
87c2d9067893cd drivers/power/max77693_charger.c        Krzysztof Kozlowski 2015-01-20  737  	device_remove_file(&pdev->dev, &dev_attr_fast_charge_timer);
87c2d9067893cd drivers/power/max77693_charger.c        Krzysztof Kozlowski 2015-01-20  738  }
87c2d9067893cd drivers/power/max77693_charger.c        Krzysztof Kozlowski 2015-01-20  739  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 09/21] power: supply: max8925: Use devm_power_supply_register() helper
  2024-01-23 16:36 ` [PATCH 09/21] power: supply: max8925: " Andrew Davis
@ 2024-01-26 12:28   ` kernel test robot
  0 siblings, 0 replies; 26+ messages in thread
From: kernel test robot @ 2024-01-26 12:28 UTC (permalink / raw)
  To: Andrew Davis, Sebastian Reichel, Support Opensource,
	Krzysztof Kozlowski, Pali Rohár
  Cc: llvm, oe-kbuild-all, linux-pm, linux-kernel, Andrew Davis

Hi Andrew,

kernel test robot noticed the following build warnings:

[auto build test WARNING on sre-power-supply/for-next]
[also build test WARNING on linus/master v6.8-rc1 next-20240125]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Andrew-Davis/power-supply-da9030-Use-devm_power_supply_register-helper/20240124-004253
base:   https://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply.git for-next
patch link:    https://lore.kernel.org/r/20240123163653.384385-10-afd%40ti.com
patch subject: [PATCH 09/21] power: supply: max8925: Use devm_power_supply_register() helper
config: i386-buildonly-randconfig-001-20240126 (https://download.01.org/0day-ci/archive/20240126/202401262006.hqYtlg6E-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240126/202401262006.hqYtlg6E-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202401262006.hqYtlg6E-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/power/supply/max8925_power.c:510:6: warning: unused variable 'ret' [-Wunused-variable]
     510 |         int ret;
         |             ^~~
   1 warning generated.


vim +/ret +510 drivers/power/supply/max8925_power.c

eba3b670a9166a drivers/power/max8925_power.c        Qing Xu             2012-11-19  503  
c8afa6406e60ae drivers/power/max8925_power.c        Bill Pemberton      2012-11-19  504  static int max8925_power_probe(struct platform_device *pdev)
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  505  {
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  506  	struct max8925_chip *chip = dev_get_drvdata(pdev->dev.parent);
2dc9215d7c94f7 drivers/power/max8925_power.c        Krzysztof Kozlowski 2015-03-12  507  	struct power_supply_config psy_cfg = {}; /* Only for ac and usb */
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  508  	struct max8925_power_pdata *pdata = NULL;
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  509  	struct max8925_power_info *info;
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25 @510  	int ret;
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  511  
eba3b670a9166a drivers/power/max8925_power.c        Qing Xu             2012-11-19  512  	pdata = max8925_power_dt_init(pdev);
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  513  	if (!pdata) {
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  514  		dev_err(&pdev->dev, "platform data isn't assigned to "
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  515  			"power supply\n");
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  516  		return -EINVAL;
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  517  	}
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  518  
feeb3a92b1f4e4 drivers/power/max8925_power.c        Jingoo Han          2013-03-11  519  	info = devm_kzalloc(&pdev->dev, sizeof(struct max8925_power_info),
feeb3a92b1f4e4 drivers/power/max8925_power.c        Jingoo Han          2013-03-11  520  				GFP_KERNEL);
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  521  	if (!info)
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  522  		return -ENOMEM;
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  523  	info->chip = chip;
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  524  	info->gpm = chip->i2c;
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  525  	info->adc = chip->adc;
2402ca5e300db0 drivers/power/max8925_power.c        Haojian Zhuang      2011-04-18  526  	platform_set_drvdata(pdev, info);
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  527  
2dc9215d7c94f7 drivers/power/max8925_power.c        Krzysztof Kozlowski 2015-03-12  528  	psy_cfg.supplied_to = pdata->supplied_to;
2dc9215d7c94f7 drivers/power/max8925_power.c        Krzysztof Kozlowski 2015-03-12  529  	psy_cfg.num_supplicants = pdata->num_supplicants;
2dc9215d7c94f7 drivers/power/max8925_power.c        Krzysztof Kozlowski 2015-03-12  530  
fec07f69a3e201 drivers/power/supply/max8925_power.c Andrew Davis        2024-01-23  531  	info->ac = devm_power_supply_register(&pdev->dev, &ac_desc, &psy_cfg);
fec07f69a3e201 drivers/power/supply/max8925_power.c Andrew Davis        2024-01-23  532  	if (IS_ERR(info->ac))
fec07f69a3e201 drivers/power/supply/max8925_power.c Andrew Davis        2024-01-23  533  		return PTR_ERR(info->ac);
297d716f6260cc drivers/power/max8925_power.c        Krzysztof Kozlowski 2015-03-12  534  	info->ac->dev.parent = &pdev->dev;
e7a5f6d55991fb drivers/power/max8925_power.c        Philip Rakity       2011-08-29  535  
fec07f69a3e201 drivers/power/supply/max8925_power.c Andrew Davis        2024-01-23  536  	info->usb = devm_power_supply_register(&pdev->dev, &usb_desc, &psy_cfg);
fec07f69a3e201 drivers/power/supply/max8925_power.c Andrew Davis        2024-01-23  537  	if (IS_ERR(info->usb))
fec07f69a3e201 drivers/power/supply/max8925_power.c Andrew Davis        2024-01-23  538  		return PTR_ERR(info->usb);
297d716f6260cc drivers/power/max8925_power.c        Krzysztof Kozlowski 2015-03-12  539  	info->usb->dev.parent = &pdev->dev;
297d716f6260cc drivers/power/max8925_power.c        Krzysztof Kozlowski 2015-03-12  540  
fec07f69a3e201 drivers/power/supply/max8925_power.c Andrew Davis        2024-01-23  541  	info->battery = devm_power_supply_register(&pdev->dev, &battery_desc, NULL);
fec07f69a3e201 drivers/power/supply/max8925_power.c Andrew Davis        2024-01-23  542  	if (IS_ERR(info->battery))
fec07f69a3e201 drivers/power/supply/max8925_power.c Andrew Davis        2024-01-23  543  		return PTR_ERR(info->battery);
297d716f6260cc drivers/power/max8925_power.c        Krzysztof Kozlowski 2015-03-12  544  	info->battery->dev.parent = &pdev->dev;
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  545  
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  546  	info->batt_detect = pdata->batt_detect;
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  547  	info->topoff_threshold = pdata->topoff_threshold;
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  548  	info->fast_charge = pdata->fast_charge;
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  549  	info->set_charger = pdata->set_charger;
92de378b739115 drivers/power/max8925_power.c        Philip Rakity       2011-11-25  550  	info->no_temp_support = pdata->no_temp_support;
5ba1fa0ae288e9 drivers/power/max8925_power.c        Philip Rakity       2011-11-25  551  	info->no_insert_detect = pdata->no_insert_detect;
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  552  
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  553  	max8925_init_charger(chip, info);
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  554  	return 0;
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  555  }
28db38888b2a53 drivers/power/max8925_power.c        Haojian Zhuang      2010-01-25  556  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 15/21] power: supply: wm8350: Use devm_power_supply_register() helper
  2024-01-23 16:36 ` [PATCH 15/21] power: supply: wm8350: " Andrew Davis
@ 2024-01-26 13:00   ` kernel test robot
  0 siblings, 0 replies; 26+ messages in thread
From: kernel test robot @ 2024-01-26 13:00 UTC (permalink / raw)
  To: Andrew Davis, Sebastian Reichel, Support Opensource,
	Krzysztof Kozlowski, Pali Rohár
  Cc: llvm, oe-kbuild-all, linux-pm, linux-kernel, Andrew Davis

Hi Andrew,

kernel test robot noticed the following build warnings:

[auto build test WARNING on sre-power-supply/for-next]
[also build test WARNING on linus/master v6.8-rc1 next-20240125]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Andrew-Davis/power-supply-da9030-Use-devm_power_supply_register-helper/20240124-004253
base:   https://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply.git for-next
patch link:    https://lore.kernel.org/r/20240123163653.384385-16-afd%40ti.com
patch subject: [PATCH 15/21] power: supply: wm8350: Use devm_power_supply_register() helper
config: i386-buildonly-randconfig-004-20240126 (https://download.01.org/0day-ci/archive/20240126/202401262027.yOqHrHcD-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240126/202401262027.yOqHrHcD-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202401262027.yOqHrHcD-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/power/supply/wm8350_power.c:573:23: warning: unused variable 'power' [-Wunused-variable]
     573 |         struct wm8350_power *power = &wm8350->power;
         |                              ^~~~~
   1 warning generated.


vim +/power +573 drivers/power/supply/wm8350_power.c

14431aa0c5a443 drivers/power/wm8350_power.c        Mark Brown       2008-11-16  569  
42720969f394dc drivers/power/supply/wm8350_power.c Uwe Kleine-König 2023-09-18  570  static void wm8350_power_remove(struct platform_device *pdev)
14431aa0c5a443 drivers/power/wm8350_power.c        Mark Brown       2008-11-16  571  {
14431aa0c5a443 drivers/power/wm8350_power.c        Mark Brown       2008-11-16  572  	struct wm8350 *wm8350 = platform_get_drvdata(pdev);
14431aa0c5a443 drivers/power/wm8350_power.c        Mark Brown       2008-11-16 @573  	struct wm8350_power *power = &wm8350->power;
14431aa0c5a443 drivers/power/wm8350_power.c        Mark Brown       2008-11-16  574  
14431aa0c5a443 drivers/power/wm8350_power.c        Mark Brown       2008-11-16  575  	free_charger_irq(wm8350);
14431aa0c5a443 drivers/power/wm8350_power.c        Mark Brown       2008-11-16  576  	device_remove_file(&pdev->dev, &dev_attr_charger_state);
14431aa0c5a443 drivers/power/wm8350_power.c        Mark Brown       2008-11-16  577  }
14431aa0c5a443 drivers/power/wm8350_power.c        Mark Brown       2008-11-16  578  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: (subset) [PATCH 00/21] Power supply register with devm
  2024-01-23 16:36 [PATCH 00/21] Power supply register with devm Andrew Davis
                   ` (20 preceding siblings ...)
  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 ` Sebastian Reichel
  21 siblings, 0 replies; 26+ messages in thread
From: Sebastian Reichel @ 2024-01-27  0:48 UTC (permalink / raw)
  To: Sebastian Reichel, Support Opensource, Krzysztof Kozlowski,
	Pali Rohár, Andrew Davis
  Cc: linux-pm, linux-kernel


On Tue, 23 Jan 2024 10:36:32 -0600, Andrew Davis wrote:
> This is a semi-automated series converting several drivers
> under power/supply over to using devm_power_supply_register().
> The more trivial cases are first, the last 3 drivers needed
> a little pre-work to convert their IIO uses over to devm before
> power_supply_register() could be switched.
> 
> Thanks,
> Andrew
> 
> [...]

Applied, thanks!

[01/21] power: supply: da9030: Use devm_power_supply_register() helper
        commit: 98be59bd03aa50d155ba84208cd964017e397fc9
[02/21] power: supply: da9052: Use devm_power_supply_register() helper
        commit: 57261cda154b3d0f8671ea222672f75b1e965c15
[03/21] power: supply: ds2760: Use devm_power_supply_register() helper
        commit: 88a72257a438375894de446885bb40946e0f979f
[04/21] power: supply: goldfish: Use devm_power_supply_register() helper
        commit: ada63f1ec91b77417cf195dadd646eaadb6f121c
[05/21] power: supply: lp8727: Use devm_power_supply_register() helper
        commit: 3b4d07fdaf17a8bb79173c2c40876d3221edeea4
[06/21] power: supply: lp8788: Use devm_power_supply_register() helper
        commit: 2abb571143c39f581df9951d263948726db42d86
[07/21] power: supply: max14577: Use devm_power_supply_register() helper
        (no commit info)
[10/21] power: supply: pcf50633: Use devm_power_supply_register() helper
        commit: e90a67f618c4a1128c49b11ddec37d9f1728ff5b
[11/21] power: supply: rt5033: Use devm_power_supply_register() helper
        commit: 3a93da231c12bb153224bbbdd3d9a83da9e0ba33
[12/21] power: supply: tps65090: Use devm_power_supply_register() helper
        commit: 503920abb586c3e355a19c680089ff5b33d97262
[13/21] power: supply: wm831x: Use devm_power_supply_register() helper
        commit: f2a7667c6cc09431575a286ec87e823fddd4dd41
[14/21] power: supply: wm831x: Use devm_power_supply_register() helper
        commit: f2a7667c6cc09431575a286ec87e823fddd4dd41
[16/21] power: supply: da9150: Use devm_iio_channel_get() helper
        commit: 9115c677071a09cf51cace59c33ed71ec61bdfec
[17/21] power: supply: da9150: Use devm_power_supply_register() helper
        commit: 077c1df8456f97d89e4880ba503d8ddf6af5be12
[18/21] power: supply: rx51: Use devm_iio_channel_get() helper
        commit: a16dc57e97558dcff7c422b3abec4f9880e8272b
[19/21] power: supply: rx51: Use devm_power_supply_register() helper
        commit: 4cb372a0ca220fff4a3878c4d1239af3e057e7cc
[20/21] power: supply: twl4030_madc: Use devm_iio_channel_get() helper
        commit: 8ac675344280a406835f03746594345209f2c1ae
[21/21] power: supply: twl4030_madc: Use devm_power_supply_register() helper
        commit: 4c5d387d79a65355b73e526cbf5754a9dcd5377b

Best regards,
-- 
Sebastian Reichel <sebastian.reichel@collabora.com>


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2024-01-27  0:48 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 ` [PATCH 15/21] power: supply: wm8350: " Andrew Davis
2024-01-26 13:00   ` 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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).