Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

power: supply: rx51: Use devm_iio_channel_get() helper

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-19-afd@ti.com
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>

authored by

Andrew Davis and committed by
Sebastian Reichel
a16dc57e 077c1df8

+11 -34
+11 -34
drivers/power/supply/rx51_battery.c
··· 192 192 { 193 193 struct power_supply_config psy_cfg = {}; 194 194 struct rx51_device_info *di; 195 - int ret; 196 195 197 196 di = devm_kzalloc(&pdev->dev, sizeof(*di), GFP_KERNEL); 198 197 if (!di) ··· 208 209 209 210 psy_cfg.drv_data = di; 210 211 211 - di->channel_temp = iio_channel_get(di->dev, "temp"); 212 - if (IS_ERR(di->channel_temp)) { 213 - ret = PTR_ERR(di->channel_temp); 214 - goto error; 215 - } 212 + di->channel_temp = devm_iio_channel_get(di->dev, "temp"); 213 + if (IS_ERR(di->channel_temp)) 214 + return PTR_ERR(di->channel_temp); 216 215 217 - di->channel_bsi = iio_channel_get(di->dev, "bsi"); 218 - if (IS_ERR(di->channel_bsi)) { 219 - ret = PTR_ERR(di->channel_bsi); 220 - goto error_channel_temp; 221 - } 216 + di->channel_bsi = devm_iio_channel_get(di->dev, "bsi"); 217 + if (IS_ERR(di->channel_bsi)) 218 + return PTR_ERR(di->channel_bsi); 222 219 223 - di->channel_vbat = iio_channel_get(di->dev, "vbat"); 224 - if (IS_ERR(di->channel_vbat)) { 225 - ret = PTR_ERR(di->channel_vbat); 226 - goto error_channel_bsi; 227 - } 220 + di->channel_vbat = devm_iio_channel_get(di->dev, "vbat"); 221 + if (IS_ERR(di->channel_vbat)) 222 + return PTR_ERR(di->channel_vbat); 228 223 229 224 di->bat = power_supply_register(di->dev, &di->bat_desc, &psy_cfg); 230 - if (IS_ERR(di->bat)) { 231 - ret = PTR_ERR(di->bat); 232 - goto error_channel_vbat; 233 - } 225 + if (IS_ERR(di->bat)) 226 + return PTR_ERR(di->bat); 234 227 235 228 return 0; 236 - 237 - error_channel_vbat: 238 - iio_channel_release(di->channel_vbat); 239 - error_channel_bsi: 240 - iio_channel_release(di->channel_bsi); 241 - error_channel_temp: 242 - iio_channel_release(di->channel_temp); 243 - error: 244 - 245 - return ret; 246 229 } 247 230 248 231 static void rx51_battery_remove(struct platform_device *pdev) ··· 232 251 struct rx51_device_info *di = platform_get_drvdata(pdev); 233 252 234 253 power_supply_unregister(di->bat); 235 - 236 - iio_channel_release(di->channel_vbat); 237 - iio_channel_release(di->channel_bsi); 238 - iio_channel_release(di->channel_temp); 239 254 } 240 255 241 256 #ifdef CONFIG_OF