summaryrefslogtreecommitdiffstats
path: root/drivers/crypto/ccree/cc_fips.c
diff options
context:
space:
mode:
authorGilad Ben-Yossef <gilad@benyossef.com>2018-02-19 14:51:23 +0000
committerHerbert Xu <herbert@gondor.apana.org.au>2018-03-03 00:03:16 +0800
commit27b3b22dd98caef023cbaa4871b356e4596a81af (patch)
treecaeedee7405b5b9e1a885bf2b607aedee64c2534 /drivers/crypto/ccree/cc_fips.c
parent9d3a45ea209fd1daf3bb9e66a07caf59bf7da9fc (diff)
crypto: ccree - add support for older HW revs
Add support for the legacy CryptoCell 630 and 710 revs. Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/ccree/cc_fips.c')
-rw-r--r--drivers/crypto/ccree/cc_fips.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/crypto/ccree/cc_fips.c b/drivers/crypto/ccree/cc_fips.c
index de08af976b7f..b4d0a6d983e0 100644
--- a/drivers/crypto/ccree/cc_fips.c
+++ b/drivers/crypto/ccree/cc_fips.c
@@ -32,6 +32,9 @@ void cc_set_ree_fips_status(struct cc_drvdata *drvdata, bool status)
{
int val = CC_FIPS_SYNC_REE_STATUS;
+ if (drvdata->hw_rev < CC_HW_REV_712)
+ return;
+
val |= (status ? CC_FIPS_SYNC_MODULE_OK : CC_FIPS_SYNC_MODULE_ERROR);
cc_iowrite(drvdata, CC_REG(HOST_GPR0), val);
@@ -41,8 +44,8 @@ void cc_fips_fini(struct cc_drvdata *drvdata)
{
struct cc_fips_handle *fips_h = drvdata->fips_handle;
- if (!fips_h)
- return; /* Not allocated */
+ if (drvdata->hw_rev < CC_HW_REV_712 || !fips_h)
+ return;
/* Kill tasklet */
tasklet_kill(&fips_h->tasklet);
@@ -55,6 +58,9 @@ void fips_handler(struct cc_drvdata *drvdata)
{
struct cc_fips_handle *fips_handle_ptr = drvdata->fips_handle;
+ if (drvdata->hw_rev < CC_HW_REV_712)
+ return;
+
tasklet_schedule(&fips_handle_ptr->tasklet);
}
@@ -95,6 +101,9 @@ int cc_fips_init(struct cc_drvdata *p_drvdata)
struct cc_fips_handle *fips_h;
struct device *dev = drvdata_to_dev(p_drvdata);
+ if (p_drvdata->hw_rev < CC_HW_REV_712)
+ return 0;
+
fips_h = kzalloc(sizeof(*fips_h), GFP_KERNEL);
if (!fips_h)
return -ENOMEM;