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. And also by Niklas on Rockchip platform. Dependency ========== This series depends on [1] and [2] which are currently in pci/next. - 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 v4: - Reworded the pci_epc_bme_notify() Kdoc (Bjorn) - Added a patch to drop 'Link is enabled' for BME event (Bjorn) - Collected tags from Niklas - Rebased on top of pci/next Changes in v3: - Dropped the patch that split epc_events into two - Added a patch to rename BME to Bus Master Enable - Added back the comment for REBAR - Switched to cancel_delayed_work_sync() for Link Down event - Rebased on top of pci/next - Dropped the tested-by tag from Niklas as I'd like to get this series tested one more time due to changes - Link to v2: https://lore.kernel.org/r/20240401-pci-epf-rework-v2-0-970dbe90b99d@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: Rename core_init() callback in 'struct pci_epc_event_ops' to epc_init() PCI: endpoint: Rename BME to Bus Master Enable PCI: qcom-ep: Drop 'Link is enabled' from the debug message for BME event PCI: endpoint: pci-epf-test: Refactor pci_epf_test_unbind() function PCI: endpoint: 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: endpoint: pci-epf-test: Handle Link Down event drivers/pci/controller/dwc/pcie-designware-ep.c | 104 ++++++++++++++++-------- drivers/pci/controller/dwc/pcie-designware.h | 5 ++ drivers/pci/controller/dwc/pcie-qcom-ep.c | 13 +-- 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 | 95 ++++++++++++++++------ drivers/pci/endpoint/pci-epc-core.c | 60 ++++++++++---- include/linux/pci-epc.h | 3 +- include/linux/pci-epf.h | 10 ++- 9 files changed, 231 insertions(+), 107 deletions(-) --- base-commit: b4d6d92902f50a577021f2cc08ac680b10658aca change-id: 20240314-pci-epf-rework-a6e65b103a79 Best regards, -- Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx>