spi: stm32-qspi: Fix wait_cmd timeout in APM mode
authorPatrice Chotard <patrice.chotard@foss.st.com>
Wed, 11 May 2022 07:46:42 +0000 (09:46 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jun 2022 08:22:36 +0000 (10:22 +0200)
[ Upstream commit d83d89ea68b4726700fa87b22db075e4217e691c ]

In APM mode, TCF and TEF flags are not set. To avoid timeout in
stm32_qspi_wait_cmd(), don't check if TCF/TEF are set.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reported-by: eberhard.stoll@kontron.de
Link: https://lore.kernel.org/r/20220511074644.558874-2-patrice.chotard@foss.st.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/spi/spi-stm32-qspi.c

index ffdc55f..dd38cb8 100644 (file)
@@ -308,7 +308,8 @@ static int stm32_qspi_wait_cmd(struct stm32_qspi *qspi,
        if (!op->data.nbytes)
                goto wait_nobusy;
 
-       if (readl_relaxed(qspi->io_base + QSPI_SR) & SR_TCF)
+       if ((readl_relaxed(qspi->io_base + QSPI_SR) & SR_TCF) ||
+           qspi->fmode == CCR_FMODE_APM)
                goto out;
 
        reinit_completion(&qspi->data_completion);