Re: [PATCH] spi: spi-imx: spi_imx_transfer_one(): check for DMA transfer first

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 16.11.22 17:49, Marc Kleine-Budde wrote:
> The SPI framework checks for each transfer (with the struct
> spi_controller::can_dma callback) whether the driver wants to use DMA
> for the transfer. If the driver returns true, the SPI framework will
> map the transfer's data to the device, start the actual transfer and
> map the data back.
> 
> In commit 07e759387788 ("spi: spi-imx: add PIO polling support") the
> spi-imx driver's spi_imx_transfer_one() function was extended. If the
> estimated duration of a transfer does not exceed a configurable
> duration, a polling transfer function is used. This check happens
> before checking if the driver decided earlier for a DMA transfer.
> 
> If spi_imx_can_dma() decided to use a DMA transfer, and the user
> configured a big maximum polling duration, a polling transfer will be
> used. The DMA unmap after the transfer destroys the transferred data.
> 
> To fix this problem check in spi_imx_transfer_one() if the driver
> decided for DMA transfer first, then check the limits for a polling
> transfer.
> 
> Fixes: 07e759387788 ("spi: spi-imx: add PIO polling support")
> Link: https://lore.kernel.org/all/20221111003032.82371-1-festevam@xxxxxxxxx
> Reported-by: Frieder Schrempf <frieder.schrempf@xxxxxxxxxx>
> Reported-by: Fabio Estevam <festevam@xxxxxxxxx>
> Tested-by: Fabio Estevam <festevam@xxxxxxxxx>
> Cc: David Jander <david@xxxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx>

Tested-by: Frieder Schrempf <frieder.schrempf@xxxxxxxxxx>
Reviewed-by: Frieder Schrempf <frieder.schrempf@xxxxxxxxxx>



[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux