Re: [PATCH] spi: imx: replace dmaengine_terminate_all with dmaengine_terminate_sync
Frank Li <[email protected]> Fri, 24 Jul 2026 15:35:23 -0400
| Newsgroups | org.kernel.vger.linux-spi,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <amO-e2ThPaB-nqC9@lizhi-Precision-Tower-5810> |
On Tue, May 19, 2026 at 06:46:59PM +0800, Carlos Song (OSS) wrote: > From: Carlos Song <[email protected]> > > 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 <[email protected]> Reviewed-by: Frank Li <[email protected]> > --- > 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 >