[PATCH 3/3] spi: imx: Propagate prepare_transfer() error from spi_imx_setupxfer()

From: John Madieu

Date: Fri May 01 2026 - 10:00:49 EST


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@xxxxxxxxx>
---
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