On Thursday 27 November 2014 09:54:09 Thierry Reding wrote: > From: Thierry Reding <treding@xxxxxxxxxx> > > Commit 0b0b0893d49b ("of/pci: Fix the conversion of IO ranges into IO > resources") changed how I/O resources are parsed from DT. Rather than > containing the physical address of the I/O region, the addresses will > now be in I/O address space. > > On Tegra the union of all ranges is used to expose a top-level memory- > mapped resource for the PCI host bridge. This helps to make /proc/iomem > more readable. > > Combining both of the above, the union would now include the I/O space > region. This causes a regression on Tegra20, where the physical base > address of the PCIe controller (and therefore of the union) is located > at physical address 0x80000000. Since I/O space starts at 0, the union > will now include all of system RAM which starts at 0x00000000. > > This commit fixes this by keeping two copies of the I/O range: one that > represents the range in the CPU's physical address space, the other for > the range in the I/O address space. This allows the translation setup > within the driver to reuse the physical addresses. The code registering > the I/O region with the PCI core uses both ranges to establish the > mapping. > > Fixes: 0b0b0893d49b ("of/pci: Fix the conversion of IO ranges into IO resources") > Reported-by: Marc Zyngier <marc.zyngier@xxxxxxx> > Suggested-by: Arnd Bergmann <arnd@xxxxxxxx> > Signed-off-by: Thierry Reding <treding@xxxxxxxxxx> Reviewed-by: Arnd Bergmann <arnd@xxxxxxxx> -- 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