]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/pci/host/pci-tegra.c
Merge branch 'pci/host-rockchip' into next
[karo-tx-linux.git] / drivers / pci / host / pci-tegra.c
index ed8a93f2bfb5fd4167f7362cddbc6eabe6dd85c8..0dadb81eca708a819f5bef85c744fe7e72e7f1b3 100644 (file)
@@ -380,7 +380,7 @@ static struct tegra_pcie_bus *tegra_pcie_bus_alloc(struct tegra_pcie *pcie,
                                                   unsigned int busnr)
 {
        struct device *dev = pcie->dev;
-       pgprot_t prot = pgprot_device(PAGE_KERNEL);
+       pgprot_t prot = pgprot_noncached(PAGE_KERNEL);
        phys_addr_t cs = pcie->cs->start;
        struct tegra_pcie_bus *bus;
        unsigned int i;
@@ -1962,7 +1962,7 @@ static int tegra_pcie_parse_dt(struct tegra_pcie *pcie)
                rp->pcie = pcie;
                rp->np = port;
 
-               rp->base = devm_ioremap_resource(dev, &rp->regs);
+               rp->base = devm_pci_remap_cfg_resource(dev, &rp->regs);
                if (IS_ERR(rp->base))
                        return PTR_ERR(rp->base);
 
@@ -2238,7 +2238,7 @@ static int tegra_pcie_probe(struct platform_device *pdev)
        struct pci_bus *child;
        int err;
 
-       host = pci_alloc_host_bridge(sizeof(*pcie));
+       host = devm_pci_alloc_host_bridge(dev, sizeof(*pcie));
        if (!host)
                return -ENOMEM;
 
@@ -2284,16 +2284,15 @@ static int tegra_pcie_probe(struct platform_device *pdev)
        host->busnr = pcie->busn.start;
        host->dev.parent = &pdev->dev;
        host->ops = &tegra_pcie_ops;
+       host->map_irq = tegra_pcie_map_irq;
+       host->swizzle_irq = pci_common_swizzle;
 
-       err = pci_register_host_bridge(host);
+       err = pci_scan_root_bus_bridge(host);
        if (err < 0) {
                dev_err(dev, "failed to register host: %d\n", err);
                goto disable_msi;
        }
 
-       pci_scan_child_bus(host->bus);
-
-       pci_fixup_irqs(pci_common_swizzle, tegra_pcie_map_irq);
        pci_bus_size_bridges(host->bus);
        pci_bus_assign_resources(host->bus);