]> Git Repo - linux.git/commitdiff
Merge branch 'pci/irq-error'
authorBjorn Helgaas <[email protected]>
Wed, 5 Aug 2020 23:24:22 +0000 (18:24 -0500)
committerBjorn Helgaas <[email protected]>
Wed, 5 Aug 2020 23:24:22 +0000 (18:24 -0500)
- Remove redundant logging for platform_get_irq() errors (Krzysztof
  WilczyƄski)

* pci/irq-error:
  PCI: Remove dev_err() when handing an error from platform_get_irq()

16 files changed:
1  2 
drivers/pci/controller/dwc/pci-dra7xx.c
drivers/pci/controller/dwc/pci-exynos.c
drivers/pci/controller/dwc/pci-imx6.c
drivers/pci/controller/dwc/pci-keystone.c
drivers/pci/controller/dwc/pcie-armada8k.c
drivers/pci/controller/dwc/pcie-artpec6.c
drivers/pci/controller/dwc/pcie-histb.c
drivers/pci/controller/dwc/pcie-kirin.c
drivers/pci/controller/dwc/pcie-spear13xx.c
drivers/pci/controller/mobiveil/pcie-mobiveil-host.c
drivers/pci/controller/pci-tegra.c
drivers/pci/controller/pci-v3-semi.c
drivers/pci/controller/pcie-altera-msi.c
drivers/pci/controller/pcie-altera.c
drivers/pci/controller/pcie-rockchip-host.c
drivers/pci/controller/pcie-xilinx-nwl.c

index 5fda5f4d68b1092c98da9c2cd11abbfb7984b68a,66465dd698584edcafbe68f86d65bd9ebfe612a1..dc387724cf08fe74f0a2d1c15c116e7fffa8e232
@@@ -2,7 -2,7 +2,7 @@@
  /*
   * pcie-dra7xx - PCIe controller driver for TI DRA7xx SoCs
   *
 - * Copyright (C) 2013-2014 Texas Instruments Incorporated - http://www.ti.com
 + * Copyright (C) 2013-2014 Texas Instruments Incorporated - https://www.ti.com
   *
   * Authors: Kishon Vijay Abraham I <[email protected]>
   */
