diff options
author | Takashi Iwai <tiwai@suse.de> | 2005-09-05 11:19:20 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2005-09-12 04:42:01 -0400 |
commit | 43bcd973d6d05d16b876e09dcc49a09d3e48e88d (patch) | |
tree | 8c8493b66c417402f6188051c57e55099bbd156d /sound/isa/ad1848 | |
parent | 16dab54b8cbac39bd3f639db5d7d0fd8300a6cb0 (diff) |
[ALSA] Add snd_card_set_generic_dev() call to ISA drivers
ISA,CMI8330 driver,ES18xx driver,OPL3SA2 driver,Sound Galaxy driver
Sound Scape driver,AD1848 driver,CS4231 driver,CS4236+ driver
ES1688 driver,GUS Classic driver,GUS Extreme driver,GUS MAX driver
AMD InterWave driver,Opti9xx drivers,SB16/AWE driver,SB8 driver
Wavefront drivers
- Added snd_card_set_generic_dev() call.
- Added SND_GENERIC_DRIVER to Kconfig.
- Clean up the error path in probe if necessary.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/isa/ad1848')
-rw-r--r-- | sound/isa/ad1848/ad1848.c | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/sound/isa/ad1848/ad1848.c b/sound/isa/ad1848/ad1848.c index 8c399340cd72..3ebcc482b07a 100644 --- a/sound/isa/ad1848/ad1848.c +++ b/sound/isa/ad1848/ad1848.c | |||
@@ -91,35 +91,36 @@ static int __init snd_card_ad1848_probe(int dev) | |||
91 | irq[dev], | 91 | irq[dev], |
92 | dma1[dev], | 92 | dma1[dev], |
93 | thinkpad[dev] ? AD1848_HW_THINKPAD : AD1848_HW_DETECT, | 93 | thinkpad[dev] ? AD1848_HW_THINKPAD : AD1848_HW_DETECT, |
94 | &chip)) < 0) { | 94 | &chip)) < 0) |
95 | snd_card_free(card); | 95 | goto _err; |
96 | return err; | 96 | |
97 | } | 97 | if ((err = snd_ad1848_pcm(chip, 0, &pcm)) < 0) |
98 | goto _err; | ||
99 | |||
100 | if ((err = snd_ad1848_mixer(chip)) < 0) | ||
101 | goto _err; | ||
98 | 102 | ||
99 | if ((err = snd_ad1848_pcm(chip, 0, &pcm)) < 0) { | ||
100 | snd_card_free(card); | ||
101 | return err; | ||
102 | } | ||
103 | if ((err = snd_ad1848_mixer(chip)) < 0) { | ||
104 | snd_card_free(card); | ||
105 | return err; | ||
106 | } | ||
107 | strcpy(card->driver, "AD1848"); | 103 | strcpy(card->driver, "AD1848"); |
108 | strcpy(card->shortname, pcm->name); | 104 | strcpy(card->shortname, pcm->name); |
109 | 105 | ||
110 | sprintf(card->longname, "%s at 0x%lx, irq %d, dma %d", | 106 | sprintf(card->longname, "%s at 0x%lx, irq %d, dma %d", |
111 | pcm->name, chip->port, irq[dev], dma1[dev]); | 107 | pcm->name, chip->port, irq[dev], dma1[dev]); |
112 | 108 | ||
113 | if (thinkpad[dev]) { | 109 | if (thinkpad[dev]) |
114 | strcat(card->longname, " [Thinkpad]"); | 110 | strcat(card->longname, " [Thinkpad]"); |
115 | } | ||
116 | 111 | ||
117 | if ((err = snd_card_register(card)) < 0) { | 112 | if ((err = snd_card_set_generic_dev(card)) < 0) |
118 | snd_card_free(card); | 113 | goto _err; |
119 | return err; | 114 | |
120 | } | 115 | if ((err = snd_card_register(card)) < 0) |
116 | goto _err; | ||
117 | |||
121 | snd_ad1848_cards[dev] = card; | 118 | snd_ad1848_cards[dev] = card; |
122 | return 0; | 119 | return 0; |
120 | |||
121 | _err: | ||
122 | snd_card_free(card); | ||
123 | return err; | ||
123 | } | 124 | } |
124 | 125 | ||
125 | static int __init alsa_card_ad1848_init(void) | 126 | static int __init alsa_card_ad1848_init(void) |