[PATCH v6 0/5] PCI: EPC: Add support to wake up host from D3 states

From: Krishna chaitanya chundru
Date: Wed Jul 10 2024 - 07:17:12 EST


Here we propose this patch series to add support in PCI endpoint
driver to wake up host from D3 states.

As endpoint cannot send any data/MSI when the D-state is in
D3Cold or D3hot. Endpoint needs to bring the device back to D0
to send any kind of data.

For this endpoint needs to send inband PME the device is in D3hot
state or toggle wake when the device is D3 cold and vaux is not supplied.

Based on the D-state the EPF driver decides to wake host either by
toggling wake or by sending PME.

When the MHI state is in M3 MHI driver will wakeup the host using the
wakeup op.

This change is dependent on this series PCI: endpoint: add D-state change notifier
support
https://lore.kernel.org/all/20240710-dstate_notifier-v7-0-8d45d87b2b24@xxxxxxxxxxx/T/#t

Signed-off-by: Krishna chaitanya chundru <quic_krichai@xxxxxxxxxxx>
---
Changes from v5:
- rebased on linux next.
- Link to v5: https://lore.kernel.org/linux-pci/1690952359-8625-4-git-send-email-quic_krichai@xxxxxxxxxxx/T/#
Changes from v4:
- removed the enum to select to send PME or toggle wake and use bool variable in
the api itself as suggested by mani.
Changes from v3:
- changed the bool return type to int for waking the host in mhi ep driver
as suggested by dan and bjorn.
- Changed commit logs as suggested by bjorn.
Changes from v2:
- Addressed review comments made by mani.
Changes from v1:
- Moved from RFC patch to regular patch
- Inclueded EPF patch and added a new op patch to notify D-state change.

---
Krishna chaitanya chundru (5):
PCI: endpoint: Add wakeup host API to EPC core
PCI: dwc: Add wakeup host op to pci_epc_ops
PCI: qcom-ep: Add wake up host op to dw_pcie_ep_ops
PCI: epf-mhi: Add wakeup host op
bus: mhi: ep: wake up host if the MHI state is in M3

Documentation/PCI/endpoint/pci-endpoint.rst | 6 +++++
drivers/bus/mhi/ep/main.c | 28 +++++++++++++++++++++++
drivers/pci/controller/dwc/pcie-designware-ep.c | 12 ++++++++++
drivers/pci/controller/dwc/pcie-designware.h | 1 +
drivers/pci/controller/dwc/pcie-qcom-ep.c | 25 +++++++++++++++++++++
drivers/pci/endpoint/functions/pci-epf-mhi.c | 11 +++++++++
drivers/pci/endpoint/pci-epc-core.c | 30 +++++++++++++++++++++++++
include/linux/mhi_ep.h | 1 +
include/linux/pci-epc.h | 5 +++++
9 files changed, 119 insertions(+)
---
base-commit: 4e0938fbb7efe1df1e57c0450a840d9605734c27
change-id: 20240710-wakeup_host-2b95824c0bcf

Best regards,
--
Krishna chaitanya chundru <quic_krichai@xxxxxxxxxxx>