diff options
author | Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> | 2017-04-19 12:49:07 -0400 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2017-04-24 14:53:17 -0400 |
commit | e313a447e73527ef99bd54bc58071956970ca491 (patch) | |
tree | ca54a6bfc224739fed75df2d29cc1dc2551f74ce | |
parent | 3e02dc439b2bcb9911abb1632029a15590ba3b97 (diff) |
PCI: hisi: 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 the devm_pci_remap_cfg* interface to make sure the correct
memory mappings for PCI configuration space are used.
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Gabriele Paoloni <gabriele.paoloni@huawei.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: Zhou Wang <wangzhou1@hisilicon.com>
-rw-r--r-- | drivers/pci/dwc/pcie-hisi.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/pci/dwc/pcie-hisi.c b/drivers/pci/dwc/pcie-hisi.c index fd66a3199db7..1606de5bf757 100644 --- a/drivers/pci/dwc/pcie-hisi.c +++ b/drivers/pci/dwc/pcie-hisi.c | |||
@@ -99,7 +99,7 @@ static int hisi_pcie_init(struct pci_config_window *cfg) | |||
99 | return -ENOMEM; | 99 | return -ENOMEM; |
100 | } | 100 | } |
101 | 101 | ||
102 | reg_base = devm_ioremap(dev, res->start, resource_size(res)); | 102 | reg_base = devm_pci_remap_cfgspace(dev, res->start, resource_size(res)); |
103 | if (!reg_base) | 103 | if (!reg_base) |
104 | return -ENOMEM; | 104 | return -ENOMEM; |
105 | 105 | ||
@@ -296,10 +296,9 @@ static int hisi_pcie_probe(struct platform_device *pdev) | |||
296 | } | 296 | } |
297 | 297 | ||
298 | reg = platform_get_resource_byname(pdev, IORESOURCE_MEM, "rc_dbi"); | 298 | reg = platform_get_resource_byname(pdev, IORESOURCE_MEM, "rc_dbi"); |
299 | pci->dbi_base = devm_ioremap_resource(dev, reg); | 299 | pci->dbi_base = devm_pci_remap_cfg_resource(dev, reg); |
300 | if (IS_ERR(pci->dbi_base)) | 300 | if (IS_ERR(pci->dbi_base)) |
301 | return PTR_ERR(pci->dbi_base); | 301 | return PTR_ERR(pci->dbi_base); |
302 | |||
303 | platform_set_drvdata(pdev, hisi_pcie); | 302 | platform_set_drvdata(pdev, hisi_pcie); |
304 | 303 | ||
305 | ret = hisi_add_pcie_port(hisi_pcie, pdev); | 304 | ret = hisi_add_pcie_port(hisi_pcie, pdev); |
@@ -360,7 +359,7 @@ static int hisi_pcie_platform_init(struct pci_config_window *cfg) | |||
360 | return -EINVAL; | 359 | return -EINVAL; |
361 | } | 360 | } |
362 | 361 | ||
363 | reg_base = devm_ioremap(dev, res->start, resource_size(res)); | 362 | reg_base = devm_pci_remap_cfgspace(dev, res->start, resource_size(res)); |
364 | if (!reg_base) | 363 | if (!reg_base) |
365 | return -ENOMEM; | 364 | return -ENOMEM; |
366 | 365 | ||