diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-17 00:21:33 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-17 00:21:33 -0400 |
commit | b17bfca5f16a6090ee51250163e1720f6fe71515 (patch) | |
tree | b5c561e1c2b7db6ded4c2092486f66f7c8c35902 /sound/isa/opl3sa2.c | |
parent | 36dbe4d6bffb90fcb2663ac50af00a942412e246 (diff) | |
parent | a04395ead6d17c83da64264b6fe78f852a648202 (diff) |
Merge branch 'linus' of master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa
* 'linus' of master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa:
[ALSA] usbaudio - Coping with short replies in usbmixer
[ALSA] Include quirks from Ubuntu Dapper/Edgy/Feisty
[ALSA] Fix probe of non-PnP ISA devices
[ALSA] version 1.0.14rc4
[ALSA] hda-codec - Fix ALC882/861VD codec support on some laptops
[ALSA] ASoC AC97 device reg bugfix
[ALSA] ASoC AC97 static GPL symbol fix
[ALSA] hda-codec - Make the mixer capability check more robust
[ALSA] usb-audio: another Logitech QuickCam ID
Diffstat (limited to 'sound/isa/opl3sa2.c')
-rw-r--r-- | sound/isa/opl3sa2.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/sound/isa/opl3sa2.c b/sound/isa/opl3sa2.c index 48743eb85fb6..61a323cc0e49 100644 --- a/sound/isa/opl3sa2.c +++ b/sound/isa/opl3sa2.c | |||
@@ -92,6 +92,7 @@ module_param_array(opl3sa3_ymode, int, NULL, 0444); | |||
92 | MODULE_PARM_DESC(opl3sa3_ymode, "Speaker size selection for 3D Enhancement mode: Desktop/Large Notebook/Small Notebook/HiFi."); | 92 | MODULE_PARM_DESC(opl3sa3_ymode, "Speaker size selection for 3D Enhancement mode: Desktop/Large Notebook/Small Notebook/HiFi."); |
93 | 93 | ||
94 | #ifdef CONFIG_PNP | 94 | #ifdef CONFIG_PNP |
95 | static int isa_registered; | ||
95 | static int pnp_registered; | 96 | static int pnp_registered; |
96 | static int pnpc_registered; | 97 | static int pnpc_registered; |
97 | #endif | 98 | #endif |
@@ -967,17 +968,22 @@ static int __init alsa_card_opl3sa2_init(void) | |||
967 | int err; | 968 | int err; |
968 | 969 | ||
969 | err = isa_register_driver(&snd_opl3sa2_isa_driver, SNDRV_CARDS); | 970 | err = isa_register_driver(&snd_opl3sa2_isa_driver, SNDRV_CARDS); |
970 | if (err < 0) | ||
971 | return err; | ||
972 | #ifdef CONFIG_PNP | 971 | #ifdef CONFIG_PNP |
972 | if (!err) | ||
973 | isa_registered = 1; | ||
974 | |||
973 | err = pnp_register_driver(&opl3sa2_pnp_driver); | 975 | err = pnp_register_driver(&opl3sa2_pnp_driver); |
974 | if (!err) | 976 | if (!err) |
975 | pnp_registered = 1; | 977 | pnp_registered = 1; |
978 | |||
976 | err = pnp_register_card_driver(&opl3sa2_pnpc_driver); | 979 | err = pnp_register_card_driver(&opl3sa2_pnpc_driver); |
977 | if (!err) | 980 | if (!err) |
978 | pnpc_registered = 1; | 981 | pnpc_registered = 1; |
982 | |||
983 | if (isa_registered || pnp_registered) | ||
984 | err = 0; | ||
979 | #endif | 985 | #endif |
980 | return 0; | 986 | return err; |
981 | } | 987 | } |
982 | 988 | ||
983 | static void __exit alsa_card_opl3sa2_exit(void) | 989 | static void __exit alsa_card_opl3sa2_exit(void) |
@@ -987,8 +993,9 @@ static void __exit alsa_card_opl3sa2_exit(void) | |||
987 | pnp_unregister_card_driver(&opl3sa2_pnpc_driver); | 993 | pnp_unregister_card_driver(&opl3sa2_pnpc_driver); |
988 | if (pnp_registered) | 994 | if (pnp_registered) |
989 | pnp_unregister_driver(&opl3sa2_pnp_driver); | 995 | pnp_unregister_driver(&opl3sa2_pnp_driver); |
996 | if (isa_registered) | ||
990 | #endif | 997 | #endif |
991 | isa_unregister_driver(&snd_opl3sa2_isa_driver); | 998 | isa_unregister_driver(&snd_opl3sa2_isa_driver); |
992 | } | 999 | } |
993 | 1000 | ||
994 | module_init(alsa_card_opl3sa2_init) | 1001 | module_init(alsa_card_opl3sa2_init) |