|
@@ -984,11 +984,15 @@ static int __init sa11xx_uda1341_init(void)
|
|
|
if ((err = platform_driver_register(&sa11xx_uda1341_driver)) < 0)
|
|
|
return err;
|
|
|
device = platform_device_register_simple(SA11XX_UDA1341_DRIVER, -1, NULL, 0);
|
|
|
- if (IS_ERR(device)) {
|
|
|
- platform_driver_unregister(&sa11xx_uda1341_driver);
|
|
|
- return PTR_ERR(device);
|
|
|
- }
|
|
|
- return 0;
|
|
|
+ if (!IS_ERR(device)) {
|
|
|
+ if (platform_get_drvdata(device))
|
|
|
+ return 0;
|
|
|
+ platform_device_unregister(device);
|
|
|
+ err = -ENODEV
|
|
|
+ } else
|
|
|
+ err = PTR_ERR(device);
|
|
|
+ platform_driver_unregister(&sa11xx_uda1341_driver);
|
|
|
+ return err;
|
|
|
}
|
|
|
|
|
|
static void __exit sa11xx_uda1341_exit(void)
|