aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@suse.cz>2005-01-03 11:19:11 +0100
committerJaroslav Kysela <perex@suse.cz>2005-01-03 11:19:11 +0100
commitc89929238b2ab14ae162c8de6849589c8d50c33d (patch)
tree141162cbc1f60d13b25d03c488021e82d47fdd42 /sound
parentd392f6361a9a5993bb168f768f62c4381e4ecc0b (diff)
downloadhistory-c89929238b2ab14ae162c8de6849589c8d50c33d.tar.gz
[ALSA] disable legacy IRQs before request_irq() to avoid unhandled interrupts
VIA82xx driver Signed-off-by: Christian Koerner <ckoerner@sysgo.com> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/via82xx.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c
index 56727ae9676008..5e30ae3e44a976 100644
--- a/sound/pci/via82xx.c
+++ b/sound/pci/via82xx.c
@@ -1635,8 +1635,6 @@ static int snd_via8233_init_misc(via82xx_t *chip, int dev)
int i, err, caps;
unsigned char val;
- pci_write_config_byte(chip->pci, VIA_FUNC_ENABLE,
- chip->old_legacy & ~(VIA_FUNC_ENABLE_SB|VIA_FUNC_ENABLE_FM));
caps = chip->chip_type == TYPE_VIA8233A ? 1 : 2;
for (i = 0; i < caps; i++) {
snd_via8233_capture_source.index = i;
@@ -1673,7 +1671,6 @@ static int snd_via686_init_misc(via82xx_t *chip, int dev)
legacy_cfg = chip->old_legacy_cfg;
legacy |= VIA_FUNC_MIDI_IRQMASK; /* FIXME: correct? (disable MIDI) */
legacy &= ~VIA_FUNC_ENABLE_GAME; /* disable joystick */
- legacy &= ~(VIA_FUNC_ENABLE_SB|VIA_FUNC_ENABLE_FM); /* diable SB & FM */
if (chip->revision >= VIA_REV_686_H) {
rev_h = 1;
if (mpu_port[dev] >= 0x200) { /* force MIDI */
@@ -2025,6 +2022,8 @@ static int __devinit snd_via82xx_create(snd_card_t * card,
pci_read_config_byte(pci, VIA_FUNC_ENABLE, &chip->old_legacy);
pci_read_config_byte(pci, VIA_PNP_CONTROL, &chip->old_legacy_cfg);
+ pci_write_config_byte(chip->pci, VIA_FUNC_ENABLE,
+ chip->old_legacy & ~(VIA_FUNC_ENABLE_SB|VIA_FUNC_ENABLE_FM));
if ((err = pci_request_regions(pci, card->driver)) < 0) {
kfree(chip);