]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
ARM: mm: cache-l2x0: Implement outer_clean_all()
authorKirill Artamonov <kartamonov@nvidia.com>
Mon, 16 Jul 2012 14:24:00 +0000 (17:24 +0300)
committerDan Willemsen <dwillemsen@nvidia.com>
Sat, 14 Sep 2013 19:14:18 +0000 (12:14 -0700)
There is already implemented full outer clean routine in
arch/arm/mm/cache-l2x0.c.

Make it possible to use it through outer_cache interface,
like other outer maintenance functions.

bug 983964

Change-Id: I47f1fad536c151c255e6a42d6517114c334ddfef
Reviewed-on: http://git-master/r/116074
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Kirill Artamonov <kartamonov@nvidia.com>
Tested-by: Kirill Artamonov <kartamonov@nvidia.com>
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-by: Justin Paver <jpaver@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Rebase-Id: Rf769958fea9fd10058a4805eeafe08f5f0e895dd

arch/arm/include/asm/outercache.h
arch/arm/mm/cache-l2x0.c

index 12f71a19042253bdd107e78bff70235bb970b75b..d3750b2a42a2c78dc5962855f362ffaf09185907 100644 (file)
@@ -28,6 +28,7 @@ struct outer_cache_fns {
        void (*clean_range)(unsigned long, unsigned long);
        void (*flush_range)(unsigned long, unsigned long);
        void (*flush_all)(void);
+       void (*clean_all)(void);
        void (*inv_all)(void);
        void (*disable)(void);
 #ifdef CONFIG_OUTER_CACHE_SYNC
@@ -63,6 +64,12 @@ static inline void outer_flush_all(void)
                outer_cache.flush_all();
 }
 
+static inline void outer_clean_all(void)
+{
+       if (outer_cache.clean_all)
+               outer_cache.clean_all();
+}
+
 static inline void outer_inv_all(void)
 {
        if (outer_cache.inv_all)
@@ -90,6 +97,7 @@ static inline void outer_clean_range(phys_addr_t start, phys_addr_t end)
 static inline void outer_flush_range(phys_addr_t start, phys_addr_t end)
 { }
 static inline void outer_flush_all(void) { }
+static inline void outer_clean_all(void) { }
 static inline void outer_inv_all(void) { }
 static inline void outer_disable(void) { }
 static inline void outer_resume(void) { }
index 2f2470b893fbdd722872bf58c2580c5cf1bb1eee..e21082ce6e773dc5273028f4df960c9da67a5230 100644 (file)
@@ -472,6 +472,7 @@ void l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask)
                outer_cache.flush_range = l2x0_flush_range;
                outer_cache.sync = l2x0_cache_sync;
                outer_cache.flush_all = l2x0_flush_all;
+               outer_cache.clean_all = l2x0_clean_all;
                outer_cache.inv_all = l2x0_inv_all;
                outer_cache.disable = l2x0_disable;
        }