summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorSantosh Shilimkar <santosh.shilimkar@ti.com>2010-07-31 18:10:10 +0200
committerSantosh Shilimkar <santosh.shilimkar@ti.com>2010-10-26 08:10:00 +0200
commit4e803c40b33822b52389952040f490e79973e94a (patch)
tree389ec7520f58b7ac136fb6853efbe3ff997740d5 /arch
parentarm: Implement l2x0 cache disable functions (diff)
downloadlinux-4e803c40b33822b52389952040f490e79973e94a.tar.xz
linux-4e803c40b33822b52389952040f490e79973e94a.zip
omap4: l2x0: Override the default l2x0_disable
The machine_kexec() calls outer_disable which can crash on OMAP4 becasue of trustzone restrictions. This patch overrides the default l2x0_disable with a OMAP4 specific implementation taking care of trustzone Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Reviewed-by: Tony Lindgren <tony@atomide.com> Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-omap2/omap4-common.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
index 13dc9794dcc2..b557cc2c4b10 100644
--- a/arch/arm/mach-omap2/omap4-common.c
+++ b/arch/arm/mach-omap2/omap4-common.c
@@ -44,6 +44,13 @@ void __init gic_init_irq(void)
}
#ifdef CONFIG_CACHE_L2X0
+
+static void omap4_l2x0_disable(void)
+{
+ /* Disable PL310 L2 Cache controller */
+ omap_smc1(0x102, 0x0);
+}
+
static int __init omap_l2_cache_init(void)
{
/*
@@ -66,6 +73,12 @@ static int __init omap_l2_cache_init(void)
*/
l2x0_init(l2cache_base, 0x0e050000, 0xc0000fff);
+ /*
+ * Override default outer_cache.disable with a OMAP4
+ * specific one
+ */
+ outer_cache.disable = omap4_l2x0_disable;
+
return 0;
}
early_initcall(omap_l2_cache_init);