patch-2.4.5 linux/drivers/sound/ymfpci.c
Next file: linux/drivers/sound/ymfpci.h
Previous file: linux/drivers/sound/wavfront.c
Back to the patch index
Back to the overall index
- Lines: 46
- Date:
Sat May 19 17:47:55 2001
- Orig file:
v2.4.4/linux/drivers/sound/ymfpci.c
- Orig date:
Thu Apr 26 22:17:27 2001
diff -u --recursive --new-file v2.4.4/linux/drivers/sound/ymfpci.c linux/drivers/sound/ymfpci.c
@@ -989,11 +989,6 @@
status = ymfpci_readl(codec, YDSXGR_STATUS);
if (status & 0x80000000) {
- spin_lock(&codec->reg_lock);
- ymfpci_writel(codec, YDSXGR_STATUS, 0x80000000);
- mode = ymfpci_readl(codec, YDSXGR_MODE) | 2;
- ymfpci_writel(codec, YDSXGR_MODE, mode);
- spin_unlock(&codec->reg_lock);
codec->active_bank = ymfpci_readl(codec, YDSXGR_CTRLSELECT) & 1;
spin_lock(&codec->voice_lock);
for (nvoice = 0; nvoice < 64; nvoice++) {
@@ -1007,6 +1002,11 @@
ymf_cap_interrupt(codec, cap);
}
spin_unlock(&codec->voice_lock);
+ spin_lock(&codec->reg_lock);
+ ymfpci_writel(codec, YDSXGR_STATUS, 0x80000000);
+ mode = ymfpci_readl(codec, YDSXGR_MODE) | 2;
+ ymfpci_writel(codec, YDSXGR_MODE, mode);
+ spin_unlock(&codec->reg_lock);
}
status = ymfpci_readl(codec, YDSXGR_INTFLAG);
@@ -2059,9 +2059,10 @@
}
if (mpuio >= 0 || oplio >= 0) {
- v = 0x003e;
+ /* 0x0020: 1 - 10 bits of I/O address decoded, 0 - 16 bits. */
+ v = 0x001e;
pci_write_config_word(pcidev, PCIR_LEGCTRL, v);
-
+
switch (pcidev->device) {
case PCI_DEVICE_ID_YAMAHA_724:
case PCI_DEVICE_ID_YAMAHA_740:
@@ -2106,6 +2107,8 @@
pci_write_config_byte(pci, PCIR_DSXGCTRL, cmd | 0x03);
pci_write_config_byte(pci, PCIR_DSXGCTRL, cmd & 0xfc);
}
+ pci_write_config_word(pci, PCIR_DSXPWRCTRL1, 0);
+ pci_write_config_word(pci, PCIR_DSXPWRCTRL2, 0);
}
static void ymfpci_enable_dsp(ymfpci_t *codec)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)