Message ID | 1366107508-12672-4-git-send-email-Andrew.Murray@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Apr 16, 2013 at 12:18 PM, Andrew Murray <Andrew.Murray@arm.com> wrote: > This patch converts the pci_load_of_ranges function to use the new common > of_pci_range_parser. > > Signed-off-by: Andrew Murray <Andrew.Murray@arm.com> > Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com> > Reviewed-by: Rob Herring <rob.herring@calxeda.com> Tested-by: Linus Walleij <linus.walleij@linaro.org> Yours, Linus Walleij
On Wed, Apr 17, 2013 at 04:42:48PM +0100, Linus Walleij wrote: > On Tue, Apr 16, 2013 at 12:18 PM, Andrew Murray <Andrew.Murray@arm.com> wrote: > > > This patch converts the pci_load_of_ranges function to use the new common > > of_pci_range_parser. > > > > Signed-off-by: Andrew Murray <Andrew.Murray@arm.com> > > Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com> > > Reviewed-by: Rob Herring <rob.herring@calxeda.com> > > Tested-by: Linus Walleij <linus.walleij@linaro.org> Jason - you may not have seen this, but here (Linus Walleij) is another Tested-by to add to this patch in your tree (if you can). Andrew Murray
On Thu, Apr 18, 2013 at 01:59:10PM +0100, Andrew Murray wrote: > On Wed, Apr 17, 2013 at 04:42:48PM +0100, Linus Walleij wrote: > > On Tue, Apr 16, 2013 at 12:18 PM, Andrew Murray <Andrew.Murray@arm.com> wrote: > > > > > This patch converts the pci_load_of_ranges function to use the new common > > > of_pci_range_parser. > > > > > > Signed-off-by: Andrew Murray <Andrew.Murray@arm.com> > > > Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com> > > > Reviewed-by: Rob Herring <rob.herring@calxeda.com> > > > > Tested-by: Linus Walleij <linus.walleij@linaro.org> > > Jason - you may not have seen this, but here (Linus Walleij) is another Tested-by > to add to this patch in your tree (if you can). Thanks, I saw it. Unfortunately, the PR was already sent, and the branch is now pulled into arm-soc. thx, Jason.
On Tue, 16 Apr 2013 11:18:28 +0100, Andrew Murray <Andrew.Murray@arm.com> wrote: > This patch converts the pci_load_of_ranges function to use the new common > of_pci_range_parser. > > Signed-off-by: Andrew Murray <Andrew.Murray@arm.com> > Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com> > Reviewed-by: Rob Herring <rob.herring@calxeda.com> Looks okay to me, and thank you very much for doing the legwork to merge the common code. Reviewed-by: Grant Likely <grant.likely@secretlab.ca>
On Thu, Apr 18, 2013 at 02:45:35PM +0100, Grant Likely wrote: > On Tue, 16 Apr 2013 11:18:28 +0100, Andrew Murray <Andrew.Murray@arm.com> wrote: > > This patch converts the pci_load_of_ranges function to use the new common > > of_pci_range_parser. > > > > Signed-off-by: Andrew Murray <Andrew.Murray@arm.com> > > Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com> > > Reviewed-by: Rob Herring <rob.herring@calxeda.com> > > Looks okay to me, and thank you very much for doing the legwork to merge > the common code. No problem, though I think there is more than can be done in this area - there is a lot of similar PCI code floating about. > > Reviewed-by: Grant Likely <grant.likely@secretlab.ca> Thanks for the review. Andrew Murray
2013.04.18. 15:09 keltezéssel, Jason Cooper írta: > On Thu, Apr 18, 2013 at 01:59:10PM +0100, Andrew Murray wrote: >> On Wed, Apr 17, 2013 at 04:42:48PM +0100, Linus Walleij wrote: >>> On Tue, Apr 16, 2013 at 12:18 PM, Andrew Murray <Andrew.Murray@arm.com> wrote: >>> >>>> This patch converts the pci_load_of_ranges function to use the new common >>>> of_pci_range_parser. >>>> >>>> Signed-off-by: Andrew Murray <Andrew.Murray@arm.com> >>>> Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com> >>>> Reviewed-by: Rob Herring <rob.herring@calxeda.com> >>> >>> Tested-by: Linus Walleij <linus.walleij@linaro.org> >> >> Jason - you may not have seen this, but here (Linus Walleij) is another Tested-by >> to add to this patch in your tree (if you can). > > Thanks, I saw it. Unfortunately, the PR was already sent, and the branch > is now pulled into arm-soc. Sorry I had no time earlier, but I have tested this now on MIPS. The patch causes build errors unfortunately. Given the fact that this has been merged already, I will send a fixup patch. -Gabor
On Fri, Apr 19, 2013 at 09:19:50AM +0200, Gabor Juhos wrote: > 2013.04.18. 15:09 keltezéssel, Jason Cooper írta: > > On Thu, Apr 18, 2013 at 01:59:10PM +0100, Andrew Murray wrote: > >> On Wed, Apr 17, 2013 at 04:42:48PM +0100, Linus Walleij wrote: > >>> On Tue, Apr 16, 2013 at 12:18 PM, Andrew Murray <Andrew.Murray@arm.com> wrote: > >>> > >>>> This patch converts the pci_load_of_ranges function to use the new common > >>>> of_pci_range_parser. > >>>> > >>>> Signed-off-by: Andrew Murray <Andrew.Murray@arm.com> > >>>> Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com> > >>>> Reviewed-by: Rob Herring <rob.herring@calxeda.com> > >>> > >>> Tested-by: Linus Walleij <linus.walleij@linaro.org> > >> > >> Jason - you may not have seen this, but here (Linus Walleij) is another Tested-by > >> to add to this patch in your tree (if you can). > > > > Thanks, I saw it. Unfortunately, the PR was already sent, and the branch > > is now pulled into arm-soc. > > Sorry I had no time earlier, but I have tested this now on MIPS. The patch > causes build errors unfortunately. Given the fact that this has been merged > already, I will send a fixup patch. Olof has dropped this branch from arm-soc, plase post the build error and fix here so that it can be included in this series. thx, Jason.
Hi Jason, >> Sorry I had no time earlier, but I have tested this now on MIPS. The patch >> causes build errors unfortunately. Given the fact that this has been merged >> already, I will send a fixup patch. > > Olof has dropped this branch from arm-soc, plase post the build error > and fix here so that it can be included in this series. I have posted the patch to Olof two days ago. It has been CC'd to you as well but In case that it does not exists in your mailbox the patch can be found here: https://patchwork.linux-mips.org/patch/5196/ However I can re-post the patch as a reply to this thread if you prefer that. -Gabor
On Sun, Apr 21, 2013 at 08:27:02AM +0100, Gabor Juhos wrote: > Hi Jason, > > >> Sorry I had no time earlier, but I have tested this now on MIPS. The patch > >> causes build errors unfortunately. Given the fact that this has been merged > >> already, I will send a fixup patch. > > > > Olof has dropped this branch from arm-soc, plase post the build error > > and fix here so that it can be included in this series. > > I have posted the patch to Olof two days ago. It has been CC'd to you as well > but In case that it does not exists in your mailbox the patch can be found here: > > https://patchwork.linux-mips.org/patch/5196/ > > However I can re-post the patch as a reply to this thread if you prefer that. As this branch was dropped I have updated my patchset to include Grant's recent feedback - I've also included Gabor's fixes to this patchset (and his sign-off). If you include this new patchset in your branch the drivers that depend on it will need to be updated to reflect the new naming of functions as suggested by Grant. Thanks, Andrew Murray
diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c index 0872f12..bee49a4 100644 --- a/arch/mips/pci/pci.c +++ b/arch/mips/pci/pci.c @@ -122,51 +122,33 @@ static void pcibios_scanbus(struct pci_controller *hose) #ifdef CONFIG_OF void pci_load_of_ranges(struct pci_controller *hose, struct device_node *node) { - const __be32 *ranges; - int rlen; - int pna = of_n_addr_cells(node); - int np = pna + 5; + struct of_pci_range_range range; + struct of_pci_range_parser parser; + u32 res_type; pr_info("PCI host bridge %s ranges:\n", node->full_name); - ranges = of_get_property(node, "ranges", &rlen); - if (ranges == NULL) - return; hose->of_node = node; - while ((rlen -= np * 4) >= 0) { - u32 pci_space; + if (of_pci_range_parser(&parser, node)) + return; + + for_each_of_pci_range(&parser, &range) { struct resource *res = NULL; - u64 addr, size; - - pci_space = be32_to_cpup(&ranges[0]); - addr = of_translate_address(node, ranges + 3); - size = of_read_number(ranges + pna + 3, 2); - ranges += np; - switch ((pci_space >> 24) & 0x3) { - case 1: /* PCI IO space */ + + res_type = range.flags & IORESOURCE_TYPE_BITS; + if (res_type == IORESOURCE_IO) { pr_info(" IO 0x%016llx..0x%016llx\n", - addr, addr + size - 1); + range.addr, range.addr + range.size - 1); hose->io_map_base = - (unsigned long)ioremap(addr, size); + (unsigned long)ioremap(range.addr, range.size); res = hose->io_resource; - res->flags = IORESOURCE_IO; - break; - case 2: /* PCI Memory space */ - case 3: /* PCI 64 bits Memory space */ + } else if (res_type == IORESOURCE_MEM) { pr_info(" MEM 0x%016llx..0x%016llx\n", - addr, addr + size - 1); + range.addr, range.addr + range.size - 1); res = hose->mem_resource; - res->flags = IORESOURCE_MEM; - break; - } - if (res != NULL) { - res->start = addr; - res->name = node->full_name; - res->end = res->start + size - 1; - res->parent = NULL; - res->sibling = NULL; - res->child = NULL; } + if (res != NULL) + of_pci_range_to_resource(&range, node, res); } } #endif