diff options
author | Andreas Westin <andreas.westin@stericsson.com> | 2012-05-10 10:14:08 +0200 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2012-05-15 17:25:33 +1000 |
commit | d1cbb1447bca8eaa28b7a384365932b49c47811f (patch) | |
tree | 808a62ab2015d511f0dd1e6d0e0ed01ff70e1234 /drivers/crypto | |
parent | f7329e71626c977fee672710142eb34ed7d021c7 (diff) | |
download | kernel-common-d1cbb1447bca8eaa28b7a384365932b49c47811f.tar.gz kernel-common-d1cbb1447bca8eaa28b7a384365932b49c47811f.tar.bz2 kernel-common-d1cbb1447bca8eaa28b7a384365932b49c47811f.zip |
crypto: ux500 - Cleanup hardware identification
Don't use SOC specific functions to identify
which crypto hardware we are talking to and use
the ID provided in the module instead.
Signed-off-by: Andreas Westin <andreas.westin@stericsson.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto')
-rw-r--r-- | drivers/crypto/ux500/cryp/cryp.c | 10 | ||||
-rw-r--r-- | drivers/crypto/ux500/cryp/cryp_p.h | 1 | ||||
-rw-r--r-- | drivers/crypto/ux500/hash/hash_core.c | 10 |
3 files changed, 4 insertions, 17 deletions
diff --git a/drivers/crypto/ux500/cryp/cryp.c b/drivers/crypto/ux500/cryp/cryp.c index bd206ffc25df..e208ceaf81c9 100644 --- a/drivers/crypto/ux500/cryp/cryp.c +++ b/drivers/crypto/ux500/cryp/cryp.c @@ -37,18 +37,16 @@ int cryp_check(struct cryp_device_data *device_data) if (NULL == device_data) return -EINVAL; - if (cpu_is_u8500()) - peripheralid2 = CRYP_PERIPHERAL_ID2_DB8500; - else if (cpu_is_u5500()) - peripheralid2 = CRYP_PERIPHERAL_ID2_DB5500; + peripheralid2 = readl_relaxed(&device_data->base->periphId2); + + if (peripheralid2 != CRYP_PERIPHERAL_ID2_DB8500) + return -EPERM; /* Check Peripheral and Pcell Id Register for CRYP */ if ((CRYP_PERIPHERAL_ID0 == readl_relaxed(&device_data->base->periphId0)) && (CRYP_PERIPHERAL_ID1 == readl_relaxed(&device_data->base->periphId1)) - && (peripheralid2 == - readl_relaxed(&device_data->base->periphId2)) && (CRYP_PERIPHERAL_ID3 == readl_relaxed(&device_data->base->periphId3)) && (CRYP_PCELL_ID0 == diff --git a/drivers/crypto/ux500/cryp/cryp_p.h b/drivers/crypto/ux500/cryp/cryp_p.h index 0e070829edce..6dcffe15c2bc 100644 --- a/drivers/crypto/ux500/cryp/cryp_p.h +++ b/drivers/crypto/ux500/cryp/cryp_p.h @@ -41,7 +41,6 @@ #define CRYP_PERIPHERAL_ID1 0x05 #define CRYP_PERIPHERAL_ID2_DB8500 0x28 -#define CRYP_PERIPHERAL_ID2_DB5500 0x29 #define CRYP_PERIPHERAL_ID3 0x00 #define CRYP_PCELL_ID0 0x0D diff --git a/drivers/crypto/ux500/hash/hash_core.c b/drivers/crypto/ux500/hash/hash_core.c index 77f7508b6099..6dbb9ec709a3 100644 --- a/drivers/crypto/ux500/hash/hash_core.c +++ b/drivers/crypto/ux500/hash/hash_core.c @@ -574,15 +574,6 @@ static int hash_init(struct ahash_request *req) memset(&req_ctx->state, 0, sizeof(struct hash_state)); req_ctx->updated = 0; if (hash_mode == HASH_MODE_DMA) { - if ((ctx->config.oper_mode == HASH_OPER_MODE_HMAC) && - cpu_is_u5500()) { - pr_debug(DEV_DBG_NAME " [%s] HMAC and DMA not working " - "on u5500, directing to CPU mode.", - __func__); - req_ctx->dma_mode = false; /* Don't use DMA */ - goto out; - } - if (req->nbytes < HASH_DMA_ALIGN_SIZE) { req_ctx->dma_mode = false; /* Don't use DMA */ @@ -604,7 +595,6 @@ static int hash_init(struct ahash_request *req) } } } -out: return 0; } |