From c6237d0ba123f77e56f82bee9b270f1f96c36623 Mon Sep 17 00:00:00 2001 From: Ashish Kori Date: Mon, 28 Sep 2020 18:55:46 +0530 Subject: [PATCH] spi: spi-geni-qcom: Use DMA mode for SPI responder requester SPI Transfer mode selection is based on length but in SPI responder case we get some latency for FIFO mode transfer that will cause some delay in SPI responder transfer and we get "TX_FIFO_RD_ERR" interrupt. Moving SPI responder to DMA mode for all transfer will not have this latency issue and SPI requester/responder will be in sync and we won't get any error related to SPI requester/responder sync. Change-Id: I6b9676aad2a4875a9ff6c4d998a45d2cd8a14cfa Signed-off-by: Ashish Kori --- drivers/spi/spi-msm-geni.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/spi/spi-msm-geni.c b/drivers/spi/spi-msm-geni.c index a41194f863eb..f78c7b0c2737 100644 --- a/drivers/spi/spi-msm-geni.c +++ b/drivers/spi/spi-msm-geni.c @@ -1461,6 +1461,9 @@ static int setup_fifo_xfer(struct spi_transfer *xfer, mas->cur_xfer_mode = SE_DMA; if (mas->disable_dma || trans_len <= fifo_size) mas->cur_xfer_mode = FIFO_MODE; + + if (spi->slave) + mas->cur_xfer_mode = SE_DMA; geni_se_select_mode(mas->base, mas->cur_xfer_mode); if (!spi->slave)