summaryrefslogtreecommitdiffstats
path: root/drivers/crypto/qce
diff options
context:
space:
mode:
authorThara Gopinath <thara.gopinath@linaro.org>2020-11-19 16:52:30 +0100
committerHerbert Xu <herbert@gondor.apana.org.au>2020-11-27 07:13:40 +0100
commit8cbc3448214a9d4534f8381ec23ef5add0ae8d91 (patch)
treed71b7b30f5b10fdc1fd4b578498dd7f1f4c303ce /drivers/crypto/qce
parentcrypto: aegis128 - expose SIMD code path as separate driver (diff)
downloadlinux-8cbc3448214a9d4534f8381ec23ef5add0ae8d91.tar.xz
linux-8cbc3448214a9d4534f8381ec23ef5add0ae8d91.zip
crypto: qce - Enable support for crypto engine on sdm845
Add support Qualcomm Crypto Engine accelerated encryption and authentication algorithms on sdm845. Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Thara Gopinath <thara.gopinath@linaro.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/qce')
-rw-r--r--drivers/crypto/qce/core.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/drivers/crypto/qce/core.c b/drivers/crypto/qce/core.c
index 5e6717f9bbda..80b75085c265 100644
--- a/drivers/crypto/qce/core.c
+++ b/drivers/crypto/qce/core.c
@@ -159,7 +159,21 @@ static int qce_check_version(struct qce_device *qce)
return -ENODEV;
qce->burst_size = QCE_BAM_BURST_SIZE;
- qce->pipe_pair_id = 1;
+
+ /*
+ * Rx and tx pipes are treated as a pair inside CE.
+ * Pipe pair number depends on the actual BAM dma pipe
+ * that is used for transfers. The BAM dma pipes are passed
+ * from the device tree and used to derive the pipe pair
+ * id in the CE driver as follows.
+ * BAM dma pipes(rx, tx) CE pipe pair id
+ * 0,1 0
+ * 2,3 1
+ * 4,5 2
+ * 6,7 3
+ * ...
+ */
+ qce->pipe_pair_id = qce->dma.rxchan->chan_id >> 1;
dev_dbg(qce->dev, "Crypto device found, version %d.%d.%d\n",
major, minor, step);
@@ -260,6 +274,7 @@ static int qce_crypto_remove(struct platform_device *pdev)
static const struct of_device_id qce_crypto_of_match[] = {
{ .compatible = "qcom,crypto-v5.1", },
+ { .compatible = "qcom,crypto-v5.4", },
{}
};
MODULE_DEVICE_TABLE(of, qce_crypto_of_match);