power: supply: twl4030_madc: Use devm_iio_channel_get() helper
authorAndrew Davis <afd@ti.com>
Tue, 23 Jan 2024 16:36:52 +0000 (10:36 -0600)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Sat, 27 Jan 2024 00:25:05 +0000 (01:25 +0100)
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>
Link: https://lore.kernel.org/r/20240123163653.384385-21-afd@ti.com
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/twl4030_madc_battery.c

index 33106476bea2ce410cfade40319e76e3d41f03bb..cd9e94134ab21b45d3ea73b4527c68dc485d60ef 100644 (file)
@@ -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 = {