|
@@ -1074,6 +1074,37 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_651, quirk_sis_96x_
|
|
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_735, quirk_sis_96x_compatible );
|
|
|
|
|
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503, quirk_sis_503 );
|
|
|
+/*
|
|
|
+ * On ASUS A8V and A8V Deluxe boards, the onboard AC97 audio controller
|
|
|
+ * and MC97 modem controller are disabled when a second PCI soundcard is
|
|
|
+ * present. This patch, tweaking the VT8237 ISA bridge, enables them.
|
|
|
+ * -- bjd
|
|
|
+ */
|
|
|
+static void __init asus_hides_ac97_lpc(struct pci_dev *dev)
|
|
|
+{
|
|
|
+ u8 val;
|
|
|
+ int asus_hides_ac97 = 0;
|
|
|
+
|
|
|
+ if (likely(dev->subsystem_vendor == PCI_VENDOR_ID_ASUSTEK)) {
|
|
|
+ if (dev->device == PCI_DEVICE_ID_VIA_8237)
|
|
|
+ asus_hides_ac97 = 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!asus_hides_ac97)
|
|
|
+ return;
|
|
|
+
|
|
|
+ pci_read_config_byte(dev, 0x50, &val);
|
|
|
+ if (val & 0xc0) {
|
|
|
+ pci_write_config_byte(dev, 0x50, val & (~0xc0));
|
|
|
+ pci_read_config_byte(dev, 0x50, &val);
|
|
|
+ if (val & 0xc0)
|
|
|
+ printk(KERN_INFO "PCI: onboard AC97/MC97 devices continue to play 'hide and seek'! 0x%x\n", val);
|
|
|
+ else
|
|
|
+ printk(KERN_INFO "PCI: enabled onboard AC97/MC97 devices\n");
|
|
|
+ }
|
|
|
+}
|
|
|
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8237, asus_hides_ac97_lpc );
|
|
|
+
|
|
|
|
|
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_961, quirk_sis_96x_smbus );
|
|
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_962, quirk_sis_96x_smbus );
|