Re: [PATCH v5 04/17] dmaengine: sh: rz-dmac: Use rz_dmac_disable_hw()

From: Frank Li

Date: Tue May 12 2026 - 16:42:57 EST


On Tue, May 12, 2026 at 03:12:05PM +0300, Claudiu Beznea wrote:
> Use rz_dmac_disable_hw() instead of open codding it. This unifies the

Nit: typo codding

> code and prepares it for the addition of suspend to RAM and cyclic DMA.
>
> The rz_dmac_disable_hw() from rz_dmac_chan_probe() was moved after
> vchan_init() as it initializes the channel->vc.chan.device used in
> rz_dmac_disable_hw().
>
> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx>
> ---

Reviewed-by: Frank Li <Frank.Li@xxxxxxx>
>
> Changes in v5:
> - none
>
> Changes in v4:
> - in rz_dmac_chan_probe(): moved rz_dmac_disable_hw() after the
> vchan_init(&channel->vc, &dmac->engine) call as this is the one which
> initializes data structures used by the debug code from
> rz_dmac_disable_hw(); updated the patch description to reflect this
>
> Changes in v3:
> - none, this patch is new
>
> drivers/dma/sh/rz-dmac.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/dma/sh/rz-dmac.c b/drivers/dma/sh/rz-dmac.c
> index 1717b407ab9e..40ddf534c094 100644
> --- a/drivers/dma/sh/rz-dmac.c
> +++ b/drivers/dma/sh/rz-dmac.c
> @@ -873,7 +873,7 @@ static void rz_dmac_irq_handle_channel(struct rz_dmac_chan *channel)
> channel->index, chstat);
>
> scoped_guard(spinlock_irqsave, &channel->vc.lock)
> - rz_dmac_ch_writel(channel, CHCTRL_DEFAULT, CHCTRL, 1);
> + rz_dmac_disable_hw(channel);
> return;
> }
>
> @@ -1000,15 +1000,15 @@ static int rz_dmac_chan_probe(struct rz_dmac *dmac,
> }
> rz_lmdesc_setup(channel, lmdesc);
>
> - /* Initialize register for each channel */
> - rz_dmac_ch_writel(channel, CHCTRL_DEFAULT, CHCTRL, 1);
> -
> channel->vc.desc_free = rz_dmac_virt_desc_free;
> vchan_init(&channel->vc, &dmac->engine);
> INIT_LIST_HEAD(&channel->ld_queue);
> INIT_LIST_HEAD(&channel->ld_free);
> INIT_LIST_HEAD(&channel->ld_active);
>
> + /* Initialize register for each channel */
> + rz_dmac_disable_hw(channel);
> +
> /* Request the channel interrupt. */
> scnprintf(pdev_irqname, sizeof(pdev_irqname), "ch%u", index);
> irq = platform_get_irq_byname(pdev, pdev_irqname);
> --
> 2.43.0
>