|
@@ -2618,58 +2618,6 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4375,
|
|
|
|
|
|
#endif /* CONFIG_PCI_MSI */
|
|
|
|
|
|
-#ifdef CONFIG_PCI_IOV
|
|
|
-
|
|
|
-/*
|
|
|
- * For Intel 82576 SR-IOV NIC, if BIOS doesn't allocate resources for the
|
|
|
- * SR-IOV BARs, zero the Flash BAR and program the SR-IOV BARs to use the
|
|
|
- * old Flash Memory Space.
|
|
|
- */
|
|
|
-static void __devinit quirk_i82576_sriov(struct pci_dev *dev)
|
|
|
-{
|
|
|
- int pos, flags;
|
|
|
- u32 bar, start, size;
|
|
|
-
|
|
|
- if (PAGE_SIZE > 0x10000)
|
|
|
- return;
|
|
|
-
|
|
|
- flags = pci_resource_flags(dev, 0);
|
|
|
- if ((flags & PCI_BASE_ADDRESS_SPACE) !=
|
|
|
- PCI_BASE_ADDRESS_SPACE_MEMORY ||
|
|
|
- (flags & PCI_BASE_ADDRESS_MEM_TYPE_MASK) !=
|
|
|
- PCI_BASE_ADDRESS_MEM_TYPE_32)
|
|
|
- return;
|
|
|
-
|
|
|
- pos = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_SRIOV);
|
|
|
- if (!pos)
|
|
|
- return;
|
|
|
-
|
|
|
- pci_read_config_dword(dev, pos + PCI_SRIOV_BAR, &bar);
|
|
|
- if (bar & PCI_BASE_ADDRESS_MEM_MASK)
|
|
|
- return;
|
|
|
-
|
|
|
- start = pci_resource_start(dev, 1);
|
|
|
- size = pci_resource_len(dev, 1);
|
|
|
- if (!start || size != 0x400000 || start & (size - 1))
|
|
|
- return;
|
|
|
-
|
|
|
- pci_resource_flags(dev, 1) = 0;
|
|
|
- pci_write_config_dword(dev, PCI_BASE_ADDRESS_1, 0);
|
|
|
- pci_write_config_dword(dev, pos + PCI_SRIOV_BAR, start);
|
|
|
- pci_write_config_dword(dev, pos + PCI_SRIOV_BAR + 12, start + size / 2);
|
|
|
-
|
|
|
- dev_info(&dev->dev, "use Flash Memory Space for SR-IOV BARs\n");
|
|
|
-}
|
|
|
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x10c9, quirk_i82576_sriov);
|
|
|
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x10e6, quirk_i82576_sriov);
|
|
|
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x10e7, quirk_i82576_sriov);
|
|
|
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x10e8, quirk_i82576_sriov);
|
|
|
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x150a, quirk_i82576_sriov);
|
|
|
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x150d, quirk_i82576_sriov);
|
|
|
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1518, quirk_i82576_sriov);
|
|
|
-
|
|
|
-#endif /* CONFIG_PCI_IOV */
|
|
|
-
|
|
|
/* Allow manual resource allocation for PCI hotplug bridges
|
|
|
* via pci=hpmemsize=nnM and pci=hpiosize=nnM parameters. For
|
|
|
* some PCI-PCI hotplug bridges, like PLX 6254 (former HINT HB6),
|