aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/pci-ecam.h
diff options
context:
space:
mode:
authorTomasz Nowicki <tn@semihalf.com>2016-09-09 21:24:04 +0200
committerBjorn Helgaas <helgaas@kernel.org>2016-12-06 13:45:48 -0600
commit5b69b85ba1ddd36be01f5c57830b37a3c8256009 (patch)
tree3b4c7adb6b95adde34d539322274895ebb43eff0 /include/linux/pci-ecam.h
parentPCI/ACPI: Extend pci_mcfg_lookup() to return ECAM config accessors (diff)
downloadlinux-dev-5b69b85ba1ddd36be01f5c57830b37a3c8256009.tar.xz
linux-dev-5b69b85ba1ddd36be01f5c57830b37a3c8256009.zip
PCI/ACPI: Check for platform-specific MCFG quirks
The PCIe spec (r3.0, sec 7.2.2) specifies an "Enhanced Configuration Access Mechanism" (ECAM) for memory-mapped access to configuration space. ECAM is required for PCIe systems unless there's a standard firmware interface for config access. In the absence of a firmware interface, we use pci_generic_ecam_ops, and on ACPI systems, we discover the ECAM space via the MCFG table and/or the _CBA method. Unfortunately some systems provide MCFG but don't implement ECAM according to spec, so we need a mechanism for quirks to make those systems work. Add an MCFG quirk mechanism to override the config accessor functions and/or the memory-mapped address space. A quirk is selected if it matches all of the following: - OEM ID - OEM Table ID - OEM Revision - PCI segment (from _SEG) - PCI bus number range (from _CRS, wildcard allowed) If the quirk specifies config accessor functions or a memory-mapped address range, these override the defaults. [bhelgaas: changelog, reorder quirk matching, fix oem_revision typo per Duc, add under #ifdef CONFIG_PCI_QUIRKS] Signed-off-by: Tomasz Nowicki <tn@semihalf.com> Signed-off-by: Dongdong Liu <liudongdong3@huawei.com> Signed-off-by: Christopher Covington <cov@codeaurora.org> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'include/linux/pci-ecam.h')
0 files changed, 0 insertions, 0 deletions