92 lines
2.6 KiB
Diff
92 lines
2.6 KiB
Diff
From 2f23be905522cc67505daaf4d94c0292dbddd315 Mon Sep 17 00:00:00 2001
|
|
From: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
|
Date: Mon, 28 Oct 2019 15:17:19 -0300
|
|
Subject: [PATCH] crypto: qce - allow building only hashes/ciphers
|
|
|
|
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
|
|
|
diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig
|
|
index 1fb622f2a87d..0dc4bbcfc092 100644
|
|
--- a/drivers/crypto/Kconfig
|
|
+++ b/drivers/crypto/Kconfig
|
|
@@ -580,5 +580,13 @@ config CRYPTO_DEV_QCE
|
|
tristate "Qualcomm crypto engine accelerator"
|
|
depends on (ARCH_QCOM || COMPILE_TEST) && HAS_DMA && HAS_IOMEM
|
|
+ help
|
|
+ This driver supports Qualcomm crypto engine accelerator
|
|
+ hardware. To compile this driver as a module, choose M here. The
|
|
+ module will be called qcrypto.
|
|
+
|
|
+config CRYPTO_DEV_QCE_BLKCIPHER
|
|
+ bool
|
|
+ depends on CRYPTO_DEV_QCE
|
|
select CRYPTO_AES
|
|
select CRYPTO_LIB_DES
|
|
select CRYPTO_ECB
|
|
@@ -580,10 +588,29 @@ config CRYPTO_DEV_QCE
|
|
select CRYPTO_XTS
|
|
select CRYPTO_CTR
|
|
select CRYPTO_BLKCIPHER
|
|
- help
|
|
- This driver supports Qualcomm crypto engine accelerator
|
|
- hardware. To compile this driver as a module, choose M here. The
|
|
- module will be called qcrypto.
|
|
+
|
|
+config CRYPTO_DEV_QCE_SHA
|
|
+ bool
|
|
+ depends on CRYPTO_DEV_QCE
|
|
+
|
|
+choice
|
|
+ prompt "Algorithms enabled for QCE acceleration"
|
|
+ default CRYPTO_DEV_QCE_ENABLE_ALL
|
|
+ depends on CRYPTO_DEV_QCE
|
|
+
|
|
+ config CRYPTO_DEV_QCE_ENABLE_ALL
|
|
+ bool "All supported algorithms"
|
|
+ select CRYPTO_DEV_QCE_BLKCIPHER
|
|
+ select CRYPTO_DEV_QCE_SHA
|
|
+
|
|
+ config CRYPTO_DEV_QCE_ENABLE_BLKCIPHER
|
|
+ bool "Block ciphers only"
|
|
+ select CRYPTO_DEV_QCE_BLKCIPHER
|
|
+
|
|
+ config CRYPTO_DEV_QCE_ENABLE_SHA
|
|
+ bool "Hash/HMAC only"
|
|
+ select CRYPTO_DEV_QCE_SHA
|
|
+endchoice
|
|
|
|
config CRYPTO_DEV_QCOM_RNG
|
|
tristate "Qualcomm Random Number Generator Driver"
|
|
diff --git a/drivers/crypto/qce/Makefile b/drivers/crypto/qce/Makefile
|
|
index 19a7f899acff..f6a411c255b8 100644
|
|
--- a/drivers/crypto/qce/Makefile
|
|
+++ b/drivers/crypto/qce/Makefile
|
|
@@ -2,6 +2,7 @@
|
|
obj-$(CONFIG_CRYPTO_DEV_QCE) += qcrypto.o
|
|
qcrypto-objs := core.o \
|
|
common.o \
|
|
- dma.o \
|
|
- sha.o \
|
|
- ablkcipher.o
|
|
+ dma.o
|
|
+
|
|
+qcrypto-$(CONFIG_CRYPTO_DEV_QCE_SHA) += sha.o
|
|
+qcrypto-$(CONFIG_CRYPTO_DEV_QCE_BLKCIPHER) += ablkcipher.o
|
|
diff --git a/drivers/crypto/qce/core.c b/drivers/crypto/qce/core.c
|
|
index 08d4ce3bfddf..3428746f1869 100644
|
|
--- a/drivers/crypto/qce/core.c
|
|
+++ b/drivers/crypto/qce/core.c
|
|
@@ -22,8 +22,12 @@
|
|
#define QCE_QUEUE_LENGTH 1
|
|
|
|
static const struct qce_algo_ops *qce_ops[] = {
|
|
+#ifdef CONFIG_CRYPTO_DEV_QCE_BLKCIPHER
|
|
&ablkcipher_ops,
|
|
+#endif
|
|
+#ifdef CONFIG_CRYPTO_DEV_QCE_SHA
|
|
&ahash_ops,
|
|
+#endif
|
|
};
|
|
|
|
static void qce_unregister_algs(struct qce_device *qce)
|