crypto: qce - Enable support for crypto engine on sdm845
authorThara Gopinath <thara.gopinath@linaro.org>
Thu, 19 Nov 2020 15:52:30 +0000 (10:52 -0500)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 27 Nov 2020 06:13:40 +0000 (17:13 +1100)
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>
drivers/crypto/qce/core.c

index 5e6717f..80b7508 100644 (file)
@@ -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);