diff options
Diffstat (limited to 'sound/isa/cs423x/cs4231.c')
| -rw-r--r-- | sound/isa/cs423x/cs4231.c | 46 |
1 files changed, 22 insertions, 24 deletions
diff --git a/sound/isa/cs423x/cs4231.c b/sound/isa/cs423x/cs4231.c index 7640837659ea..9be5416bcb92 100644 --- a/sound/isa/cs423x/cs4231.c +++ b/sound/isa/cs423x/cs4231.c | |||
| @@ -76,15 +76,15 @@ static int __init snd_card_cs4231_probe(int dev) | |||
| 76 | int err; | 76 | int err; |
| 77 | 77 | ||
| 78 | if (port[dev] == SNDRV_AUTO_PORT) { | 78 | if (port[dev] == SNDRV_AUTO_PORT) { |
| 79 | snd_printk("specify port\n"); | 79 | snd_printk(KERN_ERR "specify port\n"); |
| 80 | return -EINVAL; | 80 | return -EINVAL; |
| 81 | } | 81 | } |
| 82 | if (irq[dev] == SNDRV_AUTO_IRQ) { | 82 | if (irq[dev] == SNDRV_AUTO_IRQ) { |
| 83 | snd_printk("specify irq\n"); | 83 | snd_printk(KERN_ERR "specify irq\n"); |
| 84 | return -EINVAL; | 84 | return -EINVAL; |
| 85 | } | 85 | } |
| 86 | if (dma1[dev] == SNDRV_AUTO_DMA) { | 86 | if (dma1[dev] == SNDRV_AUTO_DMA) { |
| 87 | snd_printk("specify dma1\n"); | 87 | snd_printk(KERN_ERR "specify dma1\n"); |
| 88 | return -EINVAL; | 88 | return -EINVAL; |
| 89 | } | 89 | } |
| 90 | card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); | 90 | card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); |
| @@ -96,15 +96,11 @@ static int __init snd_card_cs4231_probe(int dev) | |||
| 96 | dma1[dev], | 96 | dma1[dev], |
| 97 | dma2[dev], | 97 | dma2[dev], |
| 98 | CS4231_HW_DETECT, | 98 | CS4231_HW_DETECT, |
| 99 | 0, &chip)) < 0) { | 99 | 0, &chip)) < 0) |
| 100 | snd_card_free(card); | 100 | goto _err; |
| 101 | return err; | ||
| 102 | } | ||
| 103 | 101 | ||
| 104 | if ((err = snd_cs4231_pcm(chip, 0, &pcm)) < 0) { | 102 | if ((err = snd_cs4231_pcm(chip, 0, &pcm)) < 0) |
| 105 | snd_card_free(card); | 103 | goto _err; |
| 106 | return err; | ||
| 107 | } | ||
| 108 | 104 | ||
| 109 | strcpy(card->driver, "CS4231"); | 105 | strcpy(card->driver, "CS4231"); |
| 110 | strcpy(card->shortname, pcm->name); | 106 | strcpy(card->shortname, pcm->name); |
| @@ -113,14 +109,10 @@ static int __init snd_card_cs4231_probe(int dev) | |||
| 113 | if (dma2[dev] >= 0) | 109 | if (dma2[dev] >= 0) |
| 114 | sprintf(card->longname + strlen(card->longname), "&%d", dma2[dev]); | 110 | sprintf(card->longname + strlen(card->longname), "&%d", dma2[dev]); |
| 115 | 111 | ||
| 116 | if ((err = snd_cs4231_mixer(chip)) < 0) { | 112 | if ((err = snd_cs4231_mixer(chip)) < 0) |
| 117 | snd_card_free(card); | 113 | goto _err; |
| 118 | return err; | 114 | if ((err = snd_cs4231_timer(chip, 0, NULL)) < 0) |
| 119 | } | 115 | goto _err; |
| 120 | if ((err = snd_cs4231_timer(chip, 0, NULL)) < 0) { | ||
| 121 | snd_card_free(card); | ||
| 122 | return err; | ||
| 123 | } | ||
| 124 | 116 | ||
| 125 | if (mpu_port[dev] > 0 && mpu_port[dev] != SNDRV_AUTO_PORT) { | 117 | if (mpu_port[dev] > 0 && mpu_port[dev] != SNDRV_AUTO_PORT) { |
| 126 | if (mpu_irq[dev] == SNDRV_AUTO_IRQ) | 118 | if (mpu_irq[dev] == SNDRV_AUTO_IRQ) |
| @@ -130,14 +122,20 @@ static int __init snd_card_cs4231_probe(int dev) | |||
| 130 | mpu_irq[dev], | 122 | mpu_irq[dev], |
| 131 | mpu_irq[dev] >= 0 ? SA_INTERRUPT : 0, | 123 | mpu_irq[dev] >= 0 ? SA_INTERRUPT : 0, |
| 132 | NULL) < 0) | 124 | NULL) < 0) |
| 133 | printk(KERN_ERR "cs4231: MPU401 not detected\n"); | 125 | printk(KERN_WARNING "cs4231: MPU401 not detected\n"); |
| 134 | } | ||
| 135 | if ((err = snd_card_register(card)) < 0) { | ||
| 136 | snd_card_free(card); | ||
| 137 | return err; | ||
| 138 | } | 126 | } |
| 127 | |||
| 128 | if ((err = snd_card_set_generic_dev(card)) < 0) | ||
| 129 | goto _err; | ||
| 130 | |||
| 131 | if ((err = snd_card_register(card)) < 0) | ||
| 132 | goto _err; | ||
| 139 | snd_cs4231_cards[dev] = card; | 133 | snd_cs4231_cards[dev] = card; |
| 140 | return 0; | 134 | return 0; |
| 135 | |||
| 136 | _err: | ||
| 137 | snd_card_free(card); | ||
| 138 | return err; | ||
| 141 | } | 139 | } |
| 142 | 140 | ||
| 143 | static int __init alsa_card_cs4231_init(void) | 141 | static int __init alsa_card_cs4231_init(void) |
