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

leds: sunfire: 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: Jacek Anaszewski <j.anaszewski@samsung.com>

authored by

Thierry Reding and committed by
Jacek Anaszewski
6e25e641 88911615

+7 -16
+7 -16
drivers/leds/leds-sunfire.c
··· 234 234 }, 235 235 }; 236 236 237 + static struct platform_driver * const drivers[] = { 238 + &sunfire_clockboard_led_driver, 239 + &sunfire_fhc_led_driver, 240 + }; 241 + 237 242 static int __init sunfire_leds_init(void) 238 243 { 239 - int err = platform_driver_register(&sunfire_clockboard_led_driver); 240 - 241 - if (err) { 242 - pr_err("Could not register clock board LED driver\n"); 243 - return err; 244 - } 245 - 246 - err = platform_driver_register(&sunfire_fhc_led_driver); 247 - if (err) { 248 - pr_err("Could not register FHC LED driver\n"); 249 - platform_driver_unregister(&sunfire_clockboard_led_driver); 250 - } 251 - 252 - return err; 244 + return platform_register_drivers(drivers, ARRAY_SIZE(drivers)); 253 245 } 254 246 255 247 static void __exit sunfire_leds_exit(void) 256 248 { 257 - platform_driver_unregister(&sunfire_clockboard_led_driver); 258 - platform_driver_unregister(&sunfire_fhc_led_driver); 249 + platform_unregister_drivers(drivers, ARRAY_SIZE(drivers)); 259 250 } 260 251 261 252 module_init(sunfire_leds_init);