Here's another round PCI host bridge clean-ups. This one aims to reduce the amount of duplication in host probe functions by providing more default initialization of the pci_host_bridge. With the prior clean-ups, it's now possible to alloc and initialize the pci_host_bridge struct from DT in one step. Patches 2 and 3 drop some pci_host_bridge init. Patches 4-11 clean-up handling of root bus number and bus ranges. Patches 12 and 13 are cleanups for Cadence driver. Patches 14 and 15 are clean-ups for rCar driver. Patch 16 makes missing non-prefetchable region just a warning instead of an error in order to work with rcar-gen2. Patch 17 converts rcar-gen2 to not use the arm32 specific PCI setup. Patch 18 updates how the DT resource parsing is done for all the controller drivers. Any other new controller drivers will need updating. Patch 19 moves the default IRQ mapping to the bridge init core code. This is based on my previous series of clean-ups[1]. Compile tested only. Any testing would be appreciated as I don't have any of this h/w (well, I have a rock960c, but have not gotten PCIe to work on it). Rob [1] https://lore.kernel.org/linux-pci/20200522234832.954484-1-robh@xxxxxxxxxx/ Rob Herring (19): PCI: versatile: Drop flag PCI_ENABLE_PROC_DOMAINS PCI: Set default bridge parent device PCI: Drop unnecessary zeroing of bridge fields PCI: aardvark: Use pci_is_root_bus() to check if bus is root bus PCI: designware: Use pci_is_root_bus() to check if bus is root bus PCI: mobiveil: Use pci_is_root_bus() to check if bus is root bus PCI: xilinx-nwl: Use pci_is_root_bus() to check if bus is root bus PCI: xilinx: Use pci_is_root_bus() to check if bus is root bus PCI: rockchip: Use pci_is_root_bus() to check if bus is root bus PCI: rcar: Use pci_is_root_bus() to check if bus is root bus PCI: Move setting pci_host_bridge.busnr out of host drivers PCI: cadence: Use bridge resources for outbound window setup PCI: cadence: Remove private bus number and range storage PCI: rcar: Use devm_pci_alloc_host_bridge() PCI: rcar: Use struct pci_host_bridge.windows list directly PCI: of: Reduce missing non-prefetchable memory region to a warning PCI: rcar-gen2: Convert to use modern host bridge probe functions PCI: Move DT resource setup into devm_pci_alloc_host_bridge() PCI: Set bridge map_irq and swizzle_irq to default functions .../pci/controller/cadence/pcie-cadence-ep.c | 6 +- .../controller/cadence/pcie-cadence-host.c | 65 +++---- drivers/pci/controller/cadence/pcie-cadence.c | 9 +- drivers/pci/controller/cadence/pcie-cadence.h | 8 +- drivers/pci/controller/dwc/pci-imx6.c | 2 +- drivers/pci/controller/dwc/pci-keystone.c | 4 +- .../pci/controller/dwc/pcie-designware-host.c | 28 +-- drivers/pci/controller/dwc/pcie-designware.h | 2 - .../controller/mobiveil/pcie-mobiveil-host.c | 21 +-- .../pci/controller/mobiveil/pcie-mobiveil.h | 1 - drivers/pci/controller/pci-aardvark.c | 25 +-- drivers/pci/controller/pci-ftpci100.c | 10 -- drivers/pci/controller/pci-host-common.c | 17 +- drivers/pci/controller/pci-loongson.c | 8 - drivers/pci/controller/pci-mvebu.c | 4 - drivers/pci/controller/pci-rcar-gen2.c | 162 +++++------------- drivers/pci/controller/pci-tegra.c | 10 -- drivers/pci/controller/pci-v3-semi.c | 12 -- drivers/pci/controller/pci-versatile.c | 13 +- drivers/pci/controller/pci-xgene.c | 9 - drivers/pci/controller/pcie-altera.c | 10 -- drivers/pci/controller/pcie-brcmstb.c | 9 - drivers/pci/controller/pcie-iproc-platform.c | 10 +- drivers/pci/controller/pcie-iproc.c | 3 - drivers/pci/controller/pcie-mediatek.c | 16 -- drivers/pci/controller/pcie-rcar-host.c | 73 +------- drivers/pci/controller/pcie-rockchip-host.c | 24 +-- drivers/pci/controller/pcie-rockchip.h | 1 - drivers/pci/controller/pcie-xilinx-nwl.c | 20 +-- drivers/pci/controller/pcie-xilinx.c | 22 +-- drivers/pci/of.c | 45 +++-- drivers/pci/pci.h | 8 + drivers/pci/probe.c | 7 + include/linux/pci.h | 12 -- 34 files changed, 160 insertions(+), 516 deletions(-) -- 2.25.1