Thread (7 messages) 7 messages, 4 authors, 2012-05-15
STALE5180d REVIEWED: 1 (0M)

[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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help