summaryrefslogtreecommitdiff
path: root/drivers/pci/pci_tegra.c
diff options
context:
space:
mode:
authorPali Rohár <pali@kernel.org>2021-11-26 13:42:46 +0300
committerTom Rini <trini@konsulko.com>2022-01-12 22:21:24 +0300
commit86be29e9d985b57e03e2eede6394e0c1edc6660a (patch)
tree29460a4f642e849852a22260f9f14236ae15b8db /drivers/pci/pci_tegra.c
parentd0dd49f92937f7aa76231908aafbf21f55dc5376 (diff)
downloadu-boot-86be29e9d985b57e03e2eede6394e0c1edc6660a.tar.xz
pci: tegra: Use PCI_CONF1_EXT_ADDRESS() macro
PCI tegra driver uses extended format of Config Address for PCI Configuration Mechanism #1 but with cleared Enable bit. So use new U-Boot macro PCI_CONF1_EXT_ADDRESS() with clearing PCI_CONF1_ENABLE bit and remove old custom driver address function. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/pci/pci_tegra.c')
-rw-r--r--drivers/pci/pci_tegra.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/drivers/pci/pci_tegra.c b/drivers/pci/pci_tegra.c
index 9cb4414836..fc05ee00f1 100644
--- a/drivers/pci/pci_tegra.c
+++ b/drivers/pci/pci_tegra.c
@@ -275,13 +275,6 @@ static void rp_writel(struct tegra_pcie_port *port, unsigned long value,
writel(value, port->regs.start + offset);
}
-static unsigned long tegra_pcie_conf_offset(pci_dev_t bdf, int where)
-{
- return ((where & 0xf00) << 16) | (PCI_BUS(bdf) << 16) |
- (PCI_DEV(bdf) << 11) | (PCI_FUNC(bdf) << 8) |
- (where & 0xfc);
-}
-
static int tegra_pcie_conf_address(struct tegra_pcie *pcie, pci_dev_t bdf,
int where, unsigned long *address)
{
@@ -305,7 +298,9 @@ static int tegra_pcie_conf_address(struct tegra_pcie *pcie, pci_dev_t bdf,
return -EFAULT;
#endif
- *address = pcie->cs.start + tegra_pcie_conf_offset(bdf, where);
+ *address = pcie->cs.start +
+ (PCI_CONF1_EXT_ADDRESS(PCI_BUS(bdf), PCI_DEV(bdf),
+ PCI_FUNC(bdf), where) & ~PCI_CONF1_ENABLE);
return 0;
}
}