diff options
Diffstat (limited to 'drivers/pci/quirks.c')
-rw-r--r-- | drivers/pci/quirks.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index bd4253f93d5a..56552d74abea 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c | |||
@@ -1133,6 +1133,7 @@ static void __init asus_hides_smbus_hostbridge(struct pci_dev *dev) | |||
1133 | switch (dev->subsystem_device) { | 1133 | switch (dev->subsystem_device) { |
1134 | case 0x1751: /* M2N notebook */ | 1134 | case 0x1751: /* M2N notebook */ |
1135 | case 0x1821: /* M5N notebook */ | 1135 | case 0x1821: /* M5N notebook */ |
1136 | case 0x1897: /* A6L notebook */ | ||
1136 | asus_hides_smbus = 1; | 1137 | asus_hides_smbus = 1; |
1137 | } | 1138 | } |
1138 | else if (dev->device == PCI_DEVICE_ID_INTEL_82855PM_HB) | 1139 | else if (dev->device == PCI_DEVICE_ID_INTEL_82855PM_HB) |
@@ -1163,6 +1164,7 @@ static void __init asus_hides_smbus_hostbridge(struct pci_dev *dev) | |||
1163 | switch (dev->subsystem_device) { | 1164 | switch (dev->subsystem_device) { |
1164 | case 0x12bc: /* HP D330L */ | 1165 | case 0x12bc: /* HP D330L */ |
1165 | case 0x12bd: /* HP D530 */ | 1166 | case 0x12bd: /* HP D530 */ |
1167 | case 0x006a: /* HP Compaq nx9500 */ | ||
1166 | asus_hides_smbus = 1; | 1168 | asus_hides_smbus = 1; |
1167 | } | 1169 | } |
1168 | else if (dev->device == PCI_DEVICE_ID_INTEL_82875_HB) | 1170 | else if (dev->device == PCI_DEVICE_ID_INTEL_82875_HB) |
@@ -2016,6 +2018,28 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM, | |||
2016 | PCI_DEVICE_ID_NX2_5709S, | 2018 | PCI_DEVICE_ID_NX2_5709S, |
2017 | quirk_brcm_570x_limit_vpd); | 2019 | quirk_brcm_570x_limit_vpd); |
2018 | 2020 | ||
2021 | /* Originally in EDAC sources for i82875P: | ||
2022 | * Intel tells BIOS developers to hide device 6 which | ||
2023 | * configures the overflow device access containing | ||
2024 | * the DRBs - this is where we expose device 6. | ||
2025 | * http://www.x86-secret.com/articles/tweak/pat/patsecrets-2.htm | ||
2026 | */ | ||
2027 | static void __devinit quirk_unhide_mch_dev6(struct pci_dev *dev) | ||
2028 | { | ||
2029 | u8 reg; | ||
2030 | |||
2031 | if (pci_read_config_byte(dev, 0xF4, ®) == 0 && !(reg & 0x02)) { | ||
2032 | dev_info(&dev->dev, "Enabling MCH 'Overflow' Device\n"); | ||
2033 | pci_write_config_byte(dev, 0xF4, reg | 0x02); | ||
2034 | } | ||
2035 | } | ||
2036 | |||
2037 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82865_HB, | ||
2038 | quirk_unhide_mch_dev6); | ||
2039 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82875_HB, | ||
2040 | quirk_unhide_mch_dev6); | ||
2041 | |||
2042 | |||
2019 | #ifdef CONFIG_PCI_MSI | 2043 | #ifdef CONFIG_PCI_MSI |
2020 | /* Some chipsets do not support MSI. We cannot easily rely on setting | 2044 | /* Some chipsets do not support MSI. We cannot easily rely on setting |
2021 | * PCI_BUS_FLAGS_NO_MSI in its bus flags because there are actually | 2045 | * PCI_BUS_FLAGS_NO_MSI in its bus flags because there are actually |