diff options
author | Rene Herman <rene.herman@keyaccess.nl> | 2006-04-11 08:09:37 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2006-04-12 05:55:32 -0400 |
commit | dcccdd938ef0c5d96145957217b814b14bd46cdc (patch) | |
tree | 8522ad7957ee85a7f0ab53f776afee8a05795be7 /sound/isa/opti9xx | |
parent | d0ac642d76c79c5cc673c4cdfe43e926379784e1 (diff) |
[ALSA] unregister platform device again if probe was unsuccessful
Unregister the platform device again if the probe was unsuccessful.
This restores the behaviour of not loading the driver on probe() failure.
Signed-off-by: Rene Herman <rene.herman@keyaccess.nl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/isa/opti9xx')
-rw-r--r-- | sound/isa/opti9xx/miro.c | 7 | ||||
-rw-r--r-- | sound/isa/opti9xx/opti92x-ad1848.c | 7 |
2 files changed, 10 insertions, 4 deletions
diff --git a/sound/isa/opti9xx/miro.c b/sound/isa/opti9xx/miro.c index 09384d03dc31..83d64bc07ff0 100644 --- a/sound/isa/opti9xx/miro.c +++ b/sound/isa/opti9xx/miro.c | |||
@@ -1436,8 +1436,11 @@ static int __init alsa_card_miro_init(void) | |||
1436 | if ((error = platform_driver_register(&snd_miro_driver)) < 0) | 1436 | if ((error = platform_driver_register(&snd_miro_driver)) < 0) |
1437 | return error; | 1437 | return error; |
1438 | device = platform_device_register_simple(DRIVER_NAME, -1, NULL, 0); | 1438 | device = platform_device_register_simple(DRIVER_NAME, -1, NULL, 0); |
1439 | if (! IS_ERR(device)) | 1439 | if (! IS_ERR(device)) { |
1440 | return 0; | 1440 | if (platform_get_drvdata(device)) |
1441 | return 0; | ||
1442 | platform_device_unregister(device); | ||
1443 | } | ||
1441 | #ifdef MODULE | 1444 | #ifdef MODULE |
1442 | printk(KERN_ERR "no miro soundcard found\n"); | 1445 | printk(KERN_ERR "no miro soundcard found\n"); |
1443 | #endif | 1446 | #endif |
diff --git a/sound/isa/opti9xx/opti92x-ad1848.c b/sound/isa/opti9xx/opti92x-ad1848.c index 65b28cbc0ebd..8ee0d70536f9 100644 --- a/sound/isa/opti9xx/opti92x-ad1848.c +++ b/sound/isa/opti9xx/opti92x-ad1848.c | |||
@@ -2099,8 +2099,11 @@ static int __init alsa_card_opti9xx_init(void) | |||
2099 | return error; | 2099 | return error; |
2100 | device = platform_device_register_simple(DRIVER_NAME, -1, NULL, 0); | 2100 | device = platform_device_register_simple(DRIVER_NAME, -1, NULL, 0); |
2101 | if (!IS_ERR(device)) { | 2101 | if (!IS_ERR(device)) { |
2102 | snd_opti9xx_platform_device = device; | 2102 | if (platform_get_drvdata(device)) { |
2103 | return 0; | 2103 | snd_opti9xx_platform_device = device; |
2104 | return 0; | ||
2105 | } | ||
2106 | platform_device_unregister(device); | ||
2104 | } | 2107 | } |
2105 | platform_driver_unregister(&snd_opti9xx_driver); | 2108 | platform_driver_unregister(&snd_opti9xx_driver); |
2106 | } | 2109 | } |