[PATCH v2 3/3] crypto: ux500: Cleanup hardware identification
From: Andreas Westin <hidden>
Date: 2012-05-10 08:14:44
Subsystem:
crypto api, the rest · Maintainers:
Herbert Xu, "David S. Miller", Linus Torvalds
Don't use SOC specific functions to identify which crypto hardware we are talking to and use the ID provided in the module instead. Acked-by: Linus Walleij <redacted> Signed-off-by: Andreas Westin <redacted> --- drivers/crypto/ux500/cryp/cryp.c | 10 ++++------ drivers/crypto/ux500/cryp/cryp_p.h | 1 - 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 bd206ff..e208cea 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 0e07082..6dcffe1 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 77f7508..6dbb9ec 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; }
--
1.7.10