diff options
author | Rene Herman <rene.herman@keyaccess.nl> | 2006-04-13 06:58:06 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2006-06-22 15:32:42 -0400 |
commit | 7152447df98b3981d621224be947a2c8d77aed06 (patch) | |
tree | 33419b17c13ee13c757c2d2fff9a09d47cc01af6 /sound/arm | |
parent | 79ca4f3f625e14212310f953b096e2e45110ac6b (diff) |
[ALSA] unregister platform device again if probe was unsuccessful
This second one unregisters the platform device again when the probe is
unsuccesful for sound/drivers, sound/arm/sa11xx-uda1341.c and
sound/ppc/powermac.c. This gets them all.
Signed-off-by: Rene Herman <rene.herman@keyaccess.nl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/arm')
-rw-r--r-- | sound/arm/sa11xx-uda1341.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/sound/arm/sa11xx-uda1341.c b/sound/arm/sa11xx-uda1341.c index 13057d92f08a..9211348824a7 100644 --- a/sound/arm/sa11xx-uda1341.c +++ b/sound/arm/sa11xx-uda1341.c | |||
@@ -984,11 +984,15 @@ static int __init sa11xx_uda1341_init(void) | |||
984 | if ((err = platform_driver_register(&sa11xx_uda1341_driver)) < 0) | 984 | if ((err = platform_driver_register(&sa11xx_uda1341_driver)) < 0) |
985 | return err; | 985 | return err; |
986 | device = platform_device_register_simple(SA11XX_UDA1341_DRIVER, -1, NULL, 0); | 986 | device = platform_device_register_simple(SA11XX_UDA1341_DRIVER, -1, NULL, 0); |
987 | if (IS_ERR(device)) { | 987 | if (!IS_ERR(device)) { |
988 | platform_driver_unregister(&sa11xx_uda1341_driver); | 988 | if (platform_get_drvdata(device)) |
989 | return PTR_ERR(device); | 989 | return 0; |
990 | } | 990 | platform_device_unregister(device); |
991 | return 0; | 991 | err = -ENODEV |
992 | } else | ||
993 | err = PTR_ERR(device); | ||
994 | platform_driver_unregister(&sa11xx_uda1341_driver); | ||
995 | return err; | ||
992 | } | 996 | } |
993 | 997 | ||
994 | static void __exit sa11xx_uda1341_exit(void) | 998 | static void __exit sa11xx_uda1341_exit(void) |