linux/drivers/pci/host
Bjorn Helgaas c4102c92df PCI: tegra: Remove top-level resource from hierarchy
41534e5378 ("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: Bjorn Helgaas <bhelgaas@google.com>
2016-06-25 07:44:23 -05:00
..
Kconfig PCI changes for the v4.7 merge window: 2016-05-19 13:10:54 -07:00
Makefile PCI changes for the v4.7 merge window: 2016-05-19 13:10:54 -07:00
pci-dra7xx.c PCI: designware: Move Root Complex setup code to dw_pcie_setup_rc() 2016-04-05 17:04:27 -05:00
pci-exynos.c PCI: designware: Add generic dw_pcie_wait_for_link() 2016-03-15 08:50:45 -05:00
pci-host-common.c PCI: generic: Simplify host bridge window iteration 2016-06-21 10:10:37 -05:00
pci-host-generic.c PCI: generic, thunder: Use generic ECAM API 2016-05-12 07:07:42 -05:00
pci-hyperv.c Char / Misc driver update for 4.7-rc1 2016-05-20 21:20:31 -07:00
pci-imx6.c PCI: imx6: Implement reset sequence for i.MX6+ 2016-05-02 14:33:17 -05:00
pci-keystone-dw.c PCI: keystone: Add error IRQ handler 2016-04-14 14:40:42 -05:00
pci-keystone.c PCI: keystone: Remove unnecessary goto statement 2016-04-25 14:23:54 -05:00
pci-keystone.h PCI: keystone: Add error IRQ handler 2016-04-14 14:40:42 -05:00
pci-layerscape.c PCI changes for the v4.6 merge window: 2016-03-16 14:45:55 -07:00
pci-mvebu.c PCI: mvebu: Request host bridge window resources with core function 2016-06-21 10:13:30 -05:00
pci-rcar-gen2.c PCI: rcar Gen2: Request host bridge window resources 2016-06-25 07:44:23 -05:00
pci-tegra.c PCI: tegra: Remove top-level resource from hierarchy 2016-06-25 07:44:23 -05:00
pci-thunder-ecam.c PCI: generic, thunder: Use generic ECAM API 2016-05-12 07:07:42 -05:00
pci-thunder-pem.c Merge branches 'pci/arm64' and 'pci/host-hv' into next 2016-05-17 14:35:46 -05:00
pci-versatile.c PCI: generic,versatile: Remove unused pci_sys_data structures 2015-11-25 12:08:04 -06:00
pci-xgene-msi.c irqdomain/msi: Use fwnode instead of of_node 2015-10-13 19:01:25 +02:00
pci-xgene.c PCI: xgene: Request host bridge window resources 2016-06-20 14:06:05 -05:00
pcie-altera-msi.c PCI changes for the v4.4 merge window: 2015-11-06 11:29:53 -08:00
pcie-altera.c PCI: altera: Simplify host bridge window iteration 2016-06-20 14:06:06 -05:00
pcie-armada8k.c PCI: armada: Add driver for Marvell Armada 7K/8K PCIe controller 2016-04-26 12:11:54 -05:00
pcie-designware-plat.c PCI: designware: Add driver for prototyping kits based on ARC SDP 2016-03-15 08:50:45 -05:00
pcie-designware.c PCI: designware: Simplify host bridge window iteration 2016-06-20 14:06:05 -05:00
pcie-designware.h PCI: designware: Add generic dw_pcie_wait_for_link() 2016-03-15 08:50:45 -05:00
pcie-hisi.c PCI changes for the v4.5 merge window: 2016-01-21 11:52:16 -08:00
pcie-iproc-bcma.c PCI: iproc: Add iProc PCIe MSI support 2016-01-06 18:04:35 -06:00
pcie-iproc-msi.c PCI: iproc: Add iProc PCIe MSI support 2016-01-06 18:04:35 -06:00
pcie-iproc-platform.c PCI: iproc: Add iProc PCIe MSI support 2016-01-06 18:04:35 -06:00
pcie-iproc.c PCI: iproc: Request host bridge window resources 2016-06-20 14:06:05 -05:00
pcie-iproc.h PCI: iproc: Add iProc PCIe MSI support 2016-01-06 18:04:35 -06:00
pcie-qcom.c PCI: designware: Add generic dw_pcie_wait_for_link() 2016-03-15 08:50:45 -05:00
pcie-rcar.c PCI: rcar: Simplify host bridge window iteration 2016-06-25 07:44:23 -05:00
pcie-spear13xx.c PCI: designware: Add generic dw_pcie_wait_for_link() 2016-03-15 08:50:45 -05:00
pcie-xilinx-nwl.c PCI: xilinx-nwl: Use dev_printk() when possible 2016-06-20 14:06:06 -05:00
pcie-xilinx.c PCI: xilinx: Request host bridge window resources 2016-06-20 14:06:06 -05:00