diff --git a/drivers/spi/spi-msm-geni.c b/drivers/spi/spi-msm-geni.c index cb0a55f0d213..b45f5f41e71c 100644 --- a/drivers/spi/spi-msm-geni.c +++ b/drivers/spi/spi-msm-geni.c @@ -1527,7 +1527,9 @@ static int setup_fifo_xfer(struct spi_transfer *xfer, * mode for transfers or select the mode dynamically based on * size of data. */ - mas->cur_xfer_mode = SE_DMA; + if (spi->slave) + mas->cur_xfer_mode = SE_DMA; + if (mas->disable_dma || trans_len <= fifo_size) mas->cur_xfer_mode = FIFO_MODE; geni_se_select_mode(mas->base, mas->cur_xfer_mode);