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

regulator: lp8788-ldo: Use platform_register/unregister_drivers()

These new helpers simplify implementing multi-driver modules and
properly handle failure to register one driver by unregistering all
previously registered drivers.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Thierry Reding and committed by
Mark Brown
7629cef1 8005c49d

+7 -9
+7 -9
drivers/regulator/lp8788-ldo.c
··· 613 613 }, 614 614 }; 615 615 616 + static struct platform_driver * const drivers[] = { 617 + &lp8788_dldo_driver, 618 + &lp8788_aldo_driver, 619 + }; 620 + 616 621 static int __init lp8788_ldo_init(void) 617 622 { 618 - int ret; 619 - 620 - ret = platform_driver_register(&lp8788_dldo_driver); 621 - if (ret) 622 - return ret; 623 - 624 - return platform_driver_register(&lp8788_aldo_driver); 623 + return platform_register_drivers(drivers, ARRAY_SIZE(drivers)); 625 624 } 626 625 subsys_initcall(lp8788_ldo_init); 627 626 628 627 static void __exit lp8788_ldo_exit(void) 629 628 { 630 - platform_driver_unregister(&lp8788_aldo_driver); 631 - platform_driver_unregister(&lp8788_dldo_driver); 629 + platform_unregister_drivers(drivers, ARRAY_SIZE(drivers)); 632 630 } 633 631 module_exit(lp8788_ldo_exit); 634 632