Re: [PATCH] spi: imx: replace dmaengine_terminate_all with dmaengine_terminate_sync
From: Frank Li
Date: Fri Jul 24 2026 - 15:35:44 EST
On Tue, May 19, 2026 at 06:46:59PM +0800, Carlos Song (OSS) wrote:
> From: Carlos Song <carlos.song@xxxxxxx>
>
> The terminate API dmaengine_terminate_all() has been deprecated, improve
> driver with dmaengine_terminate_sync().
>
> Fixes: ba9b28652c75 ("spi: imx: enable DMA mode for target operation")
> Fixes: a450c8b77f92 ("spi: imx: handle DMA submission errors with dma_submit_error()")
> Signed-off-by: Carlos Song <carlos.song@xxxxxxx>
Reviewed-by: Frank Li <Frank.Li@xxxxxxx>
> ---
> drivers/spi/spi-imx.c | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c
> index 480d1e8b281f..ae9912905c67 100644
> --- a/drivers/spi/spi-imx.c
> +++ b/drivers/spi/spi-imx.c
> @@ -1774,8 +1774,8 @@ static int spi_imx_dma_submit(struct spi_imx_data *spi_imx,
> transfer_timeout);
> if (!time_left) {
> dev_err(spi_imx->dev, "I/O Error in DMA TX\n");
> - dmaengine_terminate_all(controller->dma_tx);
> - dmaengine_terminate_all(controller->dma_rx);
> + dmaengine_terminate_sync(controller->dma_tx);
> + dmaengine_terminate_sync(controller->dma_rx);
> return -ETIMEDOUT;
> }
>
> @@ -1784,7 +1784,7 @@ static int spi_imx_dma_submit(struct spi_imx_data *spi_imx,
> if (!time_left) {
> dev_err(&controller->dev, "I/O Error in DMA RX\n");
> spi_imx->devtype_data->reset(spi_imx);
> - dmaengine_terminate_all(controller->dma_rx);
> + dmaengine_terminate_sync(controller->dma_rx);
> return -ETIMEDOUT;
> }
> } else {
> @@ -1793,15 +1793,15 @@ static int spi_imx_dma_submit(struct spi_imx_data *spi_imx,
> if (wait_for_completion_interruptible(&spi_imx->dma_tx_completion) ||
> READ_ONCE(spi_imx->target_aborted)) {
> dev_dbg(spi_imx->dev, "I/O Error in DMA TX interrupted\n");
> - dmaengine_terminate_all(controller->dma_tx);
> - dmaengine_terminate_all(controller->dma_rx);
> + dmaengine_terminate_sync(controller->dma_tx);
> + dmaengine_terminate_sync(controller->dma_rx);
> return -EINTR;
> }
>
> if (wait_for_completion_interruptible(&spi_imx->dma_rx_completion) ||
> READ_ONCE(spi_imx->target_aborted)) {
> dev_dbg(spi_imx->dev, "I/O Error in DMA RX interrupted\n");
> - dmaengine_terminate_all(controller->dma_rx);
> + dmaengine_terminate_sync(controller->dma_rx);
> return -EINTR;
> }
>
> @@ -1818,9 +1818,9 @@ static int spi_imx_dma_submit(struct spi_imx_data *spi_imx,
> return 0;
>
> dmaengine_terminate_tx:
> - dmaengine_terminate_all(controller->dma_tx);
> + dmaengine_terminate_sync(controller->dma_tx);
> dmaengine_terminate_rx:
> - dmaengine_terminate_all(controller->dma_rx);
> + dmaengine_terminate_sync(controller->dma_rx);
>
> return -EINVAL;
> }
> --
> 2.43.0
>