summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Westin <andreas.westin@stericsson.com>2012-05-10 10:14:08 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2012-05-15 17:25:33 +1000
commitd1cbb1447bca8eaa28b7a384365932b49c47811f (patch)
tree808a62ab2015d511f0dd1e6d0e0ed01ff70e1234
parentf7329e71626c977fee672710142eb34ed7d021c7 (diff)
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>
-rw-r--r--drivers/crypto/ux500/cryp/cryp.c10
-rw-r--r--drivers/crypto/ux500/cryp/cryp_p.h1
-rw-r--r--drivers/crypto/ux500/hash/hash_core.c10
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;
}