diff options
| author | Akhil R <akhilrajeev@nvidia.com> | 2026-05-18 17:10:13 +0530 |
|---|---|---|
| committer | Andi Shyti <andi.shyti@kernel.org> | 2026-06-08 21:21:42 +0200 |
| commit | 656646b3847ac6a21b074a813223feef2aadd6e2 (patch) | |
| tree | 4378136ba93257f0161c4cb444eca2c660dcda3c /scripts | |
| parent | 97d0a9c6e80903d342656ab8a7743a9ec50c92e1 (diff) | |
i2c: tegra: Fix NOIRQ suspend/resume
The Tegra I2C driver relies on runtime PM to wake up the controller before
each transfer. However, runtime PM is disabled between the system suspend
and NOIRQ suspend. If an I2C device initiates a transfer during this
window, the I2C controller fails to wake up and the transfer fails. To
handle this, the controller must be kept available for this period to
allow transfers.
Rework the I2C controller's system PM callbacks such that the controller
is resumed from runtime suspend during system suspend and it stays
RPM_ACTIVE throughout the suspend-resume cycle until it is runtime
suspended back in the system resume. The clocks are disabled in NOIRQ
suspend and enabled back in NOIRQ resume by calling the controller's
runtime PM functions directly.
Fixes: 8ebf15e9c869 ("i2c: tegra: Move suspend handling to NOIRQ phase")
Assisted-by: Cursor:claude-4.6-opus
Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Cc: <stable@vger.kernel.org> # v5.4+
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://lore.kernel.org/r/20260518114013.62065-5-akhilrajeev@nvidia.com
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions
