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

power: supply: lp8788: Use devm_power_supply_register() helper

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>
Link: https://lore.kernel.org/r/20240123163653.384385-7-afd@ti.com
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>

authored by

Andrew Davis and committed by
Sebastian Reichel
2abb5711 3b4d07fd

+6 -15
+6 -15
drivers/power/supply/lp8788-charger.c
··· 406 406 .get_property = lp8788_battery_get_property, 407 407 }; 408 408 409 - static void lp8788_psy_unregister(struct lp8788_charger *pchg) 410 - { 411 - power_supply_unregister(pchg->battery); 412 - power_supply_unregister(pchg->charger); 413 - } 414 - 415 409 static void lp8788_charger_event(struct work_struct *work) 416 410 { 417 411 struct lp8788_charger *pchg = ··· 660 666 charger_cfg.supplied_to = battery_supplied_to; 661 667 charger_cfg.num_supplicants = ARRAY_SIZE(battery_supplied_to); 662 668 663 - pchg->charger = power_supply_register(&pdev->dev, 664 - &lp8788_psy_charger_desc, 665 - &charger_cfg); 669 + pchg->charger = devm_power_supply_register(&pdev->dev, 670 + &lp8788_psy_charger_desc, 671 + &charger_cfg); 666 672 if (IS_ERR(pchg->charger)) 667 673 return -EPERM; 668 674 669 - pchg->battery = power_supply_register(&pdev->dev, 670 - &lp8788_psy_battery_desc, NULL); 671 - if (IS_ERR(pchg->battery)) { 672 - power_supply_unregister(pchg->charger); 675 + pchg->battery = devm_power_supply_register(&pdev->dev, 676 + &lp8788_psy_battery_desc, NULL); 677 + if (IS_ERR(pchg->battery)) 673 678 return -EPERM; 674 - } 675 679 676 680 return 0; 677 681 } ··· 712 720 713 721 flush_work(&pchg->charger_work); 714 722 lp8788_irq_unregister(pdev, pchg); 715 - lp8788_psy_unregister(pchg); 716 723 } 717 724 718 725 static struct platform_driver lp8788_charger_driver = {