diff mbox series

[U-Boot,2/2] drivers/spi: fsl_qspi: fix controller busy check

Message ID 20190626084453.1993-3-thomas.schaefer@kontron.com
State Superseded
Delegated to: Jagannadha Sutradharudu Teki
Headers show
Series [U-Boot,1/2] drivers/spi: fsl_qspi: fix controller busy check | expand

Commit Message

Thomas Schaefer June 26, 2019, 8:44 a.m. UTC
Use readl_poll_timeout instead of explicit calculation.

Signed-off-by: Thomas Schaefer <thomas.schaefer@kontron.com>
---
 drivers/spi/fsl_qspi.c | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

Comments

Prabhakar Kushwaha Aug. 14, 2019, 6:52 a.m. UTC | #1
Dear Thomas,


> -----Original Message-----
> From: U-Boot <u-boot-bounces@lists.denx.de> On Behalf Of Thomas
> Schaefer
> Sent: Wednesday, June 26, 2019 2:15 PM
> To: jagan@amarulasolutions.com; festevam@gmail.com
> Cc: trini@konsulko.com; Thomas Schäfer <thomas.schaefer@kontron.com>;
> u-boot@lists.denx.de
> Subject: [U-Boot] [PATCH 2/2] drivers/spi: fsl_qspi: fix controller busy check
> 
> Use readl_poll_timeout instead of explicit calculation.
> 
> Signed-off-by: Thomas Schaefer <thomas.schaefer@kontron.com>
> ---

Both of your patch has same subject. Please fix it.

Delegating Jagan for future review.

--pk
Thomas Schaefer Aug. 14, 2019, 10:04 a.m. UTC | #2
Hi Prabhakar,

I have already reworked this with different subjects and Jagan has applied patches to u-boot-spi/master on July, 1st.

See

c6d0c5eb30b5d677a6eeca5079a4e9a27630b530

and

733391e84bd9d67582b2ecd719b35585b70fe74c

Best regards,
Thomas

-----Ursprüngliche Nachricht-----
Von: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com> 
Gesendet: Mittwoch, 14. August 2019 08:53
An: Thomas Schaefer <Thomas.Schaefer@kontron.com>; jagan@amarulasolutions.com; festevam@gmail.com
Cc: trini@konsulko.com; Thomas Schaefer <Thomas.Schaefer@kontron.com>; u-boot@lists.denx.de
Betreff: RE: [U-Boot] [PATCH 2/2] drivers/spi: fsl_qspi: fix controller busy check

Dear Thomas,


> -----Original Message-----
> From: U-Boot <u-boot-bounces@lists.denx.de> On Behalf Of Thomas 
> Schaefer
> Sent: Wednesday, June 26, 2019 2:15 PM
> To: jagan@amarulasolutions.com; festevam@gmail.com
> Cc: trini@konsulko.com; Thomas Schäfer <thomas.schaefer@kontron.com>; 
> u-boot@lists.denx.de
> Subject: [U-Boot] [PATCH 2/2] drivers/spi: fsl_qspi: fix controller 
> busy check
> 
> Use readl_poll_timeout instead of explicit calculation.
> 
> Signed-off-by: Thomas Schaefer <thomas.schaefer@kontron.com>
> ---

Both of your patch has same subject. Please fix it.

Delegating Jagan for future review.

--pk
diff mbox series

Patch

diff --git a/drivers/spi/fsl_qspi.c b/drivers/spi/fsl_qspi.c
index 2c5937509f..41abe1996f 100644
--- a/drivers/spi/fsl_qspi.c
+++ b/drivers/spi/fsl_qspi.c
@@ -10,6 +10,7 @@ 
 #include <spi.h>
 #include <asm/io.h>
 #include <linux/sizes.h>
+#include <linux/iopoll.h>
 #include <dm.h>
 #include <errno.h>
 #include <watchdog.h>
@@ -150,19 +151,13 @@  static void qspi_write32(u32 flags, u32 *addr, u32 val)
 static inline int is_controller_busy(const struct fsl_qspi_priv *priv)
 {
 	u32 val;
-	const u32 mask = QSPI_SR_BUSY_MASK | QSPI_SR_AHB_ACC_MASK |
-			 QSPI_SR_IP_ACC_MASK;
-	unsigned long timeout = timer_get_us() + 1000;
+	u32 mask = QSPI_SR_BUSY_MASK | QSPI_SR_AHB_ACC_MASK |
+		   QSPI_SR_IP_ACC_MASK;
 
-	do {
-		val = qspi_read32(priv->flags, &priv->regs->sr);
+	if (priv->flags & QSPI_FLAG_REGMAP_ENDIAN_BIG)
+		mask = (u32)cpu_to_be32(mask);
 
-		if ((~val & mask) == mask)
-			return 0;
-
-		if (timer_get_us() > timeout )
-			return -ETIMEDOUT;
-	} while (1);
+	return readl_poll_timeout(&priv->regs->sr, val, !(val & mask), 1000);
 }
 
 /* QSPI support swapping the flash read/write data