summaryrefslogtreecommitdiffstats
path: root/drivers/crypto/inside-secure/safexcel.h
diff options
context:
space:
mode:
authorAntoine Ténart <antoine.tenart@free-electrons.com>2017-06-15 09:56:24 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2017-06-20 11:21:45 +0800
commit86671abbbbfc959c4e4cbd2c618d5868a6f8dcf2 (patch)
tree3531857f16fedde5f69a04c26e888ace08b218cf /drivers/crypto/inside-secure/safexcel.h
parent9785843424c803cbe9515c477a6b89181914ea09 (diff)
downloadblackbird-op-linux-86671abbbbfc959c4e4cbd2c618d5868a6f8dcf2.tar.gz
blackbird-op-linux-86671abbbbfc959c4e4cbd2c618d5868a6f8dcf2.zip
crypto: inside-secure - use one queue per hw ring
Update the inside-secure safexcel driver from using one global queue to one queue per hw ring. This ease the request management and keep the hw in sync with what's done in sw. Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/inside-secure/safexcel.h')
-rw-r--r--drivers/crypto/inside-secure/safexcel.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/crypto/inside-secure/safexcel.h b/drivers/crypto/inside-secure/safexcel.h
index 7e3cbb9ac98e..abe0f59d1473 100644
--- a/drivers/crypto/inside-secure/safexcel.h
+++ b/drivers/crypto/inside-secure/safexcel.h
@@ -469,11 +469,6 @@ struct safexcel_crypto_priv {
struct clk *clk;
struct safexcel_config config;
- spinlock_t lock;
- struct crypto_queue queue;
-
- bool need_dequeue;
-
/* context DMA pool */
struct dma_pool *context_pool;
@@ -490,6 +485,11 @@ struct safexcel_crypto_priv {
/* command/result rings */
struct safexcel_ring cdr;
struct safexcel_ring rdr;
+
+ /* queue */
+ struct crypto_queue queue;
+ spinlock_t queue_lock;
+ bool need_dequeue;
} ring[EIP197_MAX_RINGS];
};
@@ -533,7 +533,7 @@ struct safexcel_inv_result {
int error;
};
-void safexcel_dequeue(struct safexcel_crypto_priv *priv);
+void safexcel_dequeue(struct safexcel_crypto_priv *priv, int ring);
void safexcel_complete(struct safexcel_crypto_priv *priv, int ring);
void safexcel_free_context(struct safexcel_crypto_priv *priv,
struct crypto_async_request *req,
OpenPOWER on IntegriCloud