On Sat, May 13, 2023 at 03:43:22PM +0800, David Yang wrote: > > +static int hica_sha_export(const struct hica_sha_priv *priv, void *out, > + unsigned int digestsize) > +{ > + if (hica_sha_wait(priv, SHA_RECORD_READY)) > + return -ETIMEDOUT; > + > + for (unsigned int i = 0; i < digestsize; i += sizeof(u32)) > + *(u32 *) (out + i) = > + be32_to_cpu(readl_relaxed(priv->base + SHA_OUT0 + i)); > + > + return 0; > +} Can you please explain what this is doing? Is this exporting the finalized hash, or the intermediate state? If it's exporting the intermediate state, why aren't you implementing an import function? Thanks, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt