aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorRene Herman <rene.herman@keyaccess.nl>2005-12-14 05:57:27 -0500
committerJaroslav Kysela <perex@suse.cz>2006-01-03 06:30:54 -0500
commit607da7f834592a723797b21c2463507a44d9cfa7 (patch)
tree9e1dbc0a0844db663a0b10df0c7d00b6afdca7a7 /sound/pci
parentea265c0a433fda15fb69b9fd733e0ea4215c216e (diff)
[ALSA] es1968 - Fix conflict with ISA boards
Modules: ES1968 driver Fix disablement of TDMA and legacy support to prevent confliction of resources with ISA boards. Confirmed with Terratec DMX and CS4236. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/es1968.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/sound/pci/es1968.c b/sound/pci/es1968.c
index 240cf2b42054..9ffb600321cb 100644
--- a/sound/pci/es1968.c
+++ b/sound/pci/es1968.c
@@ -176,7 +176,7 @@ MODULE_PARM_DESC(joystick, "Enable joystick.");
176 176
177/* Values for the ESM_LEGACY_AUDIO_CONTROL */ 177/* Values for the ESM_LEGACY_AUDIO_CONTROL */
178 178
179#define ESS_ENABLE_AUDIO 0x8000 179#define ESS_DISABLE_AUDIO 0x8000
180#define ESS_ENABLE_SERIAL_IRQ 0x4000 180#define ESS_ENABLE_SERIAL_IRQ 0x4000
181#define IO_ADRESS_ALIAS 0x0020 181#define IO_ADRESS_ALIAS 0x0020
182#define MPU401_IRQ_ENABLE 0x0010 182#define MPU401_IRQ_ENABLE 0x0010
@@ -195,7 +195,7 @@ MODULE_PARM_DESC(joystick, "Enable joystick.");
195#define DMA_TDMA 0x0100 195#define DMA_TDMA 0x0100
196#define DMA_PCPCI 0x0200 196#define DMA_PCPCI 0x0200
197#define POST_WRITE 0x0080 197#define POST_WRITE 0x0080
198#define ISA_TIMING 0x0040 198#define PCI_TIMING 0x0040
199#define SWAP_LR 0x0020 199#define SWAP_LR 0x0020
200#define SUBTR_DECODE 0x0002 200#define SUBTR_DECODE 0x0002
201 201
@@ -2193,14 +2193,11 @@ static void snd_es1968_chip_init(struct es1968 *chip)
2193 /* Config Reg A */ 2193 /* Config Reg A */
2194 pci_read_config_word(pci, ESM_CONFIG_A, &w); 2194 pci_read_config_word(pci, ESM_CONFIG_A, &w);
2195 2195
2196 /* Use TDMA for now. TDMA works on all boards, so while its
2197 * not the most efficient its the simplest. */
2198 w &= ~DMA_CLEAR; /* Clear DMA bits */ 2196 w &= ~DMA_CLEAR; /* Clear DMA bits */
2199 w |= DMA_TDMA; /* TDMA on */
2200 w &= ~(PIC_SNOOP1 | PIC_SNOOP2); /* Clear Pic Snoop Mode Bits */ 2197 w &= ~(PIC_SNOOP1 | PIC_SNOOP2); /* Clear Pic Snoop Mode Bits */
2201 w &= ~SAFEGUARD; /* Safeguard off */ 2198 w &= ~SAFEGUARD; /* Safeguard off */
2202 w |= POST_WRITE; /* Posted write */ 2199 w |= POST_WRITE; /* Posted write */
2203 w |= ISA_TIMING; /* ISA timing on */ 2200 w |= PCI_TIMING; /* PCI timing on */
2204 /* XXX huh? claims to be reserved.. */ 2201 /* XXX huh? claims to be reserved.. */
2205 w &= ~SWAP_LR; /* swap left/right 2202 w &= ~SWAP_LR; /* swap left/right
2206 seems to only have effect on SB 2203 seems to only have effect on SB
@@ -2241,7 +2238,7 @@ static void snd_es1968_chip_init(struct es1968 *chip)
2241 2238
2242 pci_read_config_word(pci, ESM_LEGACY_AUDIO_CONTROL, &w); 2239 pci_read_config_word(pci, ESM_LEGACY_AUDIO_CONTROL, &w);
2243 2240
2244 w &= ~ESS_ENABLE_AUDIO; /* Disable Legacy Audio */ 2241 w |= ESS_DISABLE_AUDIO; /* Disable Legacy Audio */
2245 w &= ~ESS_ENABLE_SERIAL_IRQ; /* Disable SIRQ */ 2242 w &= ~ESS_ENABLE_SERIAL_IRQ; /* Disable SIRQ */
2246 w &= ~(0x1f); /* disable mpu irq/io, game port, fm, SB */ 2243 w &= ~(0x1f); /* disable mpu irq/io, game port, fm, SB */
2247 2244