Here's another batch of DWC PCI host refactoring. This series primarily moves more of the MSI, link up, and resource handling to the core code. Beyond a couple of minor fixes, new in this version is runtime detection of iATU regions instead of using DT properties. No doubt I've probably broken something. Please test. I've run this thru kernelci and checked boards with DWC PCI which currently is just Layerscape boards (hint: add boards and/or enable PCI). A git branch is here[1]. This is dependent on "PCI: dwc: Restore ATU memory resource setup to use last entry" which will be in v5.10-rc3. Rob [1] git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git pci-more-dwc-cleanup Rob Herring (16): PCI: dwc: Support multiple ATU memory regions PCI: dwc/intel-gw: Move ATU offset out of driver match data PCI: dwc: Move "dbi", "dbi2", and "addr_space" resource setup into common code PCI: dwc/intel-gw: Remove some unneeded function wrappers PCI: dwc: Ensure all outbound ATU windows are reset PCI: dwc/dra7xx: Use the common MSI irq_chip PCI: dwc: Drop the .set_num_vectors() host op PCI: dwc: Move MSI interrupt setup into DWC common code PCI: dwc: Rework MSI initialization PCI: dwc: Move link handling into common code PCI: dwc: Move dw_pcie_msi_init() into core PCI: dwc: Move dw_pcie_setup_rc() to DWC common code PCI: dwc: Remove unnecessary wrappers around dw_pcie_host_init() Revert "PCI: dwc/keystone: Drop duplicated 'num-viewport'" PCI: dwc: Move inbound and outbound windows to common struct PCI: dwc: Detect number of iATU windows drivers/pci/controller/dwc/pci-dra7xx.c | 141 +----------------- drivers/pci/controller/dwc/pci-exynos.c | 50 ++----- drivers/pci/controller/dwc/pci-imx6.c | 39 +---- drivers/pci/controller/dwc/pci-keystone.c | 79 ++-------- .../pci/controller/dwc/pci-layerscape-ep.c | 37 +---- drivers/pci/controller/dwc/pci-layerscape.c | 67 +-------- drivers/pci/controller/dwc/pci-meson.c | 53 ++----- drivers/pci/controller/dwc/pcie-al.c | 29 +--- drivers/pci/controller/dwc/pcie-armada8k.c | 37 ++--- drivers/pci/controller/dwc/pcie-artpec6.c | 76 +--------- .../pci/controller/dwc/pcie-designware-ep.c | 58 +++---- .../pci/controller/dwc/pcie-designware-host.c | 139 ++++++++++------- .../pci/controller/dwc/pcie-designware-plat.c | 70 +-------- drivers/pci/controller/dwc/pcie-designware.c | 93 +++++++++++- drivers/pci/controller/dwc/pcie-designware.h | 24 +-- drivers/pci/controller/dwc/pcie-histb.c | 37 ++--- drivers/pci/controller/dwc/pcie-intel-gw.c | 67 ++------- drivers/pci/controller/dwc/pcie-kirin.c | 62 +------- drivers/pci/controller/dwc/pcie-qcom.c | 38 +---- drivers/pci/controller/dwc/pcie-spear13xx.c | 62 +++----- drivers/pci/controller/dwc/pcie-tegra194.c | 41 +---- drivers/pci/controller/dwc/pcie-uniphier-ep.c | 38 +---- drivers/pci/controller/dwc/pcie-uniphier.c | 51 +------ 23 files changed, 356 insertions(+), 1032 deletions(-) -- 2.25.1