2022-04-03 23:11:15

by Corentin LABBE

[permalink] [raw]
Subject: [PATCH v4 17/33] crypto: rockchip: use read_poll_timeout

Use read_poll_timeout instead of open coding it

Signed-off-by: Corentin Labbe <[email protected]>
---
drivers/crypto/rockchip/rk3288_crypto_ahash.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/rockchip/rk3288_crypto_ahash.c b/drivers/crypto/rockchip/rk3288_crypto_ahash.c
index 137013bd4410..21c9a0327ddf 100644
--- a/drivers/crypto/rockchip/rk3288_crypto_ahash.c
+++ b/drivers/crypto/rockchip/rk3288_crypto_ahash.c
@@ -10,6 +10,7 @@
*/
#include <linux/device.h>
#include <asm/unaligned.h>
+#include <linux/iopoll.h>
#include "rk3288_crypto.h"

/*
@@ -305,8 +306,8 @@ static int rk_hash_run(struct crypto_engine *engine, void *breq)
* efficiency, and make it response quickly when dma
* complete.
*/
- while (!CRYPTO_READ(tctx->dev, RK_CRYPTO_HASH_STS))
- udelay(10);
+ read_poll_timeout(readl, v, v == 0, 10, 1000, false,
+ tctx->dev->dev + RK_CRYPTO_HASH_STS);

for (i = 0; i < crypto_ahash_digestsize(tfm) / 4; i++) {
v = readl(tctx->dev->reg + RK_CRYPTO_HASH_DOUT_0 + i * 4);
--
2.35.1


2022-04-05 01:41:37

by John Keeping

[permalink] [raw]
Subject: Re: [PATCH v4 17/33] crypto: rockchip: use read_poll_timeout

On Fri, Apr 01, 2022 at 08:17:48PM +0000, Corentin Labbe wrote:
> Use read_poll_timeout instead of open coding it
>
> Signed-off-by: Corentin Labbe <[email protected]>
> ---
> drivers/crypto/rockchip/rk3288_crypto_ahash.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/crypto/rockchip/rk3288_crypto_ahash.c b/drivers/crypto/rockchip/rk3288_crypto_ahash.c
> index 137013bd4410..21c9a0327ddf 100644
> --- a/drivers/crypto/rockchip/rk3288_crypto_ahash.c
> +++ b/drivers/crypto/rockchip/rk3288_crypto_ahash.c
> @@ -10,6 +10,7 @@
> */
> #include <linux/device.h>
> #include <asm/unaligned.h>
> +#include <linux/iopoll.h>
> #include "rk3288_crypto.h"
>
> /*
> @@ -305,8 +306,8 @@ static int rk_hash_run(struct crypto_engine *engine, void *breq)
> * efficiency, and make it response quickly when dma
> * complete.
> */
> - while (!CRYPTO_READ(tctx->dev, RK_CRYPTO_HASH_STS))
> - udelay(10);
> + read_poll_timeout(readl, v, v == 0, 10, 1000, false,
> + tctx->dev->dev + RK_CRYPTO_HASH_STS);

This can be simplified to:

readl_poll_timeout(tctx->dev->dev + RK_CRYPTO_HASH_STS,
v, v == 0, 10, 1000);

But shouldn't this be tctx->dev->reg ?!

2022-04-11 10:02:37

by Corentin LABBE

[permalink] [raw]
Subject: Re: [PATCH v4 17/33] crypto: rockchip: use read_poll_timeout

Le Mon, Apr 04, 2022 at 12:38:27PM +0100, John Keeping a ?crit :
> On Fri, Apr 01, 2022 at 08:17:48PM +0000, Corentin Labbe wrote:
> > Use read_poll_timeout instead of open coding it
> >
> > Signed-off-by: Corentin Labbe <[email protected]>
> > ---
> > drivers/crypto/rockchip/rk3288_crypto_ahash.c | 5 +++--
> > 1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/crypto/rockchip/rk3288_crypto_ahash.c b/drivers/crypto/rockchip/rk3288_crypto_ahash.c
> > index 137013bd4410..21c9a0327ddf 100644
> > --- a/drivers/crypto/rockchip/rk3288_crypto_ahash.c
> > +++ b/drivers/crypto/rockchip/rk3288_crypto_ahash.c
> > @@ -10,6 +10,7 @@
> > */
> > #include <linux/device.h>
> > #include <asm/unaligned.h>
> > +#include <linux/iopoll.h>
> > #include "rk3288_crypto.h"
> >
> > /*
> > @@ -305,8 +306,8 @@ static int rk_hash_run(struct crypto_engine *engine, void *breq)
> > * efficiency, and make it response quickly when dma
> > * complete.
> > */
> > - while (!CRYPTO_READ(tctx->dev, RK_CRYPTO_HASH_STS))
> > - udelay(10);
> > + read_poll_timeout(readl, v, v == 0, 10, 1000, false,
> > + tctx->dev->dev + RK_CRYPTO_HASH_STS);
>
> This can be simplified to:
>
> readl_poll_timeout(tctx->dev->dev + RK_CRYPTO_HASH_STS,
> v, v == 0, 10, 1000);

Thanks, this is better.

>
> But shouldn't this be tctx->dev->reg ?!

Yes, I will fix it.

Thanks
Regards