@@@ -593,12 -593,13 +593,12 @@@ static int __init dra7xx_add_pcie_ep(st
        ep = &pci->ep;
        ep->ops = &pcie_ep_ops;
  
 -      res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ep_dbics");
 -      pci->dbi_base = devm_ioremap_resource(dev, res);
 +      pci->dbi_base = devm_platform_ioremap_resource_byname(pdev, "ep_dbics");
        if (IS_ERR(pci->dbi_base))
                return PTR_ERR(pci->dbi_base);
  
 -      res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ep_dbics2");
 -      pci->dbi_base2 = devm_ioremap_resource(dev, res);
 +      pci->dbi_base2 =
 +              devm_platform_ioremap_resource_byname(pdev, "ep_dbics2");
        if (IS_ERR(pci->dbi_base2))
                return PTR_ERR(pci->dbi_base2);
  
@@@ -625,18 -626,18 +625,16 @@@ static int __init dra7xx_add_pcie_port(
        struct dw_pcie *pci = dra7xx->pci;
        struct pcie_port *pp = &pci->pp;
        struct device *dev = pci->dev;
 -      struct resource *res;
  
        pp->irq = platform_get_irq(pdev, 1);
-       if (pp->irq < 0) {
-               dev_err(dev, "missing IRQ resource\n");
+       if (pp->irq < 0)
                return pp->irq;
-       }
  
        ret = dra7xx_pcie_init_irq_domain(pp);
        if (ret < 0)
                return ret;
  
 -      res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "rc_dbics");
 -      pci->dbi_base = devm_ioremap_resource(dev, res);
 +      pci->dbi_base = devm_platform_ioremap_resource_byname(pdev, "rc_dbics");
        if (IS_ERR(pci->dbi_base))
                return PTR_ERR(pci->dbi_base);
  
@@@ -868,10 -869,8 +866,8 @@@ static int __init dra7xx_pcie_probe(str
        pci->ops = &dw_pcie_ops;
  
        irq = platform_get_irq(pdev, 0);
-       if (irq < 0) {
-               dev_err(dev, "missing IRQ resource: %d\n", irq);
+       if (irq < 0)
                return irq;
-       }
  
        base = devm_platform_ioremap_resource_byname(pdev, "ti_conf");
        if (IS_ERR(base))
        return 0;
  
  err_gpio:
 -      pm_runtime_put(dev);
 -
  err_get_sync:
 +      pm_runtime_put(dev);
        pm_runtime_disable(dev);
        dra7xx_pcie_disable_phy(dra7xx);
  
index 5b136a59938d03a4605763fa4e0a856c9b9248df,f721fddc521e6f5d9d8fabd2a0b46b5fbb019961..8d82c43ae299845770c704bfca2385b74a3b8c76
@@@ -3,7 -3,7 +3,7 @@@
   * PCIe host controller driver for Samsung Exynos SoCs
   *
   * Copyright (C) 2013 Samsung Electronics Co., Ltd.
 - *            http://www.samsung.com
 + *            https://www.samsung.com
   *
   * Author: Jingoo Han <[email protected]>
   */
@@@ -84,12 -84,14 +84,12 @@@ static int exynos5440_pcie_get_mem_reso
  {
        struct dw_pcie *pci = ep->pci;
        struct device *dev = pci->dev;
 -      struct resource *res;
  
        ep->mem_res = devm_kzalloc(dev, sizeof(*ep->mem_res), GFP_KERNEL);
        if (!ep->mem_res)
                return -ENOMEM;
  
 -      res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 -      ep->mem_res->elbi_base = devm_ioremap_resource(dev, res);
 +      ep->mem_res->elbi_base = devm_platform_ioremap_resource(pdev, 0);
        if (IS_ERR(ep->mem_res->elbi_base))
                return PTR_ERR(ep->mem_res->elbi_base);
  
@@@ -400,10 -402,9 +400,9 @@@ static int __init exynos_add_pcie_port(
        int ret;
  
        pp->irq = platform_get_irq(pdev, 1);
-       if (pp->irq < 0) {
-               dev_err(dev, "failed to get irq\n");
+       if (pp->irq < 0)
                return pp->irq;
-       }
        ret = devm_request_irq(dev, pp->irq, exynos_pcie_irq_handler,
                                IRQF_SHARED, "exynos-pcie", ep);
        if (ret) {
  
        if (IS_ENABLED(CONFIG_PCI_MSI)) {
                pp->msi_irq = platform_get_irq(pdev, 0);
-               if (pp->msi_irq < 0) {
-                       dev_err(dev, "failed to get msi irq\n");
+               if (pp->msi_irq < 0)
                        return pp->msi_irq;
-               }
        }
  
        pp->ops = &exynos_pcie_host_ops;
index 12ac47178c91660131eee9c498c4000b0882ed50,aba0a1514a86dfd54b7bc4b52dd09bf3d5abf33b..90df28c7cb0cf0f225da68427214a81ed875790b
@@@ -3,7 -3,7 +3,7 @@@
   * PCIe host controller driver for Freescale i.MX6 SoCs
   *
   * Copyright (C) 2013 Kosagi
 - *            http://www.kosagi.com
 + *            https://www.kosagi.com
   *
   * Author: Sean Cross <[email protected]>
   */
@@@ -868,10 -868,8 +868,8 @@@ static int imx6_add_pcie_port(struct im
  
        if (IS_ENABLED(CONFIG_PCI_MSI)) {
                pp->msi_irq = platform_get_irq_byname(pdev, "msi");
-               if (pp->msi_irq < 0) {
-                       dev_err(dev, "failed to get MSI irq\n");
+               if (pp->msi_irq < 0)
                        return pp->msi_irq;
-               }
        }
  
        pp->ops = &imx6_pcie_host_ops;
@@@ -1269,7 -1267,7 +1267,7 @@@ static void imx6_pcie_quirk(struct pci_
        if (bus->dev.parent->parent->driver != &imx6_pcie_driver.driver)
                return;
  
 -      if (bus->number == pp->root_bus_nr) {
 +      if (pci_is_root_bus(bus)) {
                struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
                struct imx6_pcie *imx6_pcie = to_imx6_pcie(pci);
  
index d274c64d6799c9a0c1d60622bca96c82161332c4,99df9aeece1f2b5eb4d38ca6ff3699aded9e4f57..c8c9d6a75f17fc491f81cfec3a4f66bc3b0b9d24
@@@ -3,7 -3,7 +3,7 @@@
   * PCIe host controller driver for Texas Instruments Keystone SoCs
   *
   * Copyright (C) 2013-2014 Texas Instruments., Ltd.
 - *            http://www.ti.com
 + *            https://www.ti.com
   *
   * Author: Murali Karicheri <[email protected]>
   * Implementation based on pci-exynos.c and pcie-designware.c
@@@ -440,7 -440,7 +440,7 @@@ static int ks_pcie_rd_other_conf(struc
  
        reg = CFG_BUS(bus->number) | CFG_DEVICE(PCI_SLOT(devfn)) |
                CFG_FUNC(PCI_FUNC(devfn));
 -      if (bus->parent->number != pp->root_bus_nr)
 +      if (!pci_is_root_bus(bus->parent))
                reg |= CFG_TYPE1;
        ks_pcie_app_writel(ks_pcie, CFG_SETUP, reg);
  
@@@ -457,7 -457,7 +457,7 @@@ static int ks_pcie_wr_other_conf(struc
  
        reg = CFG_BUS(bus->number) | CFG_DEVICE(PCI_SLOT(devfn)) |
                CFG_FUNC(PCI_FUNC(devfn));
 -      if (bus->parent->number != pp->root_bus_nr)
 +      if (!pci_is_root_bus(bus->parent))
                reg |= CFG_TYPE1;
        ks_pcie_app_writel(ks_pcie, CFG_SETUP, reg);
  
@@@ -1250,10 -1250,8 +1250,8 @@@ static int __init ks_pcie_probe(struct 
        pci->version = version;
  
        irq = platform_get_irq(pdev, 0);
-       if (irq < 0) {
-               dev_err(dev, "missing IRQ resource: %d\n", irq);
+       if (irq < 0)
                return irq;
-       }
  
        ret = request_irq(irq, ks_pcie_err_irq_handler, IRQF_SHARED,
                          "ks-pcie-error-irq", ks_pcie);
        }
  
        if (pci->version >= 0x480A) {
 -              res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "atu");
 -              atu_base = devm_ioremap_resource(dev, res);
 +              atu_base = devm_platform_ioremap_resource_byname(pdev, "atu");
                if (IS_ERR(atu_base)) {
                        ret = PTR_ERR(atu_base);
                        goto err_get_sync;
index 896b95d6917cf7e75fd610461979058e33e9c54f,66ec21cd9487fc8b398e6ea1f4099127c010604a..13901f359a415876222920e629fdfda3baa40205
@@@ -248,10 -248,8 +248,8 @@@ static int armada8k_add_pcie_port(struc
        pp->ops = &armada8k_pcie_host_ops;
  
        pp->irq = platform_get_irq(pdev, 0);
-       if (pp->irq < 0) {
-               dev_err(dev, "failed to get irq for port\n");
+       if (pp->irq < 0)
                return pp->irq;
-       }
  
        ret = devm_request_irq(dev, pp->irq, armada8k_pcie_irq_handler,
                               IRQF_SHARED, "armada8k-pcie", pcie);
@@@ -317,6 -315,7 +315,6 @@@ static int armada8k_pcie_probe(struct p
        base = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ctrl");
        pci->dbi_base = devm_pci_remap_cfg_resource(dev, base);
        if (IS_ERR(pci->dbi_base)) {
 -              dev_err(dev, "couldn't remap regs base %p\n", base);
                ret = PTR_ERR(pci->dbi_base);
                goto fail_clkreg;
        }
index 7d2cfa288b0155a6d6d154716265b33674b2802a,d429bd2b2406623550d9ae01064f27a309e9c131..97d50bb50f06b3244414ef10768e01494d57275e
@@@ -387,10 -387,8 +387,8 @@@ static int artpec6_add_pcie_port(struc
  
        if (IS_ENABLED(CONFIG_PCI_MSI)) {
                pp->msi_irq = platform_get_irq_byname(pdev, "msi");
-               if (pp->msi_irq < 0) {
-                       dev_err(dev, "failed to get MSI irq\n");
+               if (pp->msi_irq < 0)
                        return pp->msi_irq;
-               }
        }
  
        pp->ops = &artpec6_pcie_host_ops;
@@@ -455,7 -453,8 +453,7 @@@ static int artpec6_add_pcie_ep(struct a
        ep = &pci->ep;
        ep->ops = &pcie_ep_ops;
  
 -      res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dbi2");
 -      pci->dbi_base2 = devm_ioremap_resource(dev, res);
 +      pci->dbi_base2 = devm_platform_ioremap_resource_byname(pdev, "dbi2");
        if (IS_ERR(pci->dbi_base2))
                return PTR_ERR(pci->dbi_base2);
  
@@@ -480,6 -479,8 +478,6 @@@ static int artpec6_pcie_probe(struct pl
        struct device *dev = &pdev->dev;
        struct dw_pcie *pci;
        struct artpec6_pcie *artpec6_pcie;
 -      struct resource *dbi_base;
 -      struct resource *phy_base;
        int ret;
        const struct of_device_id *match;
        const struct artpec_pcie_of_data *data;
        artpec6_pcie->variant = variant;
        artpec6_pcie->mode = mode;
  
 -      dbi_base = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dbi");
 -      pci->dbi_base = devm_ioremap_resource(dev, dbi_base);
 +      pci->dbi_base = devm_platform_ioremap_resource_byname(pdev, "dbi");
        if (IS_ERR(pci->dbi_base))
                return PTR_ERR(pci->dbi_base);
  
 -      phy_base = platform_get_resource_byname(pdev, IORESOURCE_MEM, "phy");
 -      artpec6_pcie->phy_base = devm_ioremap_resource(dev, phy_base);
 +      artpec6_pcie->phy_base =
 +              devm_platform_ioremap_resource_byname(pdev, "phy");
        if (IS_ERR(artpec6_pcie->phy_base))
                return PTR_ERR(artpec6_pcie->phy_base);
  
index 6d3524c39a9bb0d8116f16847f6af1c2c8131948,006437eadc314b6896041259e51d86b148b5d98a..2a28357460775fc7171569fa999c8615fed72836
@@@ -304,6 -304,7 +304,6 @@@ static int histb_pcie_probe(struct plat
        struct histb_pcie *hipcie;
        struct dw_pcie *pci;
        struct pcie_port *pp;
 -      struct resource *res;
        struct device_node *np = pdev->dev.of_node;
        struct device *dev = &pdev->dev;
        enum of_gpio_flags of_flags;
        pci->dev = dev;
        pci->ops = &dw_pcie_ops;
  
 -      res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "control");
 -      hipcie->ctrl = devm_ioremap_resource(dev, res);
 +      hipcie->ctrl = devm_platform_ioremap_resource_byname(pdev, "control");
        if (IS_ERR(hipcie->ctrl)) {
                dev_err(dev, "cannot get control reg base\n");
                return PTR_ERR(hipcie->ctrl);
        }
  
 -      res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "rc-dbi");
 -      pci->dbi_base = devm_ioremap_resource(dev, res);
 +      pci->dbi_base = devm_platform_ioremap_resource_byname(pdev, "rc-dbi");
        if (IS_ERR(pci->dbi_base)) {
                dev_err(dev, "cannot get rc-dbi base\n");
                return PTR_ERR(pci->dbi_base);
  
        if (IS_ENABLED(CONFIG_PCI_MSI)) {
                pp->msi_irq = platform_get_irq_byname(pdev, "msi");
-               if (pp->msi_irq < 0) {
-                       dev_err(dev, "Failed to get MSI IRQ\n");
+               if (pp->msi_irq < 0)
                        return pp->msi_irq;
-               }
        }
  
        hipcie->phy = devm_phy_get(dev, "phy");
index 9adaa65c581febb0c49cde1bf949d57dc11eb4e0,2e0181ce68957b4d3505f542dff8d5e5fd43af71..e496f51e015275d654126af8b4f8f8b6e2a7fd5b
@@@ -3,7 -3,7 +3,7 @@@
   * PCIe host controller driver for Kirin Phone SoCs
   *
   * Copyright (C) 2017 HiSilicon Electronics Co., Ltd.
 - *            http://www.huawei.com
 + *            https://www.huawei.com
   *
   * Author: Xiaowei Song <[email protected]>
   */
@@@ -147,18 -147,23 +147,18 @@@ static long kirin_pcie_get_clk(struct k
  static long kirin_pcie_get_resource(struct kirin_pcie *kirin_pcie,
                                    struct platform_device *pdev)
  {
 -      struct device *dev = &pdev->dev;
 -      struct resource *apb;
 -      struct resource *phy;
 -      struct resource *dbi;
 -
 -      apb = platform_get_resource_byname(pdev, IORESOURCE_MEM, "apb");
 -      kirin_pcie->apb_base = devm_ioremap_resource(dev, apb);
 +      kirin_pcie->apb_base =
 +              devm_platform_ioremap_resource_byname(pdev, "apb");
        if (IS_ERR(kirin_pcie->apb_base))
                return PTR_ERR(kirin_pcie->apb_base);
  
 -      phy = platform_get_resource_byname(pdev, IORESOURCE_MEM, "phy");
 -      kirin_pcie->phy_base = devm_ioremap_resource(dev, phy);
 +      kirin_pcie->phy_base =
 +              devm_platform_ioremap_resource_byname(pdev, "phy");
        if (IS_ERR(kirin_pcie->phy_base))
                return PTR_ERR(kirin_pcie->phy_base);
  
 -      dbi = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dbi");
 -      kirin_pcie->pci->dbi_base = devm_ioremap_resource(dev, dbi);
 +      kirin_pcie->pci->dbi_base =
 +              devm_platform_ioremap_resource_byname(pdev, "dbi");
        if (IS_ERR(kirin_pcie->pci->dbi_base))
                return PTR_ERR(kirin_pcie->pci->dbi_base);
  
@@@ -450,11 -455,8 +450,8 @@@ static int kirin_pcie_add_msi(struct dw
  
        if (IS_ENABLED(CONFIG_PCI_MSI)) {
                irq = platform_get_irq(pdev, 0);
-               if (irq < 0) {
-                       dev_err(&pdev->dev,
-                               "failed to get MSI IRQ (%d)\n", irq);
+               if (irq < 0)
                        return irq;
-               }
  
                pci->pp.msi_irq = irq;
        }
index cdfde1bd7d8e5f8dedca07f32204cade385386b8,ad5d08d199268064c9fec9f02787aa57e0d24113..62846562da0b122174d5f0813da189e9726c7042
@@@ -198,10 -198,9 +198,9 @@@ static int spear13xx_add_pcie_port(stru
        int ret;
  
        pp->irq = platform_get_irq(pdev, 0);
-       if (pp->irq < 0) {
-               dev_err(dev, "failed to get irq\n");
+       if (pp->irq < 0)
                return pp->irq;
-       }
        ret = devm_request_irq(dev, pp->irq, spear13xx_pcie_irq_handler,
                               IRQF_SHARED | IRQF_NO_THREAD,
                               "spear1340-pcie", spear13xx_pcie);
@@@ -273,6 -272,7 +272,6 @@@ static int spear13xx_pcie_probe(struct 
        dbi_base = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dbi");
        pci->dbi_base = devm_pci_remap_cfg_resource(dev, dbi_base);
        if (IS_ERR(pci->dbi_base)) {
 -              dev_err(dev, "couldn't remap dbi base %p\n", dbi_base);
                ret = PTR_ERR(pci->dbi_base);
                goto fail_clk;
        }
index 33ab36d73906e172848a8729269d666f52791858,fa321fcdd4bc8097a5f3be48098f47d852aeb1a8..3adec419a45b1e18cafa7c2517d4728d36d595c4
  
  static bool mobiveil_pcie_valid_device(struct pci_bus *bus, unsigned int devfn)
  {
 -      struct mobiveil_pcie *pcie = bus->sysdata;
 -      struct mobiveil_root_port *rp = &pcie->rp;
 -
        /* Only one device down on each root port */
 -      if ((bus->number == rp->root_bus_nr) && (devfn > 0))
 +      if (pci_is_root_bus(bus) && (devfn > 0))
                return false;
  
        /*
         * Do not read more than one device on the bus directly
         * attached to RC
         */
 -      if ((bus->primary == rp->root_bus_nr) && (PCI_SLOT(devfn) > 0))
 +      if ((bus->primary == to_pci_host_bridge(bus->bridge)->busnr) && (PCI_SLOT(devfn) > 0))
                return false;
  
        return true;
@@@ -58,7 -61,7 +58,7 @@@ static void __iomem *mobiveil_pcie_map_
                return NULL;
  
        /* RC config access */
 -      if (bus->number == rp->root_bus_nr)
 +      if (pci_is_root_bus(bus))
                return pcie->csr_axi_slave_base + where;
  
        /*
@@@ -519,10 -522,8 +519,8 @@@ static int mobiveil_pcie_integrated_int
        mobiveil_pcie_enable_msi(pcie);
  
        rp->irq = platform_get_irq(pdev, 0);
-       if (rp->irq < 0) {
-               dev_err(dev, "failed to map IRQ: %d\n", rp->irq);
+       if (rp->irq < 0)
                return rp->irq;
-       }
  
        /* initialize the IRQ domains */
        ret = mobiveil_pcie_init_irq_domain(pcie);
@@@ -566,6 -567,8 +564,6 @@@ int mobiveil_pcie_host_probe(struct mob
        struct mobiveil_root_port *rp = &pcie->rp;
        struct pci_host_bridge *bridge = rp->bridge;
        struct device *dev = &pcie->pdev->dev;
 -      struct pci_bus *bus;
 -      struct pci_bus *child;
        int ret;
  
        ret = mobiveil_pcie_parse_dt(pcie);
        if (!mobiveil_pcie_is_bridge(pcie))
                return -ENODEV;
  
 -      /* parse the host bridge base addresses from the device tree file */
 -      ret = pci_parse_request_of_pci_ranges(dev, &bridge->windows,
 -                                            &bridge->dma_ranges, NULL);
 -      if (ret) {
 -              dev_err(dev, "Getting bridge resources failed\n");
 -              return ret;
 -      }
 -
        /*
         * configure all inbound and outbound windows and prepare the RC for
         * config access
        }
  
        /* Initialize bridge */
 -      bridge->dev.parent = dev;
        bridge->sysdata = pcie;
 -      bridge->busnr = rp->root_bus_nr;
        bridge->ops = &mobiveil_pcie_ops;
 -      bridge->map_irq = of_irq_parse_and_map_pci;
 -      bridge->swizzle_irq = pci_common_swizzle;
  
        ret = mobiveil_bringup_link(pcie);
        if (ret) {
                return ret;
        }
  
 -      /* setup the kernel resources for the newly added PCIe root bus */
 -      ret = pci_scan_root_bus_bridge(bridge);
 -      if (ret)
 -              return ret;
 -
 -      bus = bridge->bus;
 -
 -      pci_assign_unassigned_bus_resources(bus);
 -      list_for_each_entry(child, &bus->children, node)
 -              pcie_bus_configure_settings(child);
 -      pci_bus_add_devices(bus);
 -
 -      return 0;
 +      return pci_host_probe(bridge);
  }
index fdbcf0d6b9c34fe38ae798ce92eb933141ee33c8,b11397475a4da4efaf18cf08535e131699d6d735..c1d34353c29b9ac1217013215a2d142adc362631
  
  #define AFI_PEXBIAS_CTRL_0            0x168
  
 -#define RP_PRIV_XP_DL         0x00000494
 -#define  RP_PRIV_XP_DL_GEN2_UPD_FC_TSHOLD     (0x1ff << 1)
 -
 -#define RP_RX_HDR_LIMIT               0x00000e00
 -#define  RP_RX_HDR_LIMIT_PW_MASK      (0xff << 8)
 -#define  RP_RX_HDR_LIMIT_PW           (0x0e << 8)
 -
  #define RP_ECTL_2_R1  0x00000e84
  #define  RP_ECTL_2_R1_RX_CTLE_1C_MASK         0xffff
  
@@@ -316,6 -323,7 +316,6 @@@ struct tegra_pcie_soc 
        bool program_uphy;
        bool update_clamp_threshold;
        bool program_deskew_time;
 -      bool raw_violation_fixup;
        bool update_fc_timer;
        bool has_cache_bars;
        struct {
@@@ -651,6 -659,23 +651,6 @@@ static void tegra_pcie_apply_sw_fixup(s
                writel(value, port->base + RP_VEND_CTL0);
        }
  
 -      /* Fixup for read after write violation. */
 -      if (soc->raw_violation_fixup) {
 -              value = readl(port->base + RP_RX_HDR_LIMIT);
 -              value &= ~RP_RX_HDR_LIMIT_PW_MASK;
 -              value |= RP_RX_HDR_LIMIT_PW;
 -              writel(value, port->base + RP_RX_HDR_LIMIT);
 -
 -              value = readl(port->base + RP_PRIV_XP_DL);
 -              value |= RP_PRIV_XP_DL_GEN2_UPD_FC_TSHOLD;
 -              writel(value, port->base + RP_PRIV_XP_DL);
 -
 -              value = readl(port->base + RP_VEND_XP);
 -              value &= ~RP_VEND_XP_UPDATE_FC_THRESHOLD_MASK;
 -              value |= soc->update_fc_threshold;
 -              writel(value, port->base + RP_VEND_XP);
 -      }
 -
        if (soc->update_fc_timer) {
                value = readl(port->base + RP_VEND_XP);
                value &= ~RP_VEND_XP_UPDATE_FC_THRESHOLD_MASK;
@@@ -1437,7 -1462,7 +1437,7 @@@ static int tegra_pcie_get_resources(str
  {
        struct device *dev = pcie->dev;
        struct platform_device *pdev = to_platform_device(dev);
 -      struct resource *pads, *afi, *res;
 +      struct resource *res;
        const struct tegra_pcie_soc *soc = pcie->soc;
        int err;
  
                }
        }
  
 -      pads = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pads");
 -      pcie->pads = devm_ioremap_resource(dev, pads);
 +      pcie->pads = devm_platform_ioremap_resource_byname(pdev, "pads");
        if (IS_ERR(pcie->pads)) {
                err = PTR_ERR(pcie->pads);
                goto phys_put;
        }
  
 -      afi = platform_get_resource_byname(pdev, IORESOURCE_MEM, "afi");
 -      pcie->afi = devm_ioremap_resource(dev, afi);
 +      pcie->afi = devm_platform_ioremap_resource_byname(pdev, "afi");
        if (IS_ERR(pcie->afi)) {
                err = PTR_ERR(pcie->afi);
                goto phys_put;
  
        /* request interrupt */
        err = platform_get_irq_byname(pdev, "intr");
-       if (err < 0) {
-               dev_err(dev, "failed to get IRQ: %d\n", err);
+       if (err < 0)
                goto phys_put;
-       }
  
        pcie->irq = err;
  
@@@ -1711,10 -1736,8 +1709,8 @@@ static int tegra_pcie_msi_setup(struct 
        }
  
        err = platform_get_irq_byname(pdev, "msi");
-       if (err < 0) {
-               dev_err(dev, "failed to get IRQ: %d\n", err);
+       if (err < 0)
                goto free_irq_domain;
-       }
  
        msi->irq = err;
  
@@@ -1998,7 -2021,7 +1994,7 @@@ static int tegra_pcie_get_regulators(st
                pcie->supplies[i++].supply = "hvdd-pex";
                pcie->supplies[i++].supply = "vddio-pexctl-aud";
        } else if (of_device_is_compatible(np, "nvidia,tegra210-pcie")) {
 -              pcie->num_supplies = 6;
 +              pcie->num_supplies = 3;
  
                pcie->supplies = devm_kcalloc(pcie->dev, pcie->num_supplies,
                                              sizeof(*pcie->supplies),
                if (!pcie->supplies)
                        return -ENOMEM;
  
 -              pcie->supplies[i++].supply = "avdd-pll-uerefe";
                pcie->supplies[i++].supply = "hvddio-pex";
                pcie->supplies[i++].supply = "dvddio-pex";
 -              pcie->supplies[i++].supply = "dvdd-pex-pll";
 -              pcie->supplies[i++].supply = "hvdd-pex-pll-e";
                pcie->supplies[i++].supply = "vddio-pex-ctl";
        } else if (of_device_is_compatible(np, "nvidia,tegra124-pcie")) {
 -              pcie->num_supplies = 7;
 +              pcie->num_supplies = 4;
  
                pcie->supplies = devm_kcalloc(dev, pcie->num_supplies,
                                              sizeof(*pcie->supplies),
  
                pcie->supplies[i++].supply = "avddio-pex";
                pcie->supplies[i++].supply = "dvddio-pex";
 -              pcie->supplies[i++].supply = "avdd-pex-pll";
                pcie->supplies[i++].supply = "hvdd-pex";
 -              pcie->supplies[i++].supply = "hvdd-pex-pll-e";
                pcie->supplies[i++].supply = "vddio-pex-ctl";
 -              pcie->supplies[i++].supply = "avdd-pll-erefe";
        } else if (of_device_is_compatible(np, "nvidia,tegra30-pcie")) {
                bool need_pexa = false, need_pexb = false;
  
@@@ -2383,6 -2412,7 +2379,6 @@@ static const struct tegra_pcie_soc tegr
        .program_uphy = true,
        .update_clamp_threshold = false,
        .program_deskew_time = false,
 -      .raw_violation_fixup = false,
        .update_fc_timer = false,
        .has_cache_bars = true,
        .ectl.enable = false,
@@@ -2412,6 -2442,7 +2408,6 @@@ static const struct tegra_pcie_soc tegr
        .program_uphy = true,
        .update_clamp_threshold = false,
        .program_deskew_time = false,
 -      .raw_violation_fixup = false,
        .update_fc_timer = false,
        .has_cache_bars = false,
        .ectl.enable = false,
@@@ -2424,6 -2455,8 +2420,6 @@@ static const struct tegra_pcie_soc tegr
        .pads_pll_ctl = PADS_PLL_CTL_TEGRA30,
        .tx_ref_sel = PADS_PLL_CTL_TXCLKREF_BUF_EN,
        .pads_refclk_cfg0 = 0x44ac44ac,
 -      /* FC threshold is bit[25:18] */
 -      .update_fc_threshold = 0x03fc0000,
        .has_pex_clkreq_en = true,
        .has_pex_bias_ctrl = true,
        .has_intr_prsnt_sense = true,
        .program_uphy = true,
        .update_clamp_threshold = true,
        .program_deskew_time = false,
 -      .raw_violation_fixup = true,
        .update_fc_timer = false,
        .has_cache_bars = false,
        .ectl.enable = false,
@@@ -2456,6 -2490,7 +2452,6 @@@ static const struct tegra_pcie_soc tegr
        .program_uphy = true,
        .update_clamp_threshold = true,
        .program_deskew_time = true,
 -      .raw_violation_fixup = false,
        .update_fc_timer = true,
        .has_cache_bars = false,
        .ectl = {
@@@ -2497,6 -2532,7 +2493,6 @@@ static const struct tegra_pcie_soc tegr
        .program_uphy = false,
        .update_clamp_threshold = false,
        .program_deskew_time = false,
 -      .raw_violation_fixup = false,
        .update_fc_timer = false,
        .has_cache_bars = false,
        .ectl.enable = false,
@@@ -2630,6 -2666,8 +2626,6 @@@ static int tegra_pcie_probe(struct plat
        struct device *dev = &pdev->dev;
        struct pci_host_bridge *host;
        struct tegra_pcie *pcie;
 -      struct pci_bus *child;
 -      struct resource *bus;
        int err;
  
        host = devm_pci_alloc_host_bridge(dev, sizeof(*pcie));
        INIT_LIST_HEAD(&pcie->ports);
        pcie->dev = dev;
  
 -      err = pci_parse_request_of_pci_ranges(dev, &host->windows, NULL, &bus);
 -      if (err) {
 -              dev_err(dev, "Getting bridge resources failed\n");
 -              return err;
 -      }
 -
        err = tegra_pcie_parse_dt(pcie);
        if (err < 0)
                return err;
                goto pm_runtime_put;
        }
  
 -      host->busnr = bus->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_scan_root_bus_bridge(host);
 +      err = pci_host_probe(host);
        if (err < 0) {
                dev_err(dev, "failed to register host: %d\n", err);
                goto pm_runtime_put;
        }
  
 -      pci_bus_size_bridges(host->bus);
 -      pci_bus_assign_resources(host->bus);
 -
 -      list_for_each_entry(child, &host->bus->children, node)
 -              pcie_bus_configure_settings(child);
 -
 -      pci_bus_add_devices(host->bus);
 -
        if (IS_ENABLED(CONFIG_DEBUG_FS)) {
                err = tegra_pcie_debugfs_init(pcie);
                if (err < 0)
index a38a416bcf3b06e20e1843ba470400408a75aa8c,2a19f2a9894530581a9454251846cc5d1c9dcb47..1f54334f09f7a83a17a51dd5ef6f21081b4be3e7
@@@ -239,6 -239,7 +239,6 @@@ struct v3_pci 
        struct device *dev;
        void __iomem *base;
        void __iomem *config_base;
 -      struct pci_bus *bus;
        u32 config_mem;
        u32 non_pre_mem;
        u32 pre_mem;
@@@ -584,6 -585,8 +584,6 @@@ static int v3_pci_setup_resource(struc
                }
                break;
        case IORESOURCE_BUS:
 -              dev_dbg(dev, "BUS %pR\n", win->res);
 -              host->busnr = win->res->start;
                break;
        default:
                dev_info(dev, "Unknown resource type %lu\n",
@@@ -721,7 -724,12 +721,7 @@@ static int v3_pci_probe(struct platform
        if (!host)
                return -ENOMEM;
  
 -      host->dev.parent = dev;
        host->ops = &v3_pci_ops;
 -      host->busnr = 0;
 -      host->msi = NULL;
 -      host->map_irq = of_irq_parse_and_map_pci;
 -      host->swizzle_irq = pci_common_swizzle;
        v3 = pci_host_bridge_priv(host);
        host->sysdata = v3;
        v3->dev = dev;
        if (IS_ERR(v3->config_base))
                return PTR_ERR(v3->config_base);
  
 -      ret = pci_parse_request_of_pci_ranges(dev, &host->windows,
 -                                            &host->dma_ranges, NULL);
 -      if (ret)
 -              return ret;
 -
        /* Get and request error IRQ resource */
        irq = platform_get_irq(pdev, 0);
-       if (irq < 0) {
-               dev_err(dev, "unable to obtain PCIv3 error IRQ\n");
+       if (irq < 0)
                return irq;
-       }
        ret = devm_request_irq(dev, irq, v3_irq, 0,
                        "PCIv3 error", v3);
        if (ret < 0) {
        val |= V3_SYSTEM_M_LOCK;
        writew(val, v3->base + V3_SYSTEM);
  
 -      ret = pci_scan_root_bus_bridge(host);
 -      if (ret) {
 -              dev_err(dev, "failed to register host: %d\n", ret);
 -              return ret;
 -      }
 -      v3->bus = host->bus;
 -
 -      pci_bus_assign_resources(v3->bus);
 -      pci_bus_add_devices(v3->bus);
 -
 -      return 0;
 +      return pci_host_probe(host);
  }
  
  static const struct of_device_id v3_pci_of_match[] = {
index 613e19af71bd2d518a7bbff30bac75640eb7c64f,bec666eda1eb1488ca4f1cfc8a38b439bfc395b3..e1636f7714ca70cc1bfc7037a529904c5b12989f
@@@ -228,7 -228,8 +228,7 @@@ static int altera_msi_probe(struct plat
        mutex_init(&msi->lock);
        msi->pdev = pdev;
  
 -      res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "csr");
 -      msi->csr_base = devm_ioremap_resource(&pdev->dev, res);
 +      msi->csr_base = devm_platform_ioremap_resource_byname(pdev, "csr");
        if (IS_ERR(msi->csr_base)) {
                dev_err(&pdev->dev, "failed to map csr memory\n");
                return PTR_ERR(msi->csr_base);
  
        msi->irq = platform_get_irq(pdev, 0);
        if (msi->irq < 0) {
-               dev_err(&pdev->dev, "failed to map IRQ: %d\n", msi->irq);
                ret = msi->irq;
                goto err;
        }
index 70c04829b81996da583e3893f1de347f45d123ea,f6d73d282230f8911dfbe8286f092e5715d592b8..523bd928b380a4d2245582f48825e9731859f339
@@@ -694,26 -694,27 +694,23 @@@ static void altera_pcie_irq_teardown(st
  
  static int altera_pcie_parse_dt(struct altera_pcie *pcie)
  {
--      struct device *dev = &pcie->pdev->dev;
        struct platform_device *pdev = pcie->pdev;
 -      struct resource *cra;
 -      struct resource *hip;
  
 -      cra = platform_get_resource_byname(pdev, IORESOURCE_MEM, "Cra");
 -      pcie->cra_base = devm_ioremap_resource(dev, cra);
 +      pcie->cra_base = devm_platform_ioremap_resource_byname(pdev, "Cra");
        if (IS_ERR(pcie->cra_base))
                return PTR_ERR(pcie->cra_base);
  
        if (pcie->pcie_data->version == ALTERA_PCIE_V2) {
 -              hip = platform_get_resource_byname(pdev, IORESOURCE_MEM, "Hip");
 -              pcie->hip_base = devm_ioremap_resource(&pdev->dev, hip);
 +              pcie->hip_base =
 +                      devm_platform_ioremap_resource_byname(pdev, "Hip");
                if (IS_ERR(pcie->hip_base))
                        return PTR_ERR(pcie->hip_base);
        }
  
        /* setup IRQ */
        pcie->irq = platform_get_irq(pdev, 0);
-       if (pcie->irq < 0) {
-               dev_err(dev, "failed to get IRQ: %d\n", pcie->irq);
+       if (pcie->irq < 0)
                return pcie->irq;
-       }
  
        irq_set_chained_handler_and_data(pcie->irq, altera_pcie_isr, pcie);
        return 0;
@@@ -770,6 -771,8 +767,6 @@@ static int altera_pcie_probe(struct pla
  {
        struct device *dev = &pdev->dev;
        struct altera_pcie *pcie;
 -      struct pci_bus *bus;
 -      struct pci_bus *child;
        struct pci_host_bridge *bridge;
        int ret;
        const struct of_device_id *match;
                return ret;
        }
  
 -      ret = pci_parse_request_of_pci_ranges(dev, &bridge->windows,
 -                                            &bridge->dma_ranges, NULL);
 -      if (ret) {
 -              dev_err(dev, "Failed add resources\n");
 -              return ret;
 -      }
 -
        ret = altera_pcie_init_irq_domain(pcie);
        if (ret) {
                dev_err(dev, "Failed creating IRQ Domain\n");
        cra_writel(pcie, P2A_INT_ENA_ALL, P2A_INT_ENABLE);
        altera_pcie_host_init(pcie);
  
 -      bridge->dev.parent = dev;
        bridge->sysdata = pcie;
        bridge->busnr = pcie->root_bus_nr;
        bridge->ops = &altera_pcie_ops;
 -      bridge->map_irq = of_irq_parse_and_map_pci;
 -      bridge->swizzle_irq = pci_common_swizzle;
  
 -      ret = pci_scan_root_bus_bridge(bridge);
 -      if (ret < 0)
 -              return ret;
 -
 -      bus = bridge->bus;
 -
 -      pci_assign_unassigned_bus_resources(bus);
 -
 -      /* Configure PCI Express setting. */
 -      list_for_each_entry(child, &bus->children, node)
 -              pcie_bus_configure_settings(child);
 -
 -      pci_bus_add_devices(bus);
 -      return ret;
 +      return pci_host_probe(bridge);
  }
  
  static int altera_pcie_remove(struct platform_device *pdev)
index 153bc95ab29f8b39b78ed978f50c513451401445,eebe05ab354fd8ea7e492f617befd5c2603bcad1..0bb2fb3e8a0b72c2ec9e7da5df627b6c57926047
@@@ -72,14 -72,14 +72,14 @@@ static int rockchip_pcie_valid_device(s
                                      struct pci_bus *bus, int dev)
  {
        /* access only one slot on each root port */
 -      if (bus->number == rockchip->root_bus_nr && dev > 0)
 +      if (pci_is_root_bus(bus) && dev > 0)
                return 0;
  
        /*
         * do not read more than one device on the bus directly attached
         * to RC's downstream side.
         */
 -      if (bus->primary == rockchip->root_bus_nr && dev > 0)
 +      if (pci_is_root_bus(bus->parent) && dev > 0)
                return 0;
  
        return 1;
@@@ -170,7 -170,7 +170,7 @@@ static int rockchip_pcie_rd_other_conf(
                return PCIBIOS_BAD_REGISTER_NUMBER;
        }
  
 -      if (bus->parent->number == rockchip->root_bus_nr)
 +      if (pci_is_root_bus(bus->parent))
                rockchip_pcie_cfg_configuration_accesses(rockchip,
                                                AXI_WRAPPER_TYPE0_CFG);
        else
@@@ -201,7 -201,7 +201,7 @@@ static int rockchip_pcie_wr_other_conf(
        if (!IS_ALIGNED(busdev, size))
                return PCIBIOS_BAD_REGISTER_NUMBER;
  
 -      if (bus->parent->number == rockchip->root_bus_nr)
 +      if (pci_is_root_bus(bus->parent))
                rockchip_pcie_cfg_configuration_accesses(rockchip,
                                                AXI_WRAPPER_TYPE0_CFG);
        else
@@@ -230,7 -230,7 +230,7 @@@ static int rockchip_pcie_rd_conf(struc
                return PCIBIOS_DEVICE_NOT_FOUND;
        }
  
 -      if (bus->number == rockchip->root_bus_nr)
 +      if (pci_is_root_bus(bus))
                return rockchip_pcie_rd_own_conf(rockchip, where, size, val);
  
        return rockchip_pcie_rd_other_conf(rockchip, bus, devfn, where, size,
@@@ -245,7 -245,7 +245,7 @@@ static int rockchip_pcie_wr_conf(struc
        if (!rockchip_pcie_valid_device(rockchip, bus, PCI_SLOT(devfn)))
                return PCIBIOS_DEVICE_NOT_FOUND;
  
 -      if (bus->number == rockchip->root_bus_nr)
 +      if (pci_is_root_bus(bus))
                return rockchip_pcie_wr_own_conf(rockchip, where, size, val);
  
        return rockchip_pcie_wr_other_conf(rockchip, bus, devfn, where, size,
@@@ -549,10 -549,8 +549,8 @@@ static int rockchip_pcie_setup_irq(stru
        struct platform_device *pdev = to_platform_device(dev);
  
        irq = platform_get_irq_byname(pdev, "sys");
-       if (irq < 0) {
-               dev_err(dev, "missing sys IRQ resource\n");
+       if (irq < 0)
                return irq;
-       }
  
        err = devm_request_irq(dev, irq, rockchip_pcie_subsys_irq_handler,
                               IRQF_SHARED, "pcie-sys", rockchip);
        }
  
        irq = platform_get_irq_byname(pdev, "legacy");
-       if (irq < 0) {
-               dev_err(dev, "missing legacy IRQ resource\n");
+       if (irq < 0)
                return irq;
-       }
  
        irq_set_chained_handler_and_data(irq,
                                         rockchip_pcie_legacy_int_handler,
                                         rockchip);
  
        irq = platform_get_irq_byname(pdev, "client");
-       if (irq < 0) {
-               dev_err(dev, "missing client IRQ resource\n");
+       if (irq < 0)
                return irq;
-       }
  
        err = devm_request_irq(dev, irq, rockchip_pcie_client_irq_handler,
                               IRQF_SHARED, "pcie-client", rockchip);
@@@ -949,7 -943,9 +943,7 @@@ static int rockchip_pcie_probe(struct p
  {
        struct rockchip_pcie *rockchip;
        struct device *dev = &pdev->dev;
 -      struct pci_bus *bus, *child;
        struct pci_host_bridge *bridge;
 -      struct resource *bus_res;
        int err;
  
        if (!dev->of_node)
        if (err < 0)
                goto err_deinit_port;
  
 -      err = pci_parse_request_of_pci_ranges(dev, &bridge->windows,
 -                                            &bridge->dma_ranges, &bus_res);
 -      if (err)
 -              goto err_remove_irq_domain;
 -
 -      rockchip->root_bus_nr = bus_res->start;
 -
        err = rockchip_pcie_cfg_atu(rockchip);
        if (err)
                goto err_remove_irq_domain;
                goto err_remove_irq_domain;
        }
  
 -      bridge->dev.parent = dev;
        bridge->sysdata = rockchip;
 -      bridge->busnr = 0;
        bridge->ops = &rockchip_pcie_ops;
 -      bridge->map_irq = of_irq_parse_and_map_pci;
 -      bridge->swizzle_irq = pci_common_swizzle;
  
 -      err = pci_scan_root_bus_bridge(bridge);
 +      err = pci_host_probe(bridge);
        if (err < 0)
                goto err_remove_irq_domain;
  
 -      bus = bridge->bus;
 -
 -      rockchip->root_bus = bus;
 -
 -      pci_bus_size_bridges(bus);
 -      pci_bus_assign_resources(bus);
 -      list_for_each_entry(child, &bus->children, node)
 -              pcie_bus_configure_settings(child);
 -
 -      pci_bus_add_devices(bus);
        return 0;
  
  err_remove_irq_domain:
@@@ -1028,10 -1045,9 +1022,10 @@@ static int rockchip_pcie_remove(struct 
  {
        struct device *dev = &pdev->dev;
        struct rockchip_pcie *rockchip = dev_get_drvdata(dev);
 +      struct pci_host_bridge *bridge = pci_host_bridge_from_priv(rockchip);
  
 -      pci_stop_root_bus(rockchip->root_bus);
 -      pci_remove_root_bus(rockchip->root_bus);
 +      pci_stop_root_bus(bridge->bus);
 +      pci_remove_root_bus(bridge->bus);
        irq_domain_remove(rockchip->irq_domain);
  
        rockchip_pcie_deinit_phys(rockchip);
index 97305bfe81b59e6efacdb1dae85638a4fc1a9643,55489b72848457f1cd14ec6b2736bfea01d41e0e..f3cf7d61924f15dbf716ec9d863cce5656d2f832
@@@ -166,6 -166,7 +166,6 @@@ struct nwl_pcie 
        int irq_misc;
        u32 ecam_value;
        u8 last_busno;
 -      u8 root_busno;
        struct nwl_msi msi;
        struct irq_domain *legacy_irq_domain;
        raw_spinlock_t leg_mask_lock;
@@@ -216,11 -217,13 +216,11 @@@ static bool nwl_pcie_valid_device(struc
        struct nwl_pcie *pcie = bus->sysdata;
  
        /* Check link before accessing downstream ports */
 -      if (bus->number != pcie->root_busno) {
 +      if (!pci_is_root_bus(bus)) {
                if (!nwl_pcie_link_up(pcie))
                        return false;
 -      }
 -
 -      /* Only one device down on each root port */
 -      if (bus->number == pcie->root_busno && devfn > 0)
 +      } else if (devfn > 0)
 +              /* Only one device down on each root port */
                return false;
  
        return true;
@@@ -583,7 -586,6 +583,6 @@@ static int nwl_pcie_enable_msi(struct n
        /* Get msi_1 IRQ number */
        msi->irq_msi1 = platform_get_irq_byname(pdev, "msi1");
        if (msi->irq_msi1 < 0) {
-               dev_err(dev, "failed to get IRQ#%d\n", msi->irq_msi1);
                ret = -EINVAL;
                goto err;
        }
        /* Get msi_0 IRQ number */
        msi->irq_msi0 = platform_get_irq_byname(pdev, "msi0");
        if (msi->irq_msi0 < 0) {
-               dev_err(dev, "failed to get IRQ#%d\n", msi->irq_msi0);
                ret = -EINVAL;
                goto err;
        }
@@@ -725,11 -726,8 +723,8 @@@ static int nwl_pcie_bridge_init(struct 
  
        /* Get misc IRQ number */
        pcie->irq_misc = platform_get_irq_byname(pdev, "misc");
-       if (pcie->irq_misc < 0) {
-               dev_err(dev, "failed to get misc IRQ %d\n",
-                       pcie->irq_misc);
+       if (pcie->irq_misc < 0)
                return -EINVAL;
-       }
  
        err = devm_request_irq(dev, pcie->irq_misc,
                               nwl_pcie_misc_handler, IRQF_SHARED,
@@@ -794,10 -792,8 +789,8 @@@ static int nwl_pcie_parse_dt(struct nwl
  
        /* Get intx IRQ number */
        pcie->irq_intx = platform_get_irq_byname(pdev, "intx");
-       if (pcie->irq_intx < 0) {
-               dev_err(dev, "failed to get intx IRQ %d\n", pcie->irq_intx);
+       if (pcie->irq_intx < 0)
                return pcie->irq_intx;
-       }
  
        irq_set_chained_handler_and_data(pcie->irq_intx,
                                         nwl_pcie_leg_handler, pcie);
@@@ -814,6 -810,8 +807,6 @@@ static int nwl_pcie_probe(struct platfo
  {
        struct device *dev = &pdev->dev;
        struct nwl_pcie *pcie;
 -      struct pci_bus *bus;
 -      struct pci_bus *child;
        struct pci_host_bridge *bridge;
        int err;
  
                return err;
        }
  
 -      err = pci_parse_request_of_pci_ranges(dev, &bridge->windows,
 -                                            &bridge->dma_ranges, NULL);
 -      if (err) {
 -              dev_err(dev, "Getting bridge resources failed\n");
 -              return err;
 -      }
 -
        err = nwl_pcie_init_irq_domain(pcie);
        if (err) {
                dev_err(dev, "Failed creating IRQ Domain\n");
                return err;
        }
  
 -      bridge->dev.parent = dev;
        bridge->sysdata = pcie;
 -      bridge->busnr = pcie->root_busno;
        bridge->ops = &nwl_pcie_ops;
 -      bridge->map_irq = of_irq_parse_and_map_pci;
 -      bridge->swizzle_irq = pci_common_swizzle;
  
        if (IS_ENABLED(CONFIG_PCI_MSI)) {
                err = nwl_pcie_enable_msi(pcie);
                }
        }
  
 -      err = pci_scan_root_bus_bridge(bridge);
 -      if (err)
 -              return err;
 -
 -      bus = bridge->bus;
 -
 -      pci_assign_unassigned_bus_resources(bus);
 -      list_for_each_entry(child, &bus->children, node)
 -              pcie_bus_configure_settings(child);
 -      pci_bus_add_devices(bus);
 -      return 0;
 +      return pci_host_probe(bridge);
  }
  
  static struct platform_driver nwl_pcie_driver = {
This page took 0.116565 seconds and 4 git commands to generate.