> -----Original Message----- > From: linux-pci-owner@xxxxxxxxxxxxxxx [mailto:linux-pci- > owner@xxxxxxxxxxxxxxx] On Behalf Of Bjorn Helgaas > Sent: Thursday, October 22, 2015 5:36 PM > To: Gabriele Paoloni > Cc: Wangzhou (B); Bjorn Helgaas; jingoohan1@xxxxxxxxx; > pratyush.anand@xxxxxxxxx; Arnd Bergmann; linux@xxxxxxxxxxxxxxxx; > thomas.petazzoni@xxxxxxxxxxxxxxxxxx; lorenzo.pieralisi@xxxxxxx; > james.morse@xxxxxxx; Liviu.Dudau@xxxxxxx; jason@xxxxxxxxxxxxxx; > robh@xxxxxxxxxx; gabriel.fernandez@xxxxxxxxxx; > Minghuan.Lian@xxxxxxxxxxxxx; linux-pci@xxxxxxxxxxxxxxx; linux-arm- > kernel@xxxxxxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux- > kernel@xxxxxxxxxxxxxxx; zhangjukuo; qiuzhenfa; liudongdong (C); > qiujiang; xuwei (O); Liguozhu (Kenneth) > Subject: Re: [PATCH v11 1/6] PCI: designware: move calculation of bus > addresses to DRA7xx > > Hi Gabriele, > > On Thu, Oct 22, 2015 at 07:21:41AM +0000, Gabriele Paoloni wrote: > > > -----Original Message----- > > > From: Bjorn Helgaas [mailto:helgaas@xxxxxxxxxx] > > > > > #define PCIECTRL_DRA7XX_CONF_PHY_CS 0x010C > > > > #define LINK_UP BIT(16) > > > > +#define CPU_TO_BUS_ADDR 0x0FFFFFFF > > > > > > "CPU_TO_BUS_ADDR" is a very generic name. Since you do have DRA7XX > in > > > other #defines and static symbols in this file, maybe it could be > DRA7XX to > > > make it obvious that it only applies here? > > > > Ok will change to DRA7XX_CPU_TO_BUS_ADRR in v12 > > .. > > > > > + if (pp->io_mod_base) > > > > + pp->io_mod_base &= CPU_TO_BUS_ADDR; > > > > > > These are equivalent to > > > > > > pp->io_mod_base &= CPU_TO_BUS_ADDR; > > > > > > (You don't need to test whether they're zero first.) > > > > Yes agreed, will change in v12 > > ... > > > > > cfg_res = platform_get_resource_byname(pdev, IORESOURCE_MEM, > "config"); > > > > @@ -415,8 +411,7 @@ int dw_pcie_host_init(struct pcie_port *pp) > > > > pp->io_base = range.cpu_addr; > > > > > > > > /* Find the untranslated IO space address */ > > > > - pp->io_mod_base = of_read_number(parser.range - > > > > - parser.np + na, ns); > > > > + pp->io_mod_base = range.cpu_addr; > > > > > > So apparently > > > > > > "of_read_number() == range.cpu_addr & CPU_TO_BUS_ADDR" on DRA7xx > > > "of_read_number() == range.cpu_addr" everywhere else? > > > > Yes correct > > > > > Is that right? Is that a valid assumption, i.e., are we assuming > > > anything about DTs in the field that we shouldn't? > > > > Before I wrote a patch that was generic to accommodate intermediate > level > > of translation between PCI_addr -> BUS_addr -> CPU_addr > > > > http://lists.infradead.org/pipermail/linux-arm-kernel/2015- > July/360922.html > > > > After discussion we agreed to solve it with a bitmask rather than > adding > > a field to of_pci_range to make it generic. > > The bitmask only applies to DRA7xx > > I haven't gotten all the way through this series yet, but don't bother > with > a v12 just for these minor changes. I can easily fix them up when > applying > it. Great Many Thanks for this! Gab > > Bjorn > -- > To unsubscribe from this list: send the line "unsubscribe linux-pci" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html