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