On 10/21/2020 11:07 PM, Iuliana Prodan wrote: > Use the new crypto_engine_alloc_init_and_set() function to > initialize crypto-engine and enable retry mechanism. > > Set the maximum size for crypto-engine software queue based on > Job Ring size (JOBR_DEPTH) and a threshold (reserved for the > non-crypto-API requests that are not pass through crypto-engine). ^ passed > > The callback for do_batch_requests is NULL, since CAAM > doesn't support linked requests. > > Signed-off-by: Iuliana Prodan <iuliana.prodan@xxxxxxx> > --- > drivers/crypto/caam/intern.h | 3 +++ > drivers/crypto/caam/jr.c | 6 +++++- > 2 files changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/crypto/caam/intern.h b/drivers/crypto/caam/intern.h > index 9112279..44fe6ee 100644 > --- a/drivers/crypto/caam/intern.h > +++ b/drivers/crypto/caam/intern.h > @@ -16,6 +16,9 @@ > /* Currently comes from Kconfig param as a ^2 (driver-required) */ > #define JOBR_DEPTH (1 << CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE) > > +#define THRESHOLD 15 Unless there's a comment added for THRESHOLD (e.g. what's in the commit message), I don't think the define is helpful. > +#define CRYPTO_ENGINE_MAX_QLEN (2 * (JOBR_DEPTH - THRESHOLD)) > + What's the logic behind multiplying by 2? > /* Kconfig params for interrupt coalescing if selected (else zero) */ > #ifdef CONFIG_CRYPTO_DEV_FSL_CAAM_INTC > #define JOBR_INTC JRCFG_ICEN > diff --git a/drivers/crypto/caam/jr.c b/drivers/crypto/caam/jr.c > index 6f66996..88540c9 100644 > --- a/drivers/crypto/caam/jr.c > +++ b/drivers/crypto/caam/jr.c > @@ -550,7 +550,11 @@ static int caam_jr_probe(struct platform_device *pdev) > } > > /* Initialize crypto engine */ > - jrpriv->engine = crypto_engine_alloc_init(jrdev, false); > + jrpriv->engine = crypto_engine_alloc_init_and_set(jrdev, > + true, > + NULL, > + false, > + CRYPTO_ENGINE_MAX_QLEN); Let's make the argument list more compact. Horia