summaryrefslogtreecommitdiff
path: root/arch/arm/mach-highbank/highbank.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2014-03-16 21:53:23 +0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2014-05-30 03:49:17 +0400
commit0074fb2c9e75acfdea391e6962c4be98444b4792 (patch)
tree070c31a11931b3c927be81efad0e775c1acedfd2 /arch/arm/mach-highbank/highbank.c
parent15b0bc4041baf0444e4ddd969849bb1d91703f59 (diff)
downloadlinux-0074fb2c9e75acfdea391e6962c4be98444b4792.tar.xz
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/arm/mach-highbank/highbank.c')
-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;
}
}