diff options
author | Krzysztof Helt <krzysztof.h1@wp.pl> | 2009-12-23 12:02:41 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-12-25 08:15:41 -0500 |
commit | 44eba3e82b35ae796826a65d8040001582adc10a (patch) | |
tree | 93f9bcd409638b1685d231dfbd7b0ce2949c20db | |
parent | 52e04ea89da57274f0313d2bd73ba02f686cfdeb (diff) |
ALSA: jazz16: refine dma and irq selection
Narrow the dma and irq selection after the DOS driver.
Add ALSA configuration description as well.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | Documentation/sound/alsa/ALSA-Configuration.txt | 15 | ||||
-rw-r--r-- | sound/isa/sb/jazz16.c | 21 | ||||
-rw-r--r-- | sound/isa/sb/sb8_main.c | 3 |
3 files changed, 37 insertions, 2 deletions
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index 7a0a4a9dc18d..c540637eb16a 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt | |||
@@ -1123,6 +1123,21 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
1123 | 1123 | ||
1124 | This module supports multiple cards, autoprobe and ISA PnP. | 1124 | This module supports multiple cards, autoprobe and ISA PnP. |
1125 | 1125 | ||
1126 | Module snd-jazz16 | ||
1127 | ------------------- | ||
1128 | |||
1129 | Module for Media Vision Jazz16 chipset. The chipset consists of 3 chips: | ||
1130 | MVD1216 + MVA416 + MVA514. | ||
1131 | |||
1132 | port - port # for SB DSP chip (0x210,0x220,0x230,0x240,0x250,0x260) | ||
1133 | irq - IRQ # for SB DSP chip (3,5,7,9,10,15) | ||
1134 | dma8 - DMA # for SB DSP chip (1,3) | ||
1135 | dma16 - DMA # for SB DSP chip (5,7) | ||
1136 | mpu_port - MPU-401 port # (0x300,0x310,0x320,0x330) | ||
1137 | mpu_irq - MPU-401 irq # (2,3,5,7) | ||
1138 | |||
1139 | This module supports multiple cards. | ||
1140 | |||
1126 | Module snd-korg1212 | 1141 | Module snd-korg1212 |
1127 | ------------------- | 1142 | ------------------- |
1128 | 1143 | ||
diff --git a/sound/isa/sb/jazz16.c b/sound/isa/sb/jazz16.c index d52966b75846..8d21a3feda3a 100644 --- a/sound/isa/sb/jazz16.c +++ b/sound/isa/sb/jazz16.c | |||
@@ -189,10 +189,29 @@ static int __devinit snd_jazz16_match(struct device *devptr, unsigned int dev) | |||
189 | if (port[dev] == SNDRV_AUTO_PORT) { | 189 | if (port[dev] == SNDRV_AUTO_PORT) { |
190 | snd_printk(KERN_ERR "please specify port\n"); | 190 | snd_printk(KERN_ERR "please specify port\n"); |
191 | return 0; | 191 | return 0; |
192 | } else if (port[dev] == 0x200 || (port[dev] & ~0x270)) { | ||
193 | snd_printk(KERN_ERR "incorrect port specified\n"); | ||
194 | return 0; | ||
195 | } | ||
196 | if (dma8[dev] != SNDRV_AUTO_DMA && | ||
197 | dma8[dev] != 1 && dma8[dev] != 3) { | ||
198 | snd_printk(KERN_ERR "dma8 must be 1 or 3\n"); | ||
199 | return 0; | ||
192 | } | 200 | } |
193 | if (dma16[dev] != SNDRV_AUTO_DMA && | 201 | if (dma16[dev] != SNDRV_AUTO_DMA && |
194 | dma16[dev] != 5 && dma16[dev] != 7) { | 202 | dma16[dev] != 5 && dma16[dev] != 7) { |
195 | snd_printk(KERN_ERR "dma16 must be 5 or 7"); | 203 | snd_printk(KERN_ERR "dma16 must be 5 or 7\n"); |
204 | return 0; | ||
205 | } | ||
206 | if (mpu_port[dev] != SNDRV_AUTO_PORT && | ||
207 | (mpu_port[dev] & ~0x030) != 0x300) { | ||
208 | snd_printk(KERN_ERR "incorrect mpu_port specified\n"); | ||
209 | return 0; | ||
210 | } | ||
211 | if (mpu_irq[dev] != SNDRV_AUTO_DMA && | ||
212 | mpu_irq[dev] != 2 && mpu_irq[dev] != 3 && | ||
213 | mpu_irq[dev] != 5 && mpu_irq[dev] != 7) { | ||
214 | snd_printk(KERN_ERR "mpu_irq must be 2, 3, 5 or 7\n"); | ||
196 | return 0; | 215 | return 0; |
197 | } | 216 | } |
198 | return 1; | 217 | return 1; |
diff --git a/sound/isa/sb/sb8_main.c b/sound/isa/sb/sb8_main.c index 3222aed5fac6..7d84c9f34dc9 100644 --- a/sound/isa/sb/sb8_main.c +++ b/sound/isa/sb/sb8_main.c | |||
@@ -510,7 +510,8 @@ static int snd_sb8_open(struct snd_pcm_substream *substream) | |||
510 | } | 510 | } |
511 | switch (chip->hardware) { | 511 | switch (chip->hardware) { |
512 | case SB_HW_JAZZ16: | 512 | case SB_HW_JAZZ16: |
513 | runtime->hw.formats |= SNDRV_PCM_FMTBIT_S16_LE; | 513 | if (chip->dma16 == 5 || chip->dma16 == 7) |
514 | runtime->hw.formats |= SNDRV_PCM_FMTBIT_S16_LE; | ||
514 | runtime->hw.rates |= SNDRV_PCM_RATE_8000_48000; | 515 | runtime->hw.rates |= SNDRV_PCM_RATE_8000_48000; |
515 | runtime->hw.rate_min = 4000; | 516 | runtime->hw.rate_min = 4000; |
516 | runtime->hw.rate_max = 50000; | 517 | runtime->hw.rate_max = 50000; |