mbox series

[v2,00/10] PCI: endpoint: Make host reboot handling more robust

Message ID 20240401-pci-epf-rework-v2-0-970dbe90b99d@linaro.org (mailing list archive)
Headers show
Series PCI: endpoint: Make host reboot handling more robust | expand

Message

Manivannan Sadhasivam April 1, 2024, 3:50 p.m. UTC
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@linaro.org/
[2] https://lore.kernel.org/linux-pci/20240320113157.322695-1-cassel@kernel.org/

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
---
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@kernel.org/
- Link to v1: https://lore.kernel.org/r/20240314-pci-epf-rework-v1-0-6134e6c1d491@linaro.org

---
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,

Comments

Niklas Cassel April 2, 2024, 9:41 a.m. UTC | #1
On Mon, Apr 01, 2024 at 09:20:26PM +0530, Manivannan Sadhasivam wrote:
> 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

Hello Mani,

> [1] https://lore.kernel.org/linux-pci/20240314-pci-dbi-rework-v10-0-14a45c5a938e@linaro.org/
> [2] https://lore.kernel.org/linux-pci/20240320113157.322695-1-cassel@kernel.org/

AFAICT both these series [1] (DBI rework v12, not v10) and [2] are fully
reviewed and seem to be ready to go.

Considering that we have patches depending on [1] and [2],
namely the series in $subject, but also:
https://lore.kernel.org/linux-pci/20240330041928.1555578-1-dlemoal@kernel.org/T/#t

I think it would be a good idea if you could apply [1] and [2] to the
pci/endpoint branch.

(It is not easy for people to know that they will need to rebase their work on
these (fully reviewed) series, when they have not been applied.)


Kind regards,
Niklas


> 
> Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> ---
> 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@kernel.org/
> - Link to v1: https://lore.kernel.org/r/20240314-pci-epf-rework-v1-0-6134e6c1d491@linaro.org
> 
> ---
> 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@linaro.org>
>
Niklas Cassel April 2, 2024, 10:52 a.m. UTC | #2
On Mon, Apr 01, 2024 at 09:20:26PM +0530, Manivannan Sadhasivam wrote:
> 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@linaro.org/
> [2] https://lore.kernel.org/linux-pci/20240320113157.322695-1-cassel@kernel.org/
> 
> Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> ---

Tested-by: Niklas Cassel <cassel@kernel.org>
Manivannan Sadhasivam April 3, 2024, 1:48 p.m. UTC | #3
On Tue, Apr 02, 2024 at 11:41:00AM +0200, Niklas Cassel wrote:
> On Mon, Apr 01, 2024 at 09:20:26PM +0530, Manivannan Sadhasivam wrote:
> > 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
> 
> Hello Mani,
> 
> > [1] https://lore.kernel.org/linux-pci/20240314-pci-dbi-rework-v10-0-14a45c5a938e@linaro.org/
> > [2] https://lore.kernel.org/linux-pci/20240320113157.322695-1-cassel@kernel.org/
> 
> AFAICT both these series [1] (DBI rework v12, not v10) and [2] are fully
> reviewed and seem to be ready to go.
> 
> Considering that we have patches depending on [1] and [2],
> namely the series in $subject, but also:
> https://lore.kernel.org/linux-pci/20240330041928.1555578-1-dlemoal@kernel.org/T/#t
> 
> I think it would be a good idea if you could apply [1] and [2] to the
> pci/endpoint branch.
> 

Unfortunately, I cannot merge the patches outside 'pci/endpoint' even though
these are related to the PCI Endpoint subsystem. But I have delegated these 2
series to Krzysztof, so hopefully he'll apply it soon.

- Mani

> (It is not easy for people to know that they will need to rebase their work on
> these (fully reviewed) series, when they have not been applied.)
> 
> 
> Kind regards,
> Niklas
> 
> 
> > 
> > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> > ---
> > 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@kernel.org/
> > - Link to v1: https://lore.kernel.org/r/20240314-pci-epf-rework-v1-0-6134e6c1d491@linaro.org
> > 
> > ---
> > 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@linaro.org>
> >
Niklas Cassel April 8, 2024, 9:49 a.m. UTC | #4
On Wed, Apr 03, 2024 at 07:18:25PM +0530, Manivannan Sadhasivam wrote:
> On Tue, Apr 02, 2024 at 11:41:00AM +0200, Niklas Cassel wrote:
> > On Mon, Apr 01, 2024 at 09:20:26PM +0530, Manivannan Sadhasivam wrote:
> > > 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
> > 
> > Hello Mani,
> > 
> > > [1] https://lore.kernel.org/linux-pci/20240314-pci-dbi-rework-v10-0-14a45c5a938e@linaro.org/
> > > [2] https://lore.kernel.org/linux-pci/20240320113157.322695-1-cassel@kernel.org/
> > 
> > AFAICT both these series [1] (DBI rework v12, not v10) and [2] are fully
> > reviewed and seem to be ready to go.
> > 
> > Considering that we have patches depending on [1] and [2],
> > namely the series in $subject, but also:
> > https://lore.kernel.org/linux-pci/20240330041928.1555578-1-dlemoal@kernel.org/T/#t
> > 
> > I think it would be a good idea if you could apply [1] and [2] to the
> > pci/endpoint branch.
> > 
> 
> Unfortunately, I cannot merge the patches outside 'pci/endpoint' even though
> these are related to the PCI Endpoint subsystem. But I have delegated these 2
> series to Krzysztof, so hopefully he'll apply it soon.

Hello Mani, Krzysztof,

These three series:
https://patchwork.kernel.org/project/linux-pci/list/?series=836730&state=*
https://patchwork.kernel.org/project/linux-pci/list/?series=838789&state=*

Still haven't been merged.

Considering that the PCI endpoint memory mapping series:
https://patchwork.kernel.org/project/linux-pci/list/?series=839970
conflicts with both of these series, I think that it would be nice if the
two fully reviewed series above could get picked up.

Right now, I think we still have time to get the PCI endpoint memory mapping
series fully reviewed to live in linux-next for 2 weeks before the next merge
window opens, but time is running out (because of delays for what appears to
be no apparent reason).


Kind regards,
Niklas


P.S.
It would also be nice to see:
https://patchwork.kernel.org/project/linux-pci/list/?series=838545&state=*
getting picked up.