Hello, This is the follow up series of [1], to improve the handling of host reboot in the endpoint subsystem. This involves refining the PERST# and Link Down event handling in both the controller and function drivers. Testing ======= This series is tested on Qcom SM8450 based development board with both MHI_EPF and EPF_TEST function drivers. Dependency ========== This series depends on [1] and [2]. - Mani [1] https://lore.kernel.org/linux-pci/20240314-pci-dbi-rework-v10-0-14a45c5a938e@xxxxxxxxxx/ [2] https://lore.kernel.org/linux-pci/20240320113157.322695-1-cassel@xxxxxxxxxx/ Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> --- Changes in v2: - Dropped the {start/stop}_link rework patches - Incorporated comments from Niklas - Collected review tags - Rebased on top of v6.9-rc1 and https://lore.kernel.org/linux-pci/20240320113157.322695-1-cassel@xxxxxxxxxx/ - Link to v1: https://lore.kernel.org/r/20240314-pci-epf-rework-v1-0-6134e6c1d491@xxxxxxxxxx --- Manivannan Sadhasivam (10): PCI: qcom-ep: Disable resources unconditionally during PERST# assert PCI: endpoint: Decouple EPC and PCIe bus specific events PCI: endpoint: Rename core_init() callback in 'struct pci_epc_event_ops' to init() PCI: epf-test: Refactor pci_epf_test_unbind() function PCI: epf-{mhi/test}: Move DMA initialization to EPC init callback PCI: endpoint: Introduce EPC 'deinit' event and notify the EPF drivers PCI: dwc: ep: Add a generic dw_pcie_ep_linkdown() API to handle Link Down event PCI: qcom-ep: Use the generic dw_pcie_ep_linkdown() API to handle Link Down event PCI: epf-test: Handle Link Down event PCI: qcom: Implement shutdown() callback to properly reset the endpoint devices drivers/pci/controller/dwc/pcie-designware-ep.c | 99 ++++++++++++++--------- drivers/pci/controller/dwc/pcie-designware.h | 5 ++ drivers/pci/controller/dwc/pcie-qcom-ep.c | 9 +-- drivers/pci/controller/dwc/pcie-qcom.c | 8 ++ drivers/pci/controller/dwc/pcie-tegra194.c | 1 + drivers/pci/endpoint/functions/pci-epf-mhi.c | 47 ++++++++--- drivers/pci/endpoint/functions/pci-epf-test.c | 103 +++++++++++++++++------- drivers/pci/endpoint/pci-epc-core.c | 53 ++++++++---- include/linux/pci-epc.h | 1 + include/linux/pci-epf.h | 27 +++++-- 10 files changed, 248 insertions(+), 105 deletions(-) --- base-commit: e6377605ca734126533a0f8e4de2b4bac881f076 change-id: 20240314-pci-epf-rework-a6e65b103a79 Best regards, -- Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx>