]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
dmaengine: sh: rz-dmac: Fix rz_dmac_terminate_all()
authorBiju Das <biju.das.jz@bp.renesas.com>
Thu, 13 Nov 2025 19:50:48 +0000 (19:50 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 Jan 2026 10:18:49 +0000 (11:18 +0100)
commit9969db4816aed975197e6570b863a9fe9cd0a2a1
treec05b40fbd5243d72cf4d7cbf4fb0e3442ebf02ae
parent01b1d781394fc9b83015e3a3cd46b17bda842bd8
dmaengine: sh: rz-dmac: Fix rz_dmac_terminate_all()

commit 747213b08a1ab6a76e3e3b3e7a209cc1d402b5d0 upstream.

After audio full duplex testing, playing the recorded file contains a few
playback frames from the previous time. The rz_dmac_terminate_all() does
not reset all the hardware descriptors queued previously, leading to the
wrong descriptor being picked up during the next DMA transfer. Fix the
above issue by resetting all the descriptor headers for a channel in
rz_dmac_terminate_all() as rz_dmac_lmdesc_recycle() points to the proper
descriptor header filled by the rz_dmac_prepare_descs_for_slave_sg().

Cc: stable@kernel.org
Fixes: 5000d37042a6 ("dmaengine: sh: Add DMAC driver for RZ/G2L SoC")
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Tested-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Link: https://patch.msgid.link/20251113195052.564338-1-biju.das.jz@bp.renesas.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/dma/sh/rz-dmac.c