summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLorenzo Pieralisi <lorenzo.pieralisi@arm.com>2017-04-19 12:49:06 -0400
committerBjorn Helgaas <bhelgaas@google.com>2017-04-24 14:53:17 -0400
commit3e02dc439b2bcb9911abb1632029a15590ba3b97 (patch)
tree5ea6d3a0b10a545e5aa97037a4eb13ab94cfab1f
parent26b758f775a368653b9ecb3f7c06b9ec34ccb1be (diff)
PCI: tegra: Update PCI config space remap function
PCI configuration space should be mapped with a memory region type that generates on the CPU host bus non-posted write transations. Update the driver to use correct memory mapping attributes to map config space regions to enforce configuration space non-posted writes behaviour. Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Cc: Thierry Reding <thierry.reding@gmail.com>
-rw-r--r--drivers/pci/host/pci-tegra.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/pci/host/pci-tegra.c b/drivers/pci/host/pci-tegra.c
index ed8a93f2bfb5..2618f875a600 100644
--- a/drivers/pci/host/pci-tegra.c
+++ b/drivers/pci/host/pci-tegra.c
@@ -380,7 +380,7 @@ static struct tegra_pcie_bus *tegra_pcie_bus_alloc(struct tegra_pcie *pcie,
380 unsigned int busnr) 380 unsigned int busnr)
381{ 381{
382 struct device *dev = pcie->dev; 382 struct device *dev = pcie->dev;
383 pgprot_t prot = pgprot_device(PAGE_KERNEL); 383 pgprot_t prot = pgprot_noncached(PAGE_KERNEL);
384 phys_addr_t cs = pcie->cs->start; 384 phys_addr_t cs = pcie->cs->start;
385 struct tegra_pcie_bus *bus; 385 struct tegra_pcie_bus *bus;
386 unsigned int i; 386 unsigned int i;
@@ -1962,7 +1962,7 @@ static int tegra_pcie_parse_dt(struct tegra_pcie *pcie)
1962 rp->pcie = pcie; 1962 rp->pcie = pcie;
1963 rp->np = port; 1963 rp->np = port;
1964 1964
1965 rp->base = devm_ioremap_resource(dev, &rp->regs); 1965 rp->base = devm_pci_remap_cfg_resource(dev, &rp->regs);
1966 if (IS_ERR(rp->base)) 1966 if (IS_ERR(rp->base))
1967 return PTR_ERR(rp->base); 1967 return PTR_ERR(rp->base);
1968 1968