Re: [U-Boot] [PATCH 1/1] spi: fsl_qspi: Pet watchdog even more
On 06/13/2017 10:49 PM, Alexander Stein wrote: > On Tuesday 13 June 2017 20:36:35, York Sun wrote: >> On 06/01/2017 04:26 AM, Alexander Stein wrote: >>> 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. >> >> Funny you keep petting the watchdog for this driver. I am curious what >> watchdog are you using? Why no one else suffer the reset. > > We use a SP706T with a timeout of 1.6s. Propably this short timeout causes the > problem for me only. > Applied to fsl-qoriq master. Thanks. York ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH 1/1] spi: fsl_qspi: Pet watchdog even more
On Tuesday 13 June 2017 20:36:35, York Sun wrote: > On 06/01/2017 04:26 AM, Alexander Stein wrote: > > 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. > > Funny you keep petting the watchdog for this driver. I am curious what > watchdog are you using? Why no one else suffer the reset. We use a SP706T with a timeout of 1.6s. Propably this short timeout causes the problem for me only. Best regards, Alexander ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH 1/1] spi: fsl_qspi: Pet watchdog even more
On 06/01/2017 04:26 AM, Alexander Stein wrote: > 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. > Funny you keep petting the watchdog for this driver. I am curious what watchdog are you using? Why no one else suffer the reset. Jagan, If you want to ack it, I can bring it in. York ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
[U-Boot] [PATCH 1/1] 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--- drivers/spi/fsl_qspi.c | 8 1 file changed, 8 insertions(+) diff --git a/drivers/spi/fsl_qspi.c b/drivers/spi/fsl_qspi.c index e61c67b088..1dfa89afc9 100644 --- a/drivers/spi/fsl_qspi.c +++ b/drivers/spi/fsl_qspi.c @@ -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, >rbsr); if (reg & QSPI_RBSR_RDBFL_MASK) { data = qspi_read32(priv->flags, >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, >rbsr); if (rbsr_reg & QSPI_RBSR_RDBFL_MASK) { data = qspi_read32(priv->flags, >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, >rbsr); if (reg & QSPI_RBSR_RDBFL_MASK) { data = qspi_read32(priv->flags, >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; -- 2.13.0 ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot