diff options
author | Gilad Ben-Yossef <gilad@benyossef.com> | 2018-02-19 14:51:23 +0000 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2018-03-03 00:03:16 +0800 |
commit | 27b3b22dd98caef023cbaa4871b356e4596a81af (patch) | |
tree | caeedee7405b5b9e1a885bf2b607aedee64c2534 /drivers/crypto/ccree/cc_fips.c | |
parent | 9d3a45ea209fd1daf3bb9e66a07caf59bf7da9fc (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.c | 13 |
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; |