|
@@ -1291,6 +1291,27 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7520_MCH, quir
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7320_MCH, quirk_pcie_mch );
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7320_MCH, quirk_pcie_mch );
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7525_MCH, quirk_pcie_mch );
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7525_MCH, quirk_pcie_mch );
|
|
|
|
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * It's possible for the MSI to get corrupted if shpc and acpi
|
|
|
|
+ * are used together on certain PXH-based systems.
|
|
|
|
+ */
|
|
|
|
+static void __devinit quirk_pcie_pxh(struct pci_dev *dev)
|
|
|
|
+{
|
|
|
|
+ disable_msi_mode(dev, pci_find_capability(dev, PCI_CAP_ID_MSI),
|
|
|
|
+ PCI_CAP_ID_MSI);
|
|
|
|
+ dev->no_msi = 1;
|
|
|
|
+
|
|
|
|
+ printk(KERN_WARNING "PCI: PXH quirk detected, "
|
|
|
|
+ "disabling MSI for SHPC device\n");
|
|
|
|
+}
|
|
|
|
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PXHD_0, quirk_pcie_pxh);
|
|
|
|
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PXHD_1, quirk_pcie_pxh);
|
|
|
|
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PXH_0, quirk_pcie_pxh);
|
|
|
|
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PXH_1, quirk_pcie_pxh);
|
|
|
|
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PXHV, quirk_pcie_pxh);
|
|
|
|
+
|
|
|
|
+
|
|
static void __devinit quirk_netmos(struct pci_dev *dev)
|
|
static void __devinit quirk_netmos(struct pci_dev *dev)
|
|
{
|
|
{
|
|
unsigned int num_parallel = (dev->subsystem_device & 0xf0) >> 4;
|
|
unsigned int num_parallel = (dev->subsystem_device & 0xf0) >> 4;
|