ARM: l2c: provide generic function for calling set_debug method
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 16 Mar 2014 17:19:21 +0000 (17:19 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 29 May 2014 23:47:32 +0000 (00:47 +0100)
Provide a generic function which always calls the set_debug method.
This will be used later in the series as some work-arounds require
that the debug register be written.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mm/cache-l2x0.c

index d659c4ca46bb59b417d131418bbd8ee1defece58..595c50519e410ff20fe768d8945dc8c9bdc6bd8b 100644 (file)
@@ -57,6 +57,16 @@ static inline void cache_wait_way(void __iomem *reg, unsigned long mask)
                cpu_relax();
 }
 
+/*
+ * This should only be called when we have a requirement that the
+ * register be written due to a work-around, as platforms running
+ * in non-secure mode may not be able to access this register.
+ */
+static inline void l2c_set_debug(void __iomem *base, unsigned long val)
+{
+       outer_cache.set_debug(val);
+}
+
 #ifdef CONFIG_CACHE_PL310
 static inline void cache_wait(void __iomem *reg, unsigned long mask)
 {
@@ -92,7 +102,7 @@ static inline void l2x0_inv_line(unsigned long addr)
 static inline void debug_writel(unsigned long val)
 {
        if (outer_cache.set_debug)
-               outer_cache.set_debug(val);
+               l2c_set_debug(l2x0_base, val);
 }
 
 static void pl310_set_debug(unsigned long val)