-
- Downloads
of/pci: Fix the conversion of IO ranges into IO resources
The ranges property for a host bridge controller in DT describes the mapping between the PCI bus address and the CPU physical address. The resources framework however expects that the IO resources start at a pseudo "port" address 0 (zero) and have a maximum size of IO_SPACE_LIMIT. The conversion from PCI ranges to resources failed to take that into account, returning a CPU physical address instead of a port number. Also fix all the drivers that depend on the old behaviour by fetching the CPU physical address based on the port number where it is being needed. Signed-off-by:Liviu Dudau <Liviu.Dudau@arm.com> Signed-off-by:
Bjorn Helgaas <bhelgaas@google.com> Acked-by:
Linus Walleij <linus.walleij@linaro.org> CC: Grant Likely <grant.likely@linaro.org> CC: Rob Herring <robh+dt@kernel.org> CC: Arnd Bergmann <arnd@arndb.de> CC: Thierry Reding <thierry.reding@gmail.com> CC: Simon Horman <horms@verge.net.au> CC: Catalin Marinas <catalin.marinas@arm.com>
Showing
- arch/arm/mach-integrator/pci_v3.c 12 additions, 11 deletionsarch/arm/mach-integrator/pci_v3.c
- drivers/of/address.c 40 additions, 4 deletionsdrivers/of/address.c
- drivers/pci/host/pci-tegra.c 7 additions, 3 deletionsdrivers/pci/host/pci-tegra.c
- drivers/pci/host/pcie-rcar.c 15 additions, 6 deletionsdrivers/pci/host/pcie-rcar.c
- include/linux/of_address.h 6 additions, 6 deletionsinclude/linux/of_address.h
Loading