This patch enables algorithms that did not fit the original 32 bit
FUNCTION_EN register anymore via the FUNCTION2_EN extension reg.

Signed-off-by: Pascal van Leeuwen <pvanleeu...@verimatrix.com>
---
 drivers/crypto/inside-secure/safexcel.c | 2 ++
 drivers/crypto/inside-secure/safexcel.h | 1 +
 2 files changed, 3 insertions(+)

diff --git a/drivers/crypto/inside-secure/safexcel.c 
b/drivers/crypto/inside-secure/safexcel.c
index d699827..d9b927b 100644
--- a/drivers/crypto/inside-secure/safexcel.c
+++ b/drivers/crypto/inside-secure/safexcel.c
@@ -505,6 +505,8 @@ static int safexcel_hw_init(struct safexcel_crypto_priv 
*priv)
                /* H/W capabilities selection: just enable everything */
                writel(EIP197_FUNCTION_ALL,
                       EIP197_PE(priv) + EIP197_PE_EIP96_FUNCTION_EN(pe));
+               writel(EIP197_FUNCTION_ALL,
+                      EIP197_PE(priv) + EIP197_PE_EIP96_FUNCTION2_EN(pe));
        }
 
        /* Command Descriptor Rings prepare */
diff --git a/drivers/crypto/inside-secure/safexcel.h 
b/drivers/crypto/inside-secure/safexcel.h
index 10a96dc..e9bda97 100644
--- a/drivers/crypto/inside-secure/safexcel.h
+++ b/drivers/crypto/inside-secure/safexcel.h
@@ -157,6 +157,7 @@
 #define EIP197_PE_EIP96_FUNCTION_EN(n)         (0x1004 + (0x2000 * (n)))
 #define EIP197_PE_EIP96_CONTEXT_CTRL(n)                (0x1008 + (0x2000 * 
(n)))
 #define EIP197_PE_EIP96_CONTEXT_STAT(n)                (0x100c + (0x2000 * 
(n)))
+#define EIP197_PE_EIP96_FUNCTION2_EN(n)                (0x1030 + (0x2000 * 
(n)))
 #define EIP197_PE_EIP96_OPTIONS(n)             (0x13f8 + (0x2000 * (n)))
 #define EIP197_PE_EIP96_VERSION(n)             (0x13fc + (0x2000 * (n)))
 #define EIP197_PE_OUT_DBUF_THRES(n)            (0x1c00 + (0x2000 * (n)))
-- 
1.8.3.1

Reply via email to