UPSTREAM: spi: spi-geni-qcom: Select FIFO mode for chip select
Spi geni driver switches between FIFO and DMA modes based on xfer length. FIFO mode relies on M_CMD_DONE_EN interrupt for completion while DMA mode relies on XX_DMA_DONE. During dynamic switching, if FIFO mode is chosen, FIFO related interrupts are enabled and DMA related interrupts are disabled. And viceversa. Chip select shares M_CMD_DONE_EN interrupt with FIFO to check completion. Now, if a chip select operation is preceded by a DMA xfer, M_CMD_DONE_EN interrupt would have been disabled and hence it will never receive one resulting in timeout. For chip select, in addition to setting the xfer mode to FIFO, select_mode() to FIFO so that required interrupts are enabled. Fixes: e5f0dfa7 ("spi: spi-geni-qcom: Add support for SE DMA mode") Suggested-by:Praveen Talari <quic_ptalari@quicinc.com> Signed-off-by:
Vijaya Krishna Nivarthi <quic_vnivarth@quicinc.com> Reviewed-by:
Douglas Anderson <dianders@chromium.org> Link: https://lore.kernel.org/r/1683626496-9685-1-git-send-email-quic_vnivarth@quicinc.com Signed-off-by:
Mark Brown <broonie@kernel.org> Bug: 370629635 Change-Id: Icd72416f413abc7fd67ac69c1a56251d9b2b4149 (cherry picked from commit 4c329f5d) Signed-off-by:
Praveen Talari <quic_ptalari@quicinc.com>
Loading