mbox series

[v4,0/9] PCI: EPC: Add support to wake up host from D3 states

Message ID 1689232218-28265-1-git-send-email-quic_krichai@quicinc.com
Headers show
Series PCI: EPC: Add support to wake up host from D3 states | expand

Message

Krishna Chaitanya Chundru July 13, 2023, 7:10 a.m. UTC
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 D3 state or
toggle wake when the device is D3 cold and vaux is not supplied.

As EPF doestn't know the D-state of the PCI, added a notify op whenever
device state changes.

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.

---
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 (9):
  PCI: endpoint: Add D-state change notifier support
  PCI: qcom-ep: Add support for D-state change notification
  PCI: epf-mhi: Add support for handling D-state notify from EPC
  PCI: qcom-ep: Update the D-state log
  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     | 11 +++++
 drivers/bus/mhi/ep/main.c                       | 27 ++++++++++++
 drivers/pci/controller/dwc/pcie-designware-ep.c | 12 +++++
 drivers/pci/controller/dwc/pcie-designware.h    |  3 ++
 drivers/pci/controller/dwc/pcie-qcom-ep.c       | 36 ++++++++++++++-
 drivers/pci/endpoint/functions/pci-epf-mhi.c    | 27 ++++++++++++
 drivers/pci/endpoint/pci-epc-core.c             | 58 +++++++++++++++++++++++++
 include/linux/mhi_ep.h                          |  4 ++
 include/linux/pci-epc.h                         | 12 +++++
 include/linux/pci-epf.h                         |  1 +
 10 files changed, 190 insertions(+), 1 deletion(-)

Comments

Manivannan Sadhasivam July 28, 2023, 4:37 a.m. UTC | #1
On Thu, Jul 13, 2023 at 12:40:09PM +0530, Krishna chaitanya chundru wrote:
> 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 D3 state or
> toggle wake when the device is D3 cold and vaux is not supplied.
> 
> As EPF doestn't know the D-state of the PCI, added a notify op whenever
> device state changes.
> 
> 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.
> 

Please split this series into two. One adding D-state support and another
(dependant) adding wakeup support. We can try to merge atleast first one for
6.6.

- 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 (9):
>   PCI: endpoint: Add D-state change notifier support
>   PCI: qcom-ep: Add support for D-state change notification
>   PCI: epf-mhi: Add support for handling D-state notify from EPC
>   PCI: qcom-ep: Update the D-state log
>   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     | 11 +++++
>  drivers/bus/mhi/ep/main.c                       | 27 ++++++++++++
>  drivers/pci/controller/dwc/pcie-designware-ep.c | 12 +++++
>  drivers/pci/controller/dwc/pcie-designware.h    |  3 ++
>  drivers/pci/controller/dwc/pcie-qcom-ep.c       | 36 ++++++++++++++-
>  drivers/pci/endpoint/functions/pci-epf-mhi.c    | 27 ++++++++++++
>  drivers/pci/endpoint/pci-epc-core.c             | 58 +++++++++++++++++++++++++
>  include/linux/mhi_ep.h                          |  4 ++
>  include/linux/pci-epc.h                         | 12 +++++
>  include/linux/pci-epf.h                         |  1 +
>  10 files changed, 190 insertions(+), 1 deletion(-)
> 
> -- 
> 2.7.4
>
Krishna Chaitanya Chundru July 31, 2023, 5:39 a.m. UTC | #2
On 7/28/2023 10:07 AM, Manivannan Sadhasivam wrote:
> On Thu, Jul 13, 2023 at 12:40:09PM +0530, Krishna chaitanya chundru wrote:
>> 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 D3 state or
>> toggle wake when the device is D3 cold and vaux is not supplied.
>>
>> As EPF doestn't know the D-state of the PCI, added a notify op whenever
>> device state changes.
>>
>> 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.
>>
> Please split this series into two. One adding D-state support and another
> (dependant) adding wakeup support. We can try to merge atleast first one for
> 6.6.
>
> - Mani
Sure, can you point me any patch series that is added dependant on 
another series.
>> ---
>> 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 (9):
>>    PCI: endpoint: Add D-state change notifier support
>>    PCI: qcom-ep: Add support for D-state change notification
>>    PCI: epf-mhi: Add support for handling D-state notify from EPC
>>    PCI: qcom-ep: Update the D-state log
>>    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     | 11 +++++
>>   drivers/bus/mhi/ep/main.c                       | 27 ++++++++++++
>>   drivers/pci/controller/dwc/pcie-designware-ep.c | 12 +++++
>>   drivers/pci/controller/dwc/pcie-designware.h    |  3 ++
>>   drivers/pci/controller/dwc/pcie-qcom-ep.c       | 36 ++++++++++++++-
>>   drivers/pci/endpoint/functions/pci-epf-mhi.c    | 27 ++++++++++++
>>   drivers/pci/endpoint/pci-epc-core.c             | 58 +++++++++++++++++++++++++
>>   include/linux/mhi_ep.h                          |  4 ++
>>   include/linux/pci-epc.h                         | 12 +++++
>>   include/linux/pci-epf.h                         |  1 +
>>   10 files changed, 190 insertions(+), 1 deletion(-)
>>
>> -- 
>> 2.7.4
>>