diff options
author | Rene Herman <rene.herman@keyaccess.nl> | 2005-12-14 05:57:27 -0500 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2006-01-03 06:30:54 -0500 |
commit | 607da7f834592a723797b21c2463507a44d9cfa7 (patch) | |
tree | 9e1dbc0a0844db663a0b10df0c7d00b6afdca7a7 /sound/pci/es1968.c | |
parent | ea265c0a433fda15fb69b9fd733e0ea4215c216e (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/es1968.c')
-rw-r--r-- | sound/pci/es1968.c | 11 |
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 | ||