mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
spi: fsl_qspi: Pet watchdog even more
Pet the watchdog once upon each command call (qspi_xfer) and during each loop iteration in several commands. This fixes a watchdog reset especially during erase command. Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com> Reviewed-by: York Sun <york.sun@nxp.com>
This commit is contained in:
parent
a65d740821
commit
4df24f2c40
1 changed files with 8 additions and 0 deletions
|
@ -493,6 +493,8 @@ static void qspi_op_rdbank(struct fsl_qspi_priv *priv, u8 *rxbuf, u32 len)
|
|||
;
|
||||
|
||||
while (1) {
|
||||
WATCHDOG_RESET();
|
||||
|
||||
reg = qspi_read32(priv->flags, ®s->rbsr);
|
||||
if (reg & QSPI_RBSR_RDBFL_MASK) {
|
||||
data = qspi_read32(priv->flags, ®s->rbdr[0]);
|
||||
|
@ -530,6 +532,8 @@ static void qspi_op_rdid(struct fsl_qspi_priv *priv, u32 *rxbuf, u32 len)
|
|||
|
||||
i = 0;
|
||||
while ((RX_BUFFER_SIZE >= len) && (len > 0)) {
|
||||
WATCHDOG_RESET();
|
||||
|
||||
rbsr_reg = qspi_read32(priv->flags, ®s->rbsr);
|
||||
if (rbsr_reg & QSPI_RBSR_RDBFL_MASK) {
|
||||
data = qspi_read32(priv->flags, ®s->rbdr[i]);
|
||||
|
@ -702,6 +706,8 @@ static void qspi_op_rdsr(struct fsl_qspi_priv *priv, void *rxbuf, u32 len)
|
|||
;
|
||||
|
||||
while (1) {
|
||||
WATCHDOG_RESET();
|
||||
|
||||
reg = qspi_read32(priv->flags, ®s->rbsr);
|
||||
if (reg & QSPI_RBSR_RDBFL_MASK) {
|
||||
data = qspi_read32(priv->flags, ®s->rbdr[0]);
|
||||
|
@ -757,6 +763,8 @@ int qspi_xfer(struct fsl_qspi_priv *priv, unsigned int bitlen,
|
|||
static u32 wr_sfaddr;
|
||||
u32 txbuf;
|
||||
|
||||
WATCHDOG_RESET();
|
||||
|
||||
if (dout) {
|
||||
if (flags & SPI_XFER_BEGIN) {
|
||||
priv->cur_seqid = *(u8 *)dout;
|
||||
|
|
Loading…
Reference in a new issue