diff options
author | Kirill Artamonov <kartamonov@nvidia.com> | 2012-07-16 17:24:00 +0300 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2012-07-19 14:48:50 -0700 |
commit | de14d57fdfbbd1de9a6c99cb52455d5bd6afb11f (patch) | |
tree | 43fff080c9ef64af807b3e071e115e0c022e5766 | |
parent | 94e947b829c7922cbc2c413db708232dfc7cc4e9 (diff) |
ARM: mm: cache-l2x0: Implement outer_clean_all()
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>
-rw-r--r-- | arch/arm/include/asm/outercache.h | 8 | ||||
-rw-r--r-- | arch/arm/mm/cache-l2x0.c | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/include/asm/outercache.h b/arch/arm/include/asm/outercache.h index d8387437ec5a..49c5e2d2972d 100644 --- a/arch/arm/include/asm/outercache.h +++ b/arch/arm/include/asm/outercache.h @@ -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 @@ -62,6 +63,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) @@ -83,6 +90,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) { } diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c index e6871a3e4d1c..0336d47c5dd4 100644 --- a/arch/arm/mm/cache-l2x0.c +++ b/arch/arm/mm/cache-l2x0.c @@ -418,6 +418,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; outer_cache.set_debug = l2x0_set_debug; |