> -----Original Message----- > From: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> > Sent: 9 February, 2023 5:47 PM > To: JiaJie Ho <jiajie.ho@xxxxxxxxxxxxxxxx> > Cc: David S . Miller <davem@xxxxxxxxxxxxx>; Rob Herring > <robh+dt@xxxxxxxxxx>; Krzysztof Kozlowski > <krzysztof.kozlowski+dt@xxxxxxxxxx>; Emil Renner Berthing > <kernel@xxxxxxxx>; Conor Dooley <conor.dooley@xxxxxxxxxxxxx>; linux- > crypto@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux- > kernel@xxxxxxxxxxxxxxx; linux-riscv@xxxxxxxxxxxxxxxxxxx > Subject: Re: [PATCH v2 4/4] crypto: starfive - Add hash and HMAC support > > On Mon, Jan 30, 2023 at 11:42:42PM +0800, Jia Jie Ho wrote: > > > > +static inline int starfive_hash_wait_hmac_done(struct > > +starfive_cryp_ctx *ctx) { > > + struct starfive_cryp_dev *cryp = ctx->cryp; > > + u32 status; > > + > > + return readl_relaxed_poll_timeout(cryp->base + > STARFIVE_HASH_SHACSR, status, > > + (status & > STARFIVE_HASH_HMAC_DONE), 10, 100000); } > > + > > +static inline int starfive_hash_wait_busy(struct starfive_cryp_ctx > > +*ctx) { > > + struct starfive_cryp_dev *cryp = ctx->cryp; > > + u32 status; > > + > > + return readl_relaxed_poll_timeout(cryp->base + > STARFIVE_HASH_SHACSR, status, > > + !(status & STARFIVE_HASH_BUSY), > 10, 100000); } > > + > > +static inline int starfive_hash_wait_key_done(struct > > +starfive_cryp_ctx *ctx) { > > + struct starfive_cryp_dev *cryp = ctx->cryp; > > + u32 status; > > + > > + return readl_relaxed_poll_timeout(cryp->base + > STARFIVE_HASH_SHACSR, status, > > + (status & > STARFIVE_HASH_KEY_DONE), 10, 100000); } > > Is there no IRQ mechanism for this? Only hmac done has IRQ, I'll add that in the next version. Thanks Jia Jie