summaryrefslogtreecommitdiff
path: root/drivers/crypto/caam/qi.h
diff options
context:
space:
mode:
authorValentin Ciocoi Radulescu <valentin.ciocoi@nxp.com>2020-01-31 17:15:56 +0300
committerHerbert Xu <herbert@gondor.apana.org.au>2020-02-13 12:05:25 +0300
commit11144416a7557372e64f68c729f3d7cb8890a6d1 (patch)
treec7274025a88755a8807e338e6e09082353c4c065 /drivers/crypto/caam/qi.h
parent21f802cc9896743c61bacac6cb1de109a2cfc8bc (diff)
downloadlinux-11144416a7557372e64f68c729f3d7cb8890a6d1.tar.xz
crypto: caam/qi - optimize frame queue cleanup
Add reference counter incremented for each frame enqueued in CAAM and replace unconditional sleep in empty_caam_fq() with polling the reference counter. When CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y boot time on LS1043A platform with this optimization decreases from ~1100s to ~11s. Signed-off-by: Valentin Ciocoi Radulescu <valentin.ciocoi@nxp.com> Reviewed-by: Horia Geantă <horia.geanta@nxp.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/caam/qi.h')
-rw-r--r--drivers/crypto/caam/qi.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/crypto/caam/qi.h b/drivers/crypto/caam/qi.h
index 848958951f68..5894f16f8fe3 100644
--- a/drivers/crypto/caam/qi.h
+++ b/drivers/crypto/caam/qi.h
@@ -3,7 +3,7 @@
* Public definitions for the CAAM/QI (Queue Interface) backend.
*
* Copyright 2013-2016 Freescale Semiconductor, Inc.
- * Copyright 2016-2017 NXP
+ * Copyright 2016-2017, 2020 NXP
*/
#ifndef __QI_H__
@@ -52,6 +52,7 @@ enum optype {
* @context_a: shared descriptor dma address
* @req_fq: to-CAAM request frame queue
* @rsp_fq: from-CAAM response frame queue
+ * @refcnt: reference counter incremented for each frame enqueued in to-CAAM FQ
* @cpu: cpu on which to receive CAAM response
* @op_type: operation type
* @qidev: device pointer for CAAM/QI backend
@@ -62,6 +63,7 @@ struct caam_drv_ctx {
dma_addr_t context_a;
struct qman_fq *req_fq;
struct qman_fq *rsp_fq;
+ refcount_t refcnt;
int cpu;
enum optype op_type;
struct device *qidev;