aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKrzysztof Helt <krzysztof.h1@wp.pl>2009-12-23 12:02:41 -0500
committerTakashi Iwai <tiwai@suse.de>2009-12-25 08:15:41 -0500
commit44eba3e82b35ae796826a65d8040001582adc10a (patch)
tree93f9bcd409638b1685d231dfbd7b0ce2949c20db
parent52e04ea89da57274f0313d2bd73ba02f686cfdeb (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.txt15
-rw-r--r--sound/isa/sb/jazz16.c21
-rw-r--r--sound/isa/sb/sb8_main.c3
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;