Commit 44eba3e8 authored by Krzysztof Helt's avatar Krzysztof Helt Committed by Takashi Iwai
Browse files

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: default avatarKrzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 52e04ea8
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -1123,6 +1123,21 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.

    This module supports multiple cards, autoprobe and ISA PnP.

  Module snd-jazz16
  -------------------

    Module for Media Vision Jazz16 chipset. The chipset consists of 3 chips:
    MVD1216 + MVA416 + MVA514.

    port	- port # for SB DSP chip (0x210,0x220,0x230,0x240,0x250,0x260)
    irq		- IRQ # for SB DSP chip (3,5,7,9,10,15)
    dma8	- DMA # for SB DSP chip (1,3)
    dma16	- DMA # for SB DSP chip (5,7)
    mpu_port	- MPU-401 port # (0x300,0x310,0x320,0x330)
    mpu_irq	- MPU-401 irq # (2,3,5,7)

    This module supports multiple cards.

  Module snd-korg1212
  -------------------

+20 −1
Original line number Diff line number Diff line
@@ -189,10 +189,29 @@ static int __devinit snd_jazz16_match(struct device *devptr, unsigned int dev)
	if (port[dev] == SNDRV_AUTO_PORT) {
		snd_printk(KERN_ERR "please specify port\n");
		return 0;
	} else if (port[dev] == 0x200 || (port[dev] & ~0x270)) {
		snd_printk(KERN_ERR "incorrect port specified\n");
		return 0;
	}
	if (dma8[dev] != SNDRV_AUTO_DMA &&
	    dma8[dev] != 1 && dma8[dev] != 3) {
		snd_printk(KERN_ERR "dma8 must be 1 or 3\n");
		return 0;
	}
	if (dma16[dev] != SNDRV_AUTO_DMA &&
	    dma16[dev] != 5 && dma16[dev] != 7) {
		snd_printk(KERN_ERR "dma16 must be 5 or 7");
		snd_printk(KERN_ERR "dma16 must be 5 or 7\n");
		return 0;
	}
	if (mpu_port[dev] != SNDRV_AUTO_PORT &&
	    (mpu_port[dev] & ~0x030) != 0x300) {
		snd_printk(KERN_ERR "incorrect mpu_port specified\n");
		return 0;
	}
	if (mpu_irq[dev] != SNDRV_AUTO_DMA &&
	    mpu_irq[dev] != 2 && mpu_irq[dev] != 3 &&
	    mpu_irq[dev] != 5 && mpu_irq[dev] != 7) {
		snd_printk(KERN_ERR "mpu_irq must be 2, 3, 5 or 7\n");
		return 0;
	}
	return 1;
+2 −1
Original line number Diff line number Diff line
@@ -510,6 +510,7 @@ static int snd_sb8_open(struct snd_pcm_substream *substream)
	}
	switch (chip->hardware) {
	case SB_HW_JAZZ16:
		if (chip->dma16 == 5 || chip->dma16 == 7)
			runtime->hw.formats |= SNDRV_PCM_FMTBIT_S16_LE;
		runtime->hw.rates |= SNDRV_PCM_RATE_8000_48000;
		runtime->hw.rate_min = 4000;