aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/pci-ecam.h
diff options
context:
space:
mode:
authorVidya Sagar <vidyas@nvidia.com>2021-04-16 19:15:37 +0530
committerBjorn Helgaas <bhelgaas@google.com>2021-04-16 11:34:17 -0500
commit7f100744749e4fe547dece3bb6557fae5f0a7252 (patch)
tree6d85f4a538f388d772f9a715b84434b8ca9e43dc /include/linux/pci-ecam.h
parentLinux 5.12-rc2 (diff)
downloadwireguard-linux-7f100744749e4fe547dece3bb6557fae5f0a7252.tar.xz
wireguard-linux-7f100744749e4fe547dece3bb6557fae5f0a7252.zip
PCI: tegra: Add Tegra194 MCFG quirks for ECAM errata
The PCIe controller in Tegra194 SoC is not ECAM-compliant. With the current hardware design, ECAM can be enabled only for one controller (the C5 controller) with bus numbers starting from 160 instead of 0. A different approach is taken to avoid this abnormal way of enabling ECAM for just one controller but to enable configuration space access for all the other controllers. In this approach, ops are added through MCFG quirk mechanism which access the configuration spaces by dynamically programming iATU (internal AddressTranslation Unit) to generate respective configuration accesses just like the way it is done in DesignWare core sub-system. This issue is specific to Tegra194 and it would be fixed in the future generations of Tegra SoCs. Link: https://lore.kernel.org/r/20210416134537.19474-1-vidyas@nvidia.com Signed-off-by: Vidya Sagar <vidyas@nvidia.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'include/linux/pci-ecam.h')
-rw-r--r--include/linux/pci-ecam.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/pci-ecam.h b/include/linux/pci-ecam.h
index 65d3d83015c3..fbdadd4d8377 100644
--- a/include/linux/pci-ecam.h
+++ b/include/linux/pci-ecam.h
@@ -85,6 +85,7 @@ extern const struct pci_ecam_ops pci_thunder_ecam_ops; /* Cavium ThunderX 1.x */
extern const struct pci_ecam_ops xgene_v1_pcie_ecam_ops; /* APM X-Gene PCIe v1 */
extern const struct pci_ecam_ops xgene_v2_pcie_ecam_ops; /* APM X-Gene PCIe v2.x */
extern const struct pci_ecam_ops al_pcie_ops; /* Amazon Annapurna Labs PCIe */
+extern const struct pci_ecam_ops tegra194_pcie_ops; /* Tegra194 PCIe */
#endif
#if IS_ENABLED(CONFIG_PCI_HOST_COMMON)