mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 20:32:04 +09:00
PCI: remove quirk for pre-production systems
commitb99af4b002upstream. Revert commit7eb93b175dAuthor: Yu Zhao <yu.zhao@intel.com> Date: Fri Apr 3 15:18:11 2009 +0800 PCI: SR-IOV quirk for Intel 82576 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. Please refer to Intel 82576 Gigabit Ethernet Controller Datasheet section 7.9.2.14.2 for details. http://download.intel.com/design/network/datashts/82576_Datasheet.pdf Signed-off-by: Yu Zhao <yu.zhao@intel.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> This quirk was added before SR-IOV was in production and now all machines that originally had this issue alreayd have bios updates to correct the issue. The quirk itself is no longer needed and in fact causes bugs if run. Remove it. Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> CC: Yu Zhao <yu.zhao@intel.com> CC: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
fa958081e1
commit
123079517f
@@ -2495,58 +2495,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 */
|
||||
|
||||
static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f,
|
||||
struct pci_fixup *end)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user