crypto: rockchip - use read_poll_timeout
authorCorentin Labbe <clabbe@baylibre.com>
Tue, 27 Sep 2022 07:54:55 +0000 (07:54 +0000)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 28 Oct 2022 04:36:33 +0000 (12:36 +0800)
Use read_poll_timeout instead of open coding it.
In the same time, fix indentation of related comment.

Reviewed-by: John Keeping <john@metanate.com>
Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/rockchip/rk3288_crypto_ahash.c

index 137013bd44102eb71fd991323b8330ee2c394a1b..1fbab86c9238468dd92ea1e9c050f06e5c094243 100644 (file)
@@ -10,6 +10,7 @@
  */
 #include <linux/device.h>
 #include <asm/unaligned.h>
+#include <linux/iopoll.h>
 #include "rk3288_crypto.h"
 
 /*
@@ -295,18 +296,17 @@ static int rk_hash_run(struct crypto_engine *engine, void *breq)
                sg = sg_next(sg);
        }
 
-               /*
-                * it will take some time to process date after last dma
-                * transmission.
-                *
-                * waiting time is relative with the last date len,
-                * so cannot set a fixed time here.
-                * 10us makes system not call here frequently wasting
-                * efficiency, and make it response quickly when dma
-                * complete.
-                */
-       while (!CRYPTO_READ(tctx->dev, RK_CRYPTO_HASH_STS))
-               udelay(10);
+       /*
+        * it will take some time to process date after last dma
+        * transmission.
+        *
+        * waiting time is relative with the last date len,
+        * so cannot set a fixed time here.
+        * 10us makes system not call here frequently wasting
+        * efficiency, and make it response quickly when dma
+        * complete.
+        */
+       readl_poll_timeout(tctx->dev->reg + RK_CRYPTO_HASH_STS, v, v == 0, 10, 1000);
 
        for (i = 0; i < crypto_ahash_digestsize(tfm) / 4; i++) {
                v = readl(tctx->dev->reg + RK_CRYPTO_HASH_DOUT_0 + i * 4);