[PATCH 3/3] spi: imx: Propagate prepare_transfer() error from spi_imx_setupxfer()
Frank Li
Frank.li at nxp.com
Fri May 1 21:51:07 PDT 2026
On Fri, May 01, 2026 at 01:59:51PM +0000, John Madieu wrote:
> spi_imx_setupxfer() calls the per-variant prepare_transfer()
> callback and returns 0 unconditionally:
>
> spi_imx->devtype_data->prepare_transfer(spi_imx, spi, t);
>
> return 0;
>
> mx51_ecspi_prepare_transfer() can return -EINVAL when the requested
> word_delay does not fit in MX51_ECSPI_PERIOD_MASK. The error is
> detected after a partial set of register writes (CTRL: BL, clkdiv,
> SMC), so the controller is left in a partially-configured state and
> the transfer is then submitted as if setup succeeded.
>
> Propagate the return value. The other variants' prepare_transfer
> callbacks all return 0, so this is a no-op for them.
>
> Signed-off-by: John Madieu <john.madieu at gmail.com>
> ---
Reviewed-by: Frank Li <Frank.Li at nxp.com>
> drivers/spi/spi-imx.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c
> index 4e3dbd01d619..480d1e8b281f 100644
> --- a/drivers/spi/spi-imx.c
> +++ b/drivers/spi/spi-imx.c
> @@ -1382,9 +1382,7 @@ static int spi_imx_setupxfer(struct spi_device *spi,
> spi_imx->target_burst = t->len;
> }
>
> - spi_imx->devtype_data->prepare_transfer(spi_imx, spi, t);
> -
> - return 0;
> + return spi_imx->devtype_data->prepare_transfer(spi_imx, spi, t);
> }
>
> static void spi_imx_sdma_exit(struct spi_imx_data *spi_imx)
> --
> 2.25.1
>
More information about the linux-arm-kernel
mailing list