aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRene Herman <rene.herman@keyaccess.nl>2006-04-13 06:58:06 -0400
committerJaroslav Kysela <perex@suse.cz>2006-06-22 15:32:42 -0400
commit7152447df98b3981d621224be947a2c8d77aed06 (patch)
tree33419b17c13ee13c757c2d2fff9a09d47cc01af6
parent79ca4f3f625e14212310f953b096e2e45110ac6b (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>
-rw-r--r--sound/arm/sa11xx-uda1341.c14
-rw-r--r--sound/drivers/dummy.c4
-rw-r--r--sound/drivers/mpu401/mpu401.c4
-rw-r--r--sound/drivers/mtpav.c14
-rw-r--r--sound/drivers/serial-u16550.c4
-rw-r--r--sound/drivers/virmidi.c4
-rw-r--r--sound/ppc/powermac.c14
7 files changed, 43 insertions, 15 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
994static void __exit sa11xx_uda1341_exit(void) 998static void __exit sa11xx_uda1341_exit(void)
diff --git a/sound/drivers/dummy.c b/sound/drivers/dummy.c
index ae0df549fac7..ffeafaf2ecca 100644
--- a/sound/drivers/dummy.c
+++ b/sound/drivers/dummy.c
@@ -677,6 +677,10 @@ static int __init alsa_card_dummy_init(void)
677 i, NULL, 0); 677 i, NULL, 0);
678 if (IS_ERR(device)) 678 if (IS_ERR(device))
679 continue; 679 continue;
680 if (!platform_get_drvdata(device)) {
681 platform_device_unregister(device);
682 continue;
683 }
680 devices[i] = device; 684 devices[i] = device;
681 cards++; 685 cards++;
682 } 686 }
diff --git a/sound/drivers/mpu401/mpu401.c b/sound/drivers/mpu401/mpu401.c
index 77b06009735d..d3cbbb047582 100644
--- a/sound/drivers/mpu401/mpu401.c
+++ b/sound/drivers/mpu401/mpu401.c
@@ -253,6 +253,10 @@ static int __init alsa_card_mpu401_init(void)
253 i, NULL, 0); 253 i, NULL, 0);
254 if (IS_ERR(device)) 254 if (IS_ERR(device))
255 continue; 255 continue;
256 if (!platform_get_drvdata(device)) {
257 platform_device_unregister(device);
258 continue;
259 }
256 platform_devices[i] = device; 260 platform_devices[i] = device;
257 snd_mpu401_devices++; 261 snd_mpu401_devices++;
258 } 262 }
diff --git a/sound/drivers/mtpav.c b/sound/drivers/mtpav.c
index b7a0b42813e1..474eed06e70f 100644
--- a/sound/drivers/mtpav.c
+++ b/sound/drivers/mtpav.c
@@ -770,11 +770,15 @@ static int __init alsa_card_mtpav_init(void)
770 return err; 770 return err;
771 771
772 device = platform_device_register_simple(SND_MTPAV_DRIVER, -1, NULL, 0); 772 device = platform_device_register_simple(SND_MTPAV_DRIVER, -1, NULL, 0);
773 if (IS_ERR(device)) { 773 if (!IS_ERR(device)) {
774 platform_driver_unregister(&snd_mtpav_driver); 774 if (platform_get_drvdata(device))
775 return PTR_ERR(device); 775 return 0;
776 } 776 platform_device_unregister(device);
777 return 0; 777 err = -ENODEV;
778 } else
779 err = PTR_ERR(device);
780 platform_driver_unregister(&snd_mtpav_driver);
781 return err;
778} 782}
779 783
780static void __exit alsa_card_mtpav_exit(void) 784static void __exit alsa_card_mtpav_exit(void)
diff --git a/sound/drivers/serial-u16550.c b/sound/drivers/serial-u16550.c
index c01b4c5118b9..2330fec505da 100644
--- a/sound/drivers/serial-u16550.c
+++ b/sound/drivers/serial-u16550.c
@@ -998,6 +998,10 @@ static int __init alsa_card_serial_init(void)
998 i, NULL, 0); 998 i, NULL, 0);
999 if (IS_ERR(device)) 999 if (IS_ERR(device))
1000 continue; 1000 continue;
1001 if (!platform_get_drvdata(device)) {
1002 platform_device_unregister(device);
1003 continue;
1004 }
1001 devices[i] = device; 1005 devices[i] = device;
1002 cards++; 1006 cards++;
1003 } 1007 }
diff --git a/sound/drivers/virmidi.c b/sound/drivers/virmidi.c
index 26eb2499d442..59171f8200df 100644
--- a/sound/drivers/virmidi.c
+++ b/sound/drivers/virmidi.c
@@ -171,6 +171,10 @@ static int __init alsa_card_virmidi_init(void)
171 i, NULL, 0); 171 i, NULL, 0);
172 if (IS_ERR(device)) 172 if (IS_ERR(device))
173 continue; 173 continue;
174 if (!platform_get_drvdata(device)) {
175 platform_device_unregister(device);
176 continue;
177 }
174 devices[i] = device; 178 devices[i] = device;
175 cards++; 179 cards++;
176 } 180 }
diff --git a/sound/ppc/powermac.c b/sound/ppc/powermac.c
index f4902a219e50..875f1f7bdc58 100644
--- a/sound/ppc/powermac.c
+++ b/sound/ppc/powermac.c
@@ -188,11 +188,15 @@ static int __init alsa_card_pmac_init(void)
188 if ((err = platform_driver_register(&snd_pmac_driver)) < 0) 188 if ((err = platform_driver_register(&snd_pmac_driver)) < 0)
189 return err; 189 return err;
190 device = platform_device_register_simple(SND_PMAC_DRIVER, -1, NULL, 0); 190 device = platform_device_register_simple(SND_PMAC_DRIVER, -1, NULL, 0);
191 if (IS_ERR(device)) { 191 if (!IS_ERR(device)) {
192 platform_driver_unregister(&snd_pmac_driver); 192 if (platform_get_drvdata(device))
193 return PTR_ERR(device); 193 return 0;
194 } 194 platform_device_unregister(device);
195 return 0; 195 err = -ENODEV;
196 } else
197 err = PTR_ERR(device);
198 platform_driver_unregister(&snd_pmac_driver);
199 return err;
196 200
197} 201}
198 202