diff options
Diffstat (limited to 'sound/isa/ad1848/ad1848.c')
-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) |