[PATCH 0/7] memory: renesas-rpc-if: Optimize transfer overhead and implement runtime PM autosuspend

Prabhakar posted 7 patches 1 week, 2 days ago
drivers/memory/renesas-rpc-if.c | 87 ++++++++++++++-------------------
drivers/spi/spi-rpc-if.c        |  4 ++
2 files changed, 40 insertions(+), 51 deletions(-)
[PATCH 0/7] memory: renesas-rpc-if: Optimize transfer overhead and implement runtime PM autosuspend
Posted by Prabhakar 1 week, 2 days ago
From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

Hi all,

This patch series optimizes the Renesas RPC-IF driver by significantly
reducing software overhead in both the direct memory-mapped (dirmap) and
manual transfer paths, maximizing transaction throughput, and introducing
runtime PM autosuspend to prevent aggressive power gating during
consecutive flash operations.

---
Performance Results:

These changes were benchmarked using flash_speed on the RZ/T2H EVK with 
xSPI0/1 interfaces operating in 1S-1S-1S mode for write operations:

xSPI0(MX25LW51245G):
                 Without        With Fixes
  Write Speed:  806 KiB/s       942 KiB/s
  Read Speed:   5333 KiB/s      5361 KiB/s

xSPI1(AT25SF128A):
  Write Speed:  467 KiB/s       501 KiB/s
  Read Speed:   17964 KiB/s     18285 KiB/s


Note:
- Patches have been rebased on top of next-20260714.
- Ive kept patches 6 and 7 separate as they belong
  to different subsystems (SPI and memory) and may
  be applied independently.

Cheers,
Prabhakar

Lad Prabhakar (7):
  memory: renesas-rpc-if: Mark XSPI_CDD1BUF0 as volatile
  memory: renesas-rpc-if: Move static bridge configurations out of
    dirmap hot paths
  memory: renesas-rpc-if: Consolidate XSPI_CDTBUF0 updates in write path
  memory: renesas-rpc-if: Consolidate XSPI_CDTBUF0 updates in read path
  memory: renesas-rpc-if: Consolidate command setup register programming
  spi: spi-rpc-if: Implement 200ms runtime PM autosuspend delay
  memory: renesas-rpc-if: Use runtime PM autosuspend after transfers

 drivers/memory/renesas-rpc-if.c | 87 ++++++++++++++-------------------
 drivers/spi/spi-rpc-if.c        |  4 ++
 2 files changed, 40 insertions(+), 51 deletions(-)

-- 
2.54.0
Re: [PATCH 0/7] memory: renesas-rpc-if: Optimize transfer overhead and implement runtime PM autosuspend
Posted by Krzysztof Kozlowski 6 days, 1 hour ago
On 16/07/2026 00:24, Prabhakar wrote:
> From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> 
> Hi all,
> 
> This patch series optimizes the Renesas RPC-IF driver by significantly
> reducing software overhead in both the direct memory-mapped (dirmap) and
> manual transfer paths, maximizing transaction throughput, and introducing
> runtime PM autosuspend to prevent aggressive power gating during
> consecutive flash operations.

Why is spi patch in the middle of the set without any explanation of
merging dependencies/order?

Best regards,
Krzysztof
Re: [PATCH 0/7] memory: renesas-rpc-if: Optimize transfer overhead and implement runtime PM autosuspend
Posted by Lad, Prabhakar 5 days, 4 hours ago
Hi Krzysztof,

On Sun, Jul 19, 2026 at 3:42 PM Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
> On 16/07/2026 00:24, Prabhakar wrote:
> > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> >
> > Hi all,
> >
> > This patch series optimizes the Renesas RPC-IF driver by significantly
> > reducing software overhead in both the direct memory-mapped (dirmap) and
> > manual transfer paths, maximizing transaction throughput, and introducing
> > runtime PM autosuspend to prevent aggressive power gating during
> > consecutive flash operations.
>
> Why is spi patch in the middle of the set without any explanation of
> merging dependencies/order?
>
The rpc-if core driver acts as the low-level controller wrapper used
by spi-rpc-if. In this series, autosuspend is enabled in the SPI
driver, while the corresponding pm_runtime_put_autosuspend() calls are
added in the core wrapper driver.

Apologies for missing this explanation in the cover letter. Since
these changes do not break build or runtime bisectability if applied
independently, the rpc-if and spi-rpc-if patches can safely go through
separate maintainer trees.

Mark has already Acked the SPI patch. I will check if he is OK with
the SPI driver changes going via the memory tree. If not, I will
update the cover letter and split the patches up to send them
separately in v2.

Cheers,
Prabhakar
Re: (subset) [PATCH 0/7] memory: renesas-rpc-if: Optimize transfer overhead and implement runtime PM autosuspend
Posted by Mark Brown 5 days, 2 hours ago
On Wed, 15 Jul 2026 23:24:10 +0100, Prabhakar wrote:
> memory: renesas-rpc-if: Optimize transfer overhead and implement runtime PM autosuspend
> 
> From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> 
> Hi all,
> 
> This patch series optimizes the Renesas RPC-IF driver by significantly
> reducing software overhead in both the direct memory-mapped (dirmap) and
> manual transfer paths, maximizing transaction throughput, and introducing
> runtime PM autosuspend to prevent aggressive power gating during
> consecutive flash operations.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-7.3

Thanks!

[6/7] spi: spi-rpc-if: Implement 200ms runtime PM autosuspend delay
      https://git.kernel.org/broonie/spi/c/af4b98e33d56

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark