1. 05 Dec, 2014 2 commits
  2. 04 Dec, 2014 2 commits
  3. 03 Dec, 2014 21 commits
  4. 02 Dec, 2014 14 commits
  5. 01 Dec, 2014 1 commit
    • Thierry Reding's avatar
      PCI: tegra: Use physical range for I/O mapping · 5106787a
      Thierry Reding authored
      Commit 0b0b0893 ("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: 0b0b0893 ("of/pci: Fix the conversion of IO ranges into IO resources")
      Reported-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Tested-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Suggested-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Reviewed-by: default avatarArnd Bergmann <arnd@arndb.de>
      5106787a