diff options
Diffstat (limited to 'drivers/pci/quirks.c')
-rw-r--r-- | drivers/pci/quirks.c | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 4970f47be72c..c42ae2cf8d64 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c | |||
@@ -592,7 +592,7 @@ static void __init quirk_amd_8131_ioapic(struct pci_dev *dev) | |||
592 | pci_write_config_byte( dev, AMD8131_MISC, tmp); | 592 | pci_write_config_byte( dev, AMD8131_MISC, tmp); |
593 | } | 593 | } |
594 | } | 594 | } |
595 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8131_APIC, quirk_amd_8131_ioapic ); | 595 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8131_BRIDGE, quirk_amd_8131_ioapic); |
596 | 596 | ||
597 | static void __init quirk_svw_msi(struct pci_dev *dev) | 597 | static void __init quirk_svw_msi(struct pci_dev *dev) |
598 | { | 598 | { |
@@ -865,6 +865,35 @@ static void __init quirk_eisa_bridge(struct pci_dev *dev) | |||
865 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82375, quirk_eisa_bridge ); | 865 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82375, quirk_eisa_bridge ); |
866 | 866 | ||
867 | /* | 867 | /* |
868 | * On the MSI-K8T-Neo2Fir Board, the internal Soundcard is disabled | ||
869 | * when a PCI-Soundcard is added. The BIOS only gives Options | ||
870 | * "Disabled" and "AUTO". This Quirk Sets the corresponding | ||
871 | * Register-Value to enable the Soundcard. | ||
872 | */ | ||
873 | static void __init k8t_sound_hostbridge(struct pci_dev *dev) | ||
874 | { | ||
875 | unsigned char val; | ||
876 | |||
877 | printk(KERN_INFO "PCI: Quirk-MSI-K8T Soundcard On\n"); | ||
878 | pci_read_config_byte(dev, 0x50, &val); | ||
879 | if (val == 0x88 || val == 0xc8) { | ||
880 | pci_write_config_byte(dev, 0x50, val & (~0x40)); | ||
881 | |||
882 | /* Verify the Change for Status output */ | ||
883 | pci_read_config_byte(dev, 0x50, &val); | ||
884 | if (val & 0x40) | ||
885 | printk(KERN_INFO "PCI: MSI-K8T soundcard still off\n"); | ||
886 | else | ||
887 | printk(KERN_INFO "PCI: MSI-K8T soundcard on\n"); | ||
888 | } else { | ||
889 | printk(KERN_INFO "PCI: Unexpected Value in PCI-Register: " | ||
890 | "no Change!\n"); | ||
891 | } | ||
892 | |||
893 | } | ||
894 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8237, k8t_sound_hostbridge); | ||
895 | |||
896 | /* | ||
868 | * On ASUS P4B boards, the SMBus PCI Device within the ICH2/4 southbridge | 897 | * On ASUS P4B boards, the SMBus PCI Device within the ICH2/4 southbridge |
869 | * is not activated. The myth is that Asus said that they do not want the | 898 | * is not activated. The myth is that Asus said that they do not want the |
870 | * users to be irritated by just another PCI Device in the Win98 device | 899 | * users to be irritated by just another PCI Device in the Win98 device |
@@ -921,6 +950,7 @@ static void __init asus_hides_smbus_hostbridge(struct pci_dev *dev) | |||
921 | if (dev->device == PCI_DEVICE_ID_INTEL_82915GM_HB) { | 950 | if (dev->device == PCI_DEVICE_ID_INTEL_82915GM_HB) { |
922 | switch (dev->subsystem_device) { | 951 | switch (dev->subsystem_device) { |
923 | case 0x1882: /* M6V notebook */ | 952 | case 0x1882: /* M6V notebook */ |
953 | case 0x1977: /* A6VA notebook */ | ||
924 | asus_hides_smbus = 1; | 954 | asus_hides_smbus = 1; |
925 | } | 955 | } |
926 | } | 956 | } |
@@ -999,6 +1029,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801BA_0, asu | |||
999 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_12, asus_hides_smbus_lpc ); | 1029 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_12, asus_hides_smbus_lpc ); |
1000 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_12, asus_hides_smbus_lpc ); | 1030 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_12, asus_hides_smbus_lpc ); |
1001 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801EB_0, asus_hides_smbus_lpc ); | 1031 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801EB_0, asus_hides_smbus_lpc ); |
1032 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_1, asus_hides_smbus_lpc ); | ||
1002 | 1033 | ||
1003 | static void __init asus_hides_smbus_lpc_ich6(struct pci_dev *dev) | 1034 | static void __init asus_hides_smbus_lpc_ich6(struct pci_dev *dev) |
1004 | { | 1035 | { |