From: Rob Herring <robh@kernel.org> To: linux-pci@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>, Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Cc: linux-arm-kernel@lists.infradead.org Subject: [PATCH 05/11] PCI: versatile: Use pci_parse_request_of_pci_ranges() Date: Tue, 24 Sep 2019 16:46:24 -0500 [thread overview] Message-ID: <20190924214630.12817-6-robh@kernel.org> (raw) In-Reply-To: <20190924214630.12817-1-robh@kernel.org> Convert ARM Versatile host bridge to use the common pci_parse_request_of_pci_ranges(). Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Cc: Bjorn Helgaas <bhelgaas@google.com> Signed-off-by: Rob Herring <robh@kernel.org> --- drivers/pci/controller/pci-versatile.c | 62 +++++--------------------- 1 file changed, 11 insertions(+), 51 deletions(-) diff --git a/drivers/pci/controller/pci-versatile.c b/drivers/pci/controller/pci-versatile.c index f59ad2728c0b..237b1abb26f2 100644 --- a/drivers/pci/controller/pci-versatile.c +++ b/drivers/pci/controller/pci-versatile.c @@ -62,60 +62,12 @@ static struct pci_ops pci_versatile_ops = { .write = pci_generic_config_write, }; -static int versatile_pci_parse_request_of_pci_ranges(struct device *dev, - struct list_head *res) -{ - int err, mem = 1, res_valid = 0; - resource_size_t iobase; - struct resource_entry *win, *tmp; - - err = devm_of_pci_get_host_bridge_resources(dev, 0, 0xff, res, &iobase); - if (err) - return err; - - err = devm_request_pci_bus_resources(dev, res); - if (err) - goto out_release_res; - - resource_list_for_each_entry_safe(win, tmp, res) { - struct resource *res = win->res; - - switch (resource_type(res)) { - case IORESOURCE_IO: - err = devm_pci_remap_iospace(dev, res, iobase); - if (err) { - dev_warn(dev, "error %d: failed to map resource %pR\n", - err, res); - resource_list_destroy_entry(win); - } - break; - case IORESOURCE_MEM: - res_valid |= !(res->flags & IORESOURCE_PREFETCH); - - writel(res->start >> 28, PCI_IMAP(mem)); - writel(PHYS_OFFSET >> 28, PCI_SMAP(mem)); - mem++; - - break; - } - } - - if (res_valid) - return 0; - - dev_err(dev, "non-prefetchable memory resource required\n"); - err = -EINVAL; - -out_release_res: - pci_free_resource_list(res); - return err; -} - static int versatile_pci_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct resource *res; - int ret, i, myslot = -1; + struct resource_entry *entry; + int ret, i, myslot = -1, mem = 0; u32 val; void __iomem *local_pci_cfg_base; struct pci_bus *bus, *child; @@ -141,10 +93,18 @@ static int versatile_pci_probe(struct platform_device *pdev) if (IS_ERR(versatile_cfg_base[1])) return PTR_ERR(versatile_cfg_base[1]); - ret = versatile_pci_parse_request_of_pci_ranges(dev, &pci_res); + ret = pci_parse_request_of_pci_ranges(dev, &pci_res, NULL); if (ret) return ret; + resource_list_for_each_entry(entry, &pci_res) { + if (resource_type(entry->res) == IORESOURCE_MEM) { + writel(entry->res->start >> 28, PCI_IMAP(mem)); + writel(PHYS_OFFSET >> 28, PCI_SMAP(mem)); + mem++; + } + } + /* * We need to discover the PCI core first to configure itself * before the main PCI probing is performed -- 2.20.1
WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org> To: linux-pci@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>, Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Cc: linux-arm-kernel@lists.infradead.org Subject: [PATCH 05/11] PCI: versatile: Use pci_parse_request_of_pci_ranges() Date: Tue, 24 Sep 2019 16:46:24 -0500 [thread overview] Message-ID: <20190924214630.12817-6-robh@kernel.org> (raw) In-Reply-To: <20190924214630.12817-1-robh@kernel.org> Convert ARM Versatile host bridge to use the common pci_parse_request_of_pci_ranges(). Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Cc: Bjorn Helgaas <bhelgaas@google.com> Signed-off-by: Rob Herring <robh@kernel.org> --- drivers/pci/controller/pci-versatile.c | 62 +++++--------------------- 1 file changed, 11 insertions(+), 51 deletions(-) diff --git a/drivers/pci/controller/pci-versatile.c b/drivers/pci/controller/pci-versatile.c index f59ad2728c0b..237b1abb26f2 100644 --- a/drivers/pci/controller/pci-versatile.c +++ b/drivers/pci/controller/pci-versatile.c @@ -62,60 +62,12 @@ static struct pci_ops pci_versatile_ops = { .write = pci_generic_config_write, }; -static int versatile_pci_parse_request_of_pci_ranges(struct device *dev, - struct list_head *res) -{ - int err, mem = 1, res_valid = 0; - resource_size_t iobase; - struct resource_entry *win, *tmp; - - err = devm_of_pci_get_host_bridge_resources(dev, 0, 0xff, res, &iobase); - if (err) - return err; - - err = devm_request_pci_bus_resources(dev, res); - if (err) - goto out_release_res; - - resource_list_for_each_entry_safe(win, tmp, res) { - struct resource *res = win->res; - - switch (resource_type(res)) { - case IORESOURCE_IO: - err = devm_pci_remap_iospace(dev, res, iobase); - if (err) { - dev_warn(dev, "error %d: failed to map resource %pR\n", - err, res); - resource_list_destroy_entry(win); - } - break; - case IORESOURCE_MEM: - res_valid |= !(res->flags & IORESOURCE_PREFETCH); - - writel(res->start >> 28, PCI_IMAP(mem)); - writel(PHYS_OFFSET >> 28, PCI_SMAP(mem)); - mem++; - - break; - } - } - - if (res_valid) - return 0; - - dev_err(dev, "non-prefetchable memory resource required\n"); - err = -EINVAL; - -out_release_res: - pci_free_resource_list(res); - return err; -} - static int versatile_pci_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct resource *res; - int ret, i, myslot = -1; + struct resource_entry *entry; + int ret, i, myslot = -1, mem = 0; u32 val; void __iomem *local_pci_cfg_base; struct pci_bus *bus, *child; @@ -141,10 +93,18 @@ static int versatile_pci_probe(struct platform_device *pdev) if (IS_ERR(versatile_cfg_base[1])) return PTR_ERR(versatile_cfg_base[1]); - ret = versatile_pci_parse_request_of_pci_ranges(dev, &pci_res); + ret = pci_parse_request_of_pci_ranges(dev, &pci_res, NULL); if (ret) return ret; + resource_list_for_each_entry(entry, &pci_res) { + if (resource_type(entry->res) == IORESOURCE_MEM) { + writel(entry->res->start >> 28, PCI_IMAP(mem)); + writel(PHYS_OFFSET >> 28, PCI_SMAP(mem)); + mem++; + } + } + /* * We need to discover the PCI core first to configure itself * before the main PCI probing is performed -- 2.20.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-09-24 21:46 UTC|newest] Thread overview: 102+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-09-24 21:46 [PATCH 00/11] PCI dma-ranges parsing consolidation Rob Herring 2019-09-24 21:46 ` Rob Herring 2019-09-24 21:46 ` Rob Herring 2019-09-24 21:46 ` [PATCH 01/11] PCI: aardvark: Use pci_parse_request_of_pci_ranges() Rob Herring 2019-09-24 21:46 ` Rob Herring 2019-09-25 8:59 ` Thomas Petazzoni 2019-09-25 8:59 ` Thomas Petazzoni 2019-09-25 9:04 ` Andrew Murray 2019-09-25 9:04 ` Andrew Murray 2019-09-24 21:46 ` [PATCH 02/11] PCI: altera: " Rob Herring 2019-09-24 21:46 ` Rob Herring 2019-09-25 10:24 ` Andrew Murray 2019-09-25 10:24 ` Andrew Murray 2019-09-25 12:33 ` Rob Herring 2019-09-25 12:33 ` Rob Herring 2019-09-30 15:13 ` Andrew Murray 2019-09-30 15:13 ` Andrew Murray 2019-09-30 17:36 ` Rob Herring 2019-09-30 17:36 ` Rob Herring 2019-10-15 11:02 ` Lorenzo Pieralisi 2019-10-15 11:02 ` Lorenzo Pieralisi 2019-10-15 11:17 ` Rob Herring 2019-10-15 11:17 ` Rob Herring 2019-09-24 21:46 ` [PATCH 03/11] PCI: mediatek: " Rob Herring 2019-09-24 21:46 ` Rob Herring 2019-09-24 21:46 ` Rob Herring 2019-09-25 11:34 ` Andrew Murray 2019-09-25 11:34 ` Andrew Murray 2019-09-25 11:34 ` Andrew Murray 2019-09-24 21:46 ` [PATCH 04/11] PCI: versatile: Enable COMPILE_TEST Rob Herring 2019-09-24 21:46 ` Rob Herring 2019-09-26 8:12 ` Andrew Murray 2019-09-26 8:12 ` Andrew Murray 2019-09-24 21:46 ` Rob Herring [this message] 2019-09-24 21:46 ` [PATCH 05/11] PCI: versatile: Use pci_parse_request_of_pci_ranges() Rob Herring 2019-09-25 10:37 ` Andrew Murray 2019-09-25 10:37 ` Andrew Murray 2019-09-26 21:44 ` Rob Herring 2019-09-26 21:44 ` Rob Herring 2019-09-30 15:16 ` Andrew Murray 2019-09-30 15:16 ` Andrew Murray 2019-09-30 16:56 ` Peter Maydell 2019-09-30 16:56 ` Peter Maydell 2019-09-30 19:36 ` Andrew Murray 2019-09-30 19:36 ` Andrew Murray 2019-09-24 21:46 ` [PATCH 06/11] PCI: of: Add inbound resource parsing to helpers Rob Herring 2020-01-13 9:56 ` Bharat Kumar Gogada 2020-01-13 9:56 ` Bharat Kumar Gogada 2019-09-24 21:46 ` Rob Herring 2019-09-24 21:46 ` Rob Herring 2019-09-25 9:00 ` Thomas Petazzoni 2019-09-25 9:00 ` Thomas Petazzoni 2019-09-25 9:00 ` Thomas Petazzoni 2019-09-26 8:29 ` Andrew Murray 2019-09-26 8:29 ` Andrew Murray 2019-09-26 8:29 ` Andrew Murray 2019-09-26 10:43 ` Gustavo Pimentel 2019-09-26 10:43 ` Gustavo Pimentel 2019-09-26 10:43 ` Gustavo Pimentel 2019-09-27 16:12 ` Jingoo Han 2019-09-27 16:12 ` Jingoo Han 2019-09-27 16:12 ` Jingoo Han 2019-09-27 16:12 ` Jingoo Han 2019-09-27 16:12 ` Jingoo Han 2019-09-27 16:12 ` Jingoo Han 2019-09-24 21:46 ` [PATCH 07/11] PCI: ftpci100: Use inbound resources for setup Rob Herring 2019-09-24 21:46 ` Rob Herring 2019-09-26 8:39 ` Andrew Murray 2019-09-26 8:39 ` Andrew Murray 2019-09-24 21:46 ` [PATCH 08/11] PCI: v3-semi: " Rob Herring 2019-09-24 21:46 ` Rob Herring 2019-09-26 8:39 ` Andrew Murray 2019-09-26 8:39 ` Andrew Murray 2019-09-30 22:00 ` Linus Walleij 2019-09-30 22:00 ` Linus Walleij 2019-09-24 21:46 ` [PATCH 09/11] PCI: xgene: " Rob Herring 2019-09-24 21:46 ` Rob Herring 2019-09-26 8:39 ` Andrew Murray 2019-09-26 8:39 ` Andrew Murray 2019-09-24 21:46 ` [PATCH 10/11] PCI: iproc: " Rob Herring 2019-09-24 21:46 ` Rob Herring 2019-09-26 8:39 ` Andrew Murray 2019-09-26 8:39 ` Andrew Murray 2019-09-24 21:46 ` [PATCH 11/11] PCI: rcar: " Rob Herring 2019-09-24 21:46 ` Rob Herring 2019-09-26 8:47 ` Andrew Murray 2019-09-26 8:47 ` Andrew Murray 2019-09-26 12:53 ` Rob Herring 2019-09-26 12:53 ` Rob Herring 2019-09-26 13:32 ` Andrew Murray 2019-09-26 13:32 ` Andrew Murray 2019-09-26 8:49 ` [PATCH 00/11] PCI dma-ranges parsing consolidation Andrew Murray 2019-09-26 8:49 ` Andrew Murray 2019-09-26 8:49 ` Andrew Murray 2019-09-26 11:20 ` Marc Gonzalez 2019-09-26 11:20 ` Marc Gonzalez 2019-09-26 13:11 ` Rob Herring 2019-09-26 13:11 ` Rob Herring 2019-09-26 13:38 ` Andrew Murray 2019-09-26 13:38 ` Andrew Murray 2019-09-26 14:09 ` Marc Gonzalez 2019-09-26 14:09 ` Marc Gonzalez
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190924214630.12817-6-robh@kernel.org \ --to=robh@kernel.org \ --cc=bhelgaas@google.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-pci@vger.kernel.org \ --cc=lorenzo.pieralisi@arm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.