]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
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:20:54 +0000 (10:20 +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 4f24f63922126ee2e28e0558716a985c54c18ef5..9c58dcd7b324274ace251905a27f2e92d370d711 100644 (file)
@@ -295,7 +295,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);