aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2014-03-16 17:53:23 +0000
committerRussell King <rmk+kernel@arm.linux.org.uk>2014-05-30 00:49:17 +0100
commit0074fb2c9e75acfdea391e6962c4be98444b4792 (patch)
tree070c31a11931b3c927be81efad0e775c1acedfd2 /arch
parentARM: l2c: exynos: convert to generic l2c OF initialisation (and thereby fix it) (diff)
downloadlinux-dev-0074fb2c9e75acfdea391e6962c4be98444b4792.tar.xz
linux-dev-0074fb2c9e75acfdea391e6962c4be98444b4792.zip
ARM: l2c: highbank: implement new write_sec method
With the write_sec method, we no longer need to override the default L2C disable method. This can be handled via the write_sec method instead. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-highbank/highbank.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c
index 38e1dc3b4c6e..4712aed3d9f6 100644
--- a/arch/arm/mach-highbank/highbank.c
+++ b/arch/arm/mach-highbank/highbank.c
@@ -51,11 +51,13 @@ static void __init highbank_scu_map_io(void)
}
-static void highbank_l2x0_disable(void)
+static void highbank_l2c310_write_sec(unsigned long val, unsigned reg)
{
- outer_flush_all();
- /* Disable PL310 L2 Cache controller */
- highbank_smc1(0x102, 0x0);
+ if (reg == L2X0_CTRL)
+ highbank_smc1(0x102, val);
+ else
+ WARN_ONCE(1, "Highbank L2C310: ignoring write to reg 0x%x\n",
+ reg);
}
static void __init highbank_init_irq(void)
@@ -69,8 +71,8 @@ static void __init highbank_init_irq(void)
if (IS_ENABLED(CONFIG_CACHE_L2X0) &&
of_find_compatible_node(NULL, NULL, "arm,pl310-cache")) {
highbank_smc1(0x102, 0x1);
+ outer_cache.write_sec = highbank_l2c310_write_sec;
l2x0_of_init(0, ~0);
- outer_cache.disable = highbank_l2x0_disable;
}
}