|
@@ -25,6 +25,9 @@ struct outer_cache_fns {
|
|
|
void (*inv_range)(unsigned long, unsigned long);
|
|
|
void (*clean_range)(unsigned long, unsigned long);
|
|
|
void (*flush_range)(unsigned long, unsigned long);
|
|
|
+ void (*flush_all)(void);
|
|
|
+ void (*inv_all)(void);
|
|
|
+ void (*disable)(void);
|
|
|
#ifdef CONFIG_OUTER_CACHE_SYNC
|
|
|
void (*sync)(void);
|
|
|
#endif
|
|
@@ -50,6 +53,24 @@ static inline void outer_flush_range(unsigned long start, unsigned long end)
|
|
|
outer_cache.flush_range(start, end);
|
|
|
}
|
|
|
|
|
|
+static inline void outer_flush_all(void)
|
|
|
+{
|
|
|
+ if (outer_cache.flush_all)
|
|
|
+ outer_cache.flush_all();
|
|
|
+}
|
|
|
+
|
|
|
+static inline void outer_inv_all(void)
|
|
|
+{
|
|
|
+ if (outer_cache.inv_all)
|
|
|
+ outer_cache.inv_all();
|
|
|
+}
|
|
|
+
|
|
|
+static inline void outer_disable(void)
|
|
|
+{
|
|
|
+ if (outer_cache.disable)
|
|
|
+ outer_cache.disable();
|
|
|
+}
|
|
|
+
|
|
|
#else
|
|
|
|
|
|
static inline void outer_inv_range(unsigned long start, unsigned long end)
|
|
@@ -58,6 +79,9 @@ static inline void outer_clean_range(unsigned long start, unsigned long end)
|
|
|
{ }
|
|
|
static inline void outer_flush_range(unsigned long start, unsigned long end)
|
|
|
{ }
|
|
|
+static inline void outer_flush_all(void) { }
|
|
|
+static inline void outer_inv_all(void) { }
|
|
|
+static inline void outer_disable(void) { }
|
|
|
|
|
|
#endif
|
|
|
|