[PATCH v2 6/6] memory: renesas-rpc-if: Use runtime PM autosuspend after transfers
Prabhakar <[email protected]> Mon, 27 Jul 2026 11:34:49 +0100
| Newsgroups | org.kernel.vger.linux-renesas-soc,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
From: Lad Prabhakar <[email protected]> Replace pm_runtime_put() with pm_runtime_put_autosuspend() after manual transfers and direct memory-mapped read/write operations. Flash page programming may be performed as a sequence of closely spaced transfer operations. Calling pm_runtime_put() after each operation allows the runtime PM core to suspend the controller between successive transfers, introducing unnecessary suspend/resume cycles and potentially interrupting multi-step transfer sequences. Use pm_runtime_put_autosuspend() instead so the controller remains active while transfers continue, allowing it to suspend only after an idle period. Signed-off-by: Lad Prabhakar <[email protected]> --- Note corresponding pm_runtime_set_autosuspend_delay()/pm_runtime_use_autosuspend() calls are already present in SPI driver. --- drivers/memory/renesas-rpc-if.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/memory/renesas-rpc-if.c b/drivers/memory/renesas-rpc-if.c index d98991266887..ec901a5a99aa 100644 --- a/drivers/memory/renesas-rpc-if.c +++ b/drivers/memory/renesas-rpc-if.c @@ -776,7 +776,7 @@ int rpcif_manual_xfer(struct device *dev) ret = rpc->info->impl->manual_xfer(rpc); - pm_runtime_put(dev); + pm_runtime_put_autosuspend(dev); return ret; } @@ -891,7 +891,7 @@ ssize_t rpcif_dirmap_read(struct device *dev, u64 offs, size_t len, void *buf) read = rpc->info->impl->dirmap_read(rpc, offs, len, buf); - pm_runtime_put(dev); + pm_runtime_put_autosuspend(dev); return read; } @@ -948,7 +948,7 @@ ssize_t xspi_dirmap_write(struct device *dev, u64 offs, size_t len, const void * regmap_update_bits(xspi->regmap, XSPI_BMCTL1, XSPI_BMCTL1_MWRPUSH, XSPI_BMCTL1_MWRPUSH); - pm_runtime_put(dev); + pm_runtime_put_autosuspend(dev); return writebytes; } -- 2.54.0