[PATCH 0/3] PCI: dwc: Avoid full EP cleanup on PERST#

Manikanta Maddireddy posted 3 patches 1 day, 5 hours ago
.../pci/controller/dwc/pcie-designware-ep.c   | 152 +++++++++++++-----
drivers/pci/controller/dwc/pcie-designware.h  |  13 ++
drivers/pci/controller/dwc/pcie-tegra194.c    |   8 +-
3 files changed, 129 insertions(+), 44 deletions(-)
[PATCH 0/3] PCI: dwc: Avoid full EP cleanup on PERST#
Posted by Manikanta Maddireddy 1 day, 5 hours ago
This series avoids tearing down and reallocating DWC Endpoint software
resources on every PERST# assertion while still restoring reset-lost
hardware state on the following PERST# deassert.

The current Tegra194/234 Endpoint flow can run the full DWC EP
cleanup/init sequence for each PERST# cycle.  That is heavier than needed
for a link reset and can repeatedly free/reallocate devres/dmam-backed
resources that are intended to live for the driver lifetime.  It also risks
stale software users running after the host removes the link.

Patch 1 adds a common DWC EP reinit helper that preserves software
resources and reinitializes only reset-lost registers when resources
already exist.  Patch 2 switches Tegra194/234 Endpoint PERST# deassert to
that helper.  Patch 3 sends the software-only endpoint linkdown
notification on PERST# assert so EPF drivers stop outstanding work without
touching hardware after REFCLK may be gone.

The series keeps hardware-register cleanup in the PERST# deassert path
where REFCLK and resets are available.

Manikanta Maddireddy (3):
  PCI: dwc: Add Endpoint reinit helper
  PCI: tegra194: Avoid full Endpoint reinit on PERST#
  PCI: tegra194: Notify Endpoint functions on PERST# assert

 .../pci/controller/dwc/pcie-designware-ep.c   | 152 +++++++++++++-----
 drivers/pci/controller/dwc/pcie-designware.h  |  13 ++
 drivers/pci/controller/dwc/pcie-tegra194.c    |   8 +-
 3 files changed, 129 insertions(+), 44 deletions(-)

-- 
2.34.1