• Bjorn Helgaas's avatar
    PCI: tegra: Remove top-level resource from hierarchy · c4102c92
    Bjorn Helgaas authored
    41534e53 ("PCI: tegra: Implement a proper resource hierarchy") did two
    things:
    
      1) It added a top-level resource that encloses all resources declared in
         the DT description, including registers and bridge apertures, and
    
      2) It requested the bridge apertures, which means the PCI core can track
         the resources used by PCI devices below the bridge.
    
    The latter is necessary, but the former is questionable because there's no
    guarantee that the bridge registers and the apertures are contiguous.  In
    this example:
    
      # cat /proc/iomem
      00000000-3fffffff : /pcie-controller@00003000
        00000000-00000fff : /pcie-controller@00003000/pci@1,0
        00003000-000037ff : pads
        00003800-000039ff : afi
        10000000-1fffffff : cs
    
    the resource tree claims that [mem 0x00003a00-0x0fffffff] is consumed by
    /pcie-controller@00003000, but it's not mentioned in the DT, and it might
    actually be used by other devices.
    
    Remove the top-level resource so we don't claim more than the device
    actually consumes.
    
    This reintroduces the problem that we can't match the resources, e.g.,
    "pads", "afi", "cs", etc., to the DT device.  I think this should be solved
    by having the DT core request all resources of all devices in the DT (it
    does not do that today).  If a driver claims the device, it can request the
    resources it uses.  For example:
    
      # cat /proc/iomem
      00000000-00000fff : /pcie-controller@00003000
        00000000-00000fff : /pcie-controller@00003000/pci@1,0
      00003000-000037ff : /pcie-controller@00003000
        00003000-000037ff : pads
      00003800-000039ff : /pcie-controller@00003000
        00003800-000039ff : afi
      10000000-1fffffff : /pcie-controller@00003000
        10000000-1fffffff : cs
      ...
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    c4102c92
pci-tegra.c 56.6 KB