[PATCH v9 0/9] PCI: mediatek: fixup find_port, enable_msi and add PM, module support
Date: Tue Oct 16 2018 - 06:45:04 EST
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, 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.
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
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
PCI: mediatek: Fixup enable MSI logic by enable MSI after clock
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(-)