From: Honghui Zhang <honghui.zhang@xxxxxxxxxxxx> This patchset includes misc patchs: The patch 1 fixup the mtk_pcie_find_port logic which will cause system could not touch the EP's configuration space that connected to PCIe slot 1. The patch fixup the PCI core defect which assign resource base on device's class type. Logically, the resource assignment should base on PCIe configuration space layout instead of class type. So this patch using configuration header type for resource assignment, this patch is suggested by Bjorn. The patch 6 fixup the enable msi logic, the operation to enable MSI should be after system clock is enabled. Call mtk_pcie_enable_msi in mtk_pcie_startup_port_v2 since the clock was all enabled at that time. The patch 7 was rebased and refactor of the v4 patch[1], changes are: -Add PM support for MT7622. -Using mtk_pcie_enable_port to re-establish the link when resumed. -Rebased on this patchset. The patch 9 add loadable kernel module support. [1] https://patchwork.kernel.org/patch/10479079 Change since v8: - Remove the patch (PCI: mediatek: Fix class type for MT7622 as PCI_CLASS_BRIDGE_PCI) - Add patch 2 (PCI: Using PCI configuration space header type instead of class type to assign resource) Change since v7: - Add Acked-by tags from Ryder Lee. - Add Fix tags for patch 2(Fix calss type for MT7622 as PCI_CLASS_BRIDGE_PCI) and patch 6(Fixup enable MSI logic by enable MSI after clock enabled) Change since v6: - Remove the pci_unmap_iospace when remove the device since the devm_pci_remap_iospace is an devm_ version. - Commit message changed for patch 2(Fix class type for MT7622 as PCI_CLASS_BRIDGE_PCI). - Capitilizing "MSI" and "PM" in the patch title. Change since v5: - A bit improvement of mtk_pcie_find_port suggest by Lorenzo. MSI after clock enabled. - Add Acked-by tags from Ryder. Change since v4: - Add patch 2 to fixup class type for MT7622. - Add patch 3 to remove the redundant dev->pm_domain check - Add patch 4 to covert to use pci_host_probe - Add patch 5 to re-arrange the function define, this is a prepare patch for fixup the enable_msi logic, no functional changed have been made by this one. - Add patch 8 to save the GIC IRQ in mtk_pcie_port as a prepare patch for tear down the irq when remove the kernel module. - Re-arrange the find_port flow suggest by Lorenzo to make the code parse easier for the patch 1. - Remove the .pm_support in mtk_pcie_soc in patch 7 since if system pm was not supported, then those pm callbacks will never be executed for MT7622. So the .pm_support is not needed. Change since v3: - Remove pm_runtime_XXX ops in suspend and resume callbacks in the third patch. - Rebase to 4.19-rc1. Change since v2: - Fix the list_for_each_entry_safe parameter error. - Add Ryder's Acked-by flag. Change since v1: - A bit of code refact of the first patch suggested by Andy Shevchenko, and commit message updated. Honghui Zhang (9): PCI: mediatek: Using slot's devfn for compare to fix mtk_pcie_find_port logic PCI: Using PCI configuration space header type instead of class type to assign resource PCI: mediatek: Remove the redundant dev->pm_domain check PCI: mediatek: Convert to use pci_host_probe() PCI: mediatek: Move the mtk_pcie_startup_port_v2 function's define after mtk_pcie_setup_irq PCI: mediatek: Fixup enable MSI logic by enable MSI after clock enabled PCI: mediatek: Add system PM support for MT2712 and MT7622 PCI: mediatek: Save the GIC IRQ in mtk_pcie_port PCI: mediatek: Add loadable kernel module support drivers/pci/controller/Kconfig | 2 +- drivers/pci/controller/pcie-mediatek.c | 319 +++++++++++++++++++++------------ drivers/pci/pci.c | 3 +- drivers/pci/probe.c | 3 - drivers/pci/setup-bus.c | 20 +-- 5 files changed, 215 insertions(+), 132 deletions(-) -- 2.6.4