ARM: l2c: highbank: implement new write_sec method
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 16 Mar 2014 17:53:23 +0000 (17:53 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 29 May 2014 23:49:17 +0000 (00:49 +0100)
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>
arch/arm/mach-highbank/highbank.c

index 38e1dc3b4c6e91e4836158f056c3cfacc4b7a3d7..4712aed3d9f606d13e5cd51bb54f3c48ca207455 100644 (file)
@@ -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;
        }
 }