summaryrefslogtreecommitdiff
path: root/drivers/spi
diff options
context:
space:
mode:
authorPatrice Chotard <patrice.chotard@foss.st.com>2021-01-20 16:42:02 +0300
committerPatrice Chotard <patrice.chotard@foss.st.com>2021-03-11 18:59:16 +0300
commite48ec51b43ed0c9a4eb767addb829cef418041c7 (patch)
tree4375ec914cf5b78c2281503d7f34dad540b06cf1 /drivers/spi
parent5988575a9006e4171a5a59721a537a51f12fabe6 (diff)
downloadu-boot-e48ec51b43ed0c9a4eb767addb829cef418041c7.tar.xz
spi: stm32_qspi: Add WATCHDOG_RESET in _stm32_qspi_read_fifo()
In case of reading large area and memory-map mode is misconfigured (memory-map size declared lower than the real size of the memory chip) watchdog can be triggered. Add WATCHDOG_RESET() in _stm32_qspi_read_fifo to fix it. Issue reproduced with stm32mp157c-ev1 board and memory map size set to 1, with following command: sf read 0xC0000000 0 0x4000000 Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Diffstat (limited to 'drivers/spi')
-rw-r--r--drivers/spi/stm32_qspi.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/spi/stm32_qspi.c b/drivers/spi/stm32_qspi.c
index 75e5e840ed..4acc9047b9 100644
--- a/drivers/spi/stm32_qspi.c
+++ b/drivers/spi/stm32_qspi.c
@@ -16,6 +16,7 @@
#include <reset.h>
#include <spi.h>
#include <spi-mem.h>
+#include <watchdog.h>
#include <dm/device_compat.h>
#include <linux/bitops.h>
#include <linux/delay.h>
@@ -171,6 +172,7 @@ static int _stm32_qspi_wait_cmd(struct stm32_qspi_priv *priv,
static void _stm32_qspi_read_fifo(u8 *val, void __iomem *addr)
{
*val = readb(addr);
+ WATCHDOG_RESET();
}
static void _stm32_qspi_write_fifo(u8 *val, void __iomem *addr)