diff options
author | Rene Herman <rene.herman@gmail.com> | 2007-05-15 05:42:56 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2007-05-16 06:22:44 -0400 |
commit | 609d7694152f85734560ddc83be5e551b34d8c44 (patch) | |
tree | 14334de027169b2549933ff56cb1fd78e3bd41d6 /sound/isa/cmi8330.c | |
parent | 60af15f529d22a93805e74dd3c52b6f8134511d2 (diff) |
[ALSA] Fix probe of non-PnP ISA devices
isa_register_driver() returns an error if no device is found
and it's no fatal error for the drivers with pnp support.
Signed-off-by: Rene Herman <rene.herman@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound/isa/cmi8330.c')
-rw-r--r-- | sound/isa/cmi8330.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/sound/isa/cmi8330.c b/sound/isa/cmi8330.c index 214d65d94c45..f471f8ad6885 100644 --- a/sound/isa/cmi8330.c +++ b/sound/isa/cmi8330.c | |||
@@ -109,6 +109,7 @@ module_param_array(wssdma, int, NULL, 0444); | |||
109 | MODULE_PARM_DESC(wssdma, "DMA for CMI8330 WSS driver."); | 109 | MODULE_PARM_DESC(wssdma, "DMA for CMI8330 WSS driver."); |
110 | 110 | ||
111 | #ifdef CONFIG_PNP | 111 | #ifdef CONFIG_PNP |
112 | static int isa_registered; | ||
112 | static int pnp_registered; | 113 | static int pnp_registered; |
113 | #endif | 114 | #endif |
114 | 115 | ||
@@ -686,14 +687,18 @@ static int __init alsa_card_cmi8330_init(void) | |||
686 | int err; | 687 | int err; |
687 | 688 | ||
688 | err = isa_register_driver(&snd_cmi8330_driver, SNDRV_CARDS); | 689 | err = isa_register_driver(&snd_cmi8330_driver, SNDRV_CARDS); |
689 | if (err < 0) | ||
690 | return err; | ||
691 | #ifdef CONFIG_PNP | 690 | #ifdef CONFIG_PNP |
691 | if (!err) | ||
692 | isa_registered = 1; | ||
693 | |||
692 | err = pnp_register_card_driver(&cmi8330_pnpc_driver); | 694 | err = pnp_register_card_driver(&cmi8330_pnpc_driver); |
693 | if (!err) | 695 | if (!err) |
694 | pnp_registered = 1; | 696 | pnp_registered = 1; |
697 | |||
698 | if (isa_registered) | ||
699 | err = 0; | ||
695 | #endif | 700 | #endif |
696 | return 0; | 701 | return err; |
697 | } | 702 | } |
698 | 703 | ||
699 | static void __exit alsa_card_cmi8330_exit(void) | 704 | static void __exit alsa_card_cmi8330_exit(void) |
@@ -701,8 +706,10 @@ static void __exit alsa_card_cmi8330_exit(void) | |||
701 | #ifdef CONFIG_PNP | 706 | #ifdef CONFIG_PNP |
702 | if (pnp_registered) | 707 | if (pnp_registered) |
703 | pnp_unregister_card_driver(&cmi8330_pnpc_driver); | 708 | pnp_unregister_card_driver(&cmi8330_pnpc_driver); |
709 | |||
710 | if (isa_registered) | ||
704 | #endif | 711 | #endif |
705 | isa_unregister_driver(&snd_cmi8330_driver); | 712 | isa_unregister_driver(&snd_cmi8330_driver); |
706 | } | 713 | } |
707 | 714 | ||
708 | module_init(alsa_card_cmi8330_init) | 715 | module_init(alsa_card_cmi8330_init) |