[PATCH] ARM: ux500: Remove duplicate ux500_l2x0_unlock function

Steve zhan zhanzhenbo at gmail.com
Tue Mar 12 00:58:23 EDT 2013


Hi Linus:
    Pls check/apply the below patch.
Thanks.

-----
steve

commit f962757a91b1c83a080e7c5b05cc6fb7828f1d84
Author: steve.zhan <zhanzhenbo at gmail.com>
Date:   Tue Mar 12 00:12:53 2013 +0800

    ARM: ux500: Remove duplicate ux500_l2x0_unlock function
    
    To avoids code duplication, remove reduplicate l2 cache unlock
    function "ux500_l2x0_unlock" in the ux500_l2x0_init, as arm\mm
    \cache-l2x0.c l2x0_init will call l2x0_unlock function to
    make sure that I&D is not locked down when starting.
    
    Signed-off-by: steve.zhan <zhanzhenbo at gmail.com>

diff --git a/arch/arm/mach-ux500/cache-l2x0.c b/arch/arm/mach-ux500/cache-l2x0.c
index 1c1609d..372bdf6 100644
--- a/arch/arm/mach-ux500/cache-l2x0.c
+++ b/arch/arm/mach-ux500/cache-l2x0.c
@@ -15,26 +15,6 @@
 
 static void __iomem *l2x0_base;
 
-static int __init ux500_l2x0_unlock(void)
-{
-	int i;
-
-	/*
-	 * Unlock Data and Instruction Lock if locked. Ux500 U-Boot versions
-	 * apparently locks both caches before jumping to the kernel. The
-	 * l2x0 core will not touch the unlock registers if the l2x0 is
-	 * already enabled, so we do it right here instead. The PL310 has
-	 * 8 sets of registers, one per possible CPU.
-	 */
-	for (i = 0; i < 8; i++) {
-		writel_relaxed(0x0, l2x0_base + L2X0_LOCKDOWN_WAY_D_BASE +
-			       i * L2X0_LOCKDOWN_STRIDE);
-		writel_relaxed(0x0, l2x0_base + L2X0_LOCKDOWN_WAY_I_BASE +
-			       i * L2X0_LOCKDOWN_STRIDE);
-	}
-	return 0;
-}
-
 static int __init ux500_l2x0_init(void)
 {
 	u32 aux_val = 0x3e000000;
@@ -44,9 +24,6 @@ static int __init ux500_l2x0_init(void)
 	else
 		ux500_unknown_soc();
 
-	/* Unlock before init */
-	ux500_l2x0_unlock();
-
 	/* DB9540's L2 has 128KB way size */
 	if (cpu_is_u9540())
 		/* 128KB way size */




More information about the linux-arm-kernel mailing list