diff options
Diffstat (limited to 'arch/arm/mm')
| -rw-r--r-- | arch/arm/mm/Kconfig | 13 | ||||
| -rw-r--r-- | arch/arm/mm/cache-l2x0.c | 10 | ||||
| -rw-r--r-- | arch/arm/mm/dma-mapping.c | 2 | ||||
| -rw-r--r-- | arch/arm/mm/fault-armv.c | 1 | ||||
| -rw-r--r-- | arch/arm/mm/init.c | 1 | ||||
| -rw-r--r-- | arch/arm/mm/pgd.c | 1 | 
6 files changed, 27 insertions, 1 deletions
| diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index c4ed9f93f64..5bd7c89a604 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig @@ -736,6 +736,12 @@ config NEEDS_SYSCALL_FOR_CMPXCHG  config OUTER_CACHE  	bool +config OUTER_CACHE_SYNC +	bool +	help +	  The outer cache has a outer_cache_fns.sync function pointer +	  that can be used to drain the write buffer of the outer cache. +  config CACHE_FEROCEON_L2  	bool "Enable the Feroceon L2 cache controller"  	depends on ARCH_KIRKWOOD || ARCH_MV78XX0 @@ -757,6 +763,7 @@ config CACHE_L2X0  		   REALVIEW_EB_A9MP || ARCH_MX35 || ARCH_MX31 || MACH_REALVIEW_PBX || ARCH_NOMADIK || ARCH_OMAP4  	default y  	select OUTER_CACHE +	select OUTER_CACHE_SYNC  	help  	  This option enables the L2x0 PrimeCell. @@ -781,3 +788,9 @@ config ARM_L1_CACHE_SHIFT  	int  	default 6 if ARM_L1_CACHE_SHIFT_6  	default 5 + +config ARCH_HAS_BARRIERS +	bool +	help +	  This option allows the use of custom mandatory barriers +	  included via the mach/barriers.h file. diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c index 07334632d3e..21ad68ba22b 100644 --- a/arch/arm/mm/cache-l2x0.c +++ b/arch/arm/mm/cache-l2x0.c @@ -93,6 +93,15 @@ static inline void l2x0_flush_line(unsigned long addr)  }  #endif +static void l2x0_cache_sync(void) +{ +	unsigned long flags; + +	spin_lock_irqsave(&l2x0_lock, flags); +	cache_sync(); +	spin_unlock_irqrestore(&l2x0_lock, flags); +} +  static inline void l2x0_inv_all(void)  {  	unsigned long flags; @@ -225,6 +234,7 @@ void __init l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask)  	outer_cache.inv_range = l2x0_inv_range;  	outer_cache.clean_range = l2x0_clean_range;  	outer_cache.flush_range = l2x0_flush_range; +	outer_cache.sync = l2x0_cache_sync;  	printk(KERN_INFO "L2X0 cache controller enabled\n");  } diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index 0da7eccf774..1351edc0b26 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c @@ -11,7 +11,7 @@   */  #include <linux/module.h>  #include <linux/mm.h> -#include <linux/slab.h> +#include <linux/gfp.h>  #include <linux/errno.h>  #include <linux/list.h>  #include <linux/init.h> diff --git a/arch/arm/mm/fault-armv.c b/arch/arm/mm/fault-armv.c index c9b97e9836a..0d414c28eb2 100644 --- a/arch/arm/mm/fault-armv.c +++ b/arch/arm/mm/fault-armv.c @@ -16,6 +16,7 @@  #include <linux/vmalloc.h>  #include <linux/init.h>  #include <linux/pagemap.h> +#include <linux/gfp.h>  #include <asm/bugs.h>  #include <asm/cacheflush.h> diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 7829cb5425f..83db12a68d5 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c @@ -17,6 +17,7 @@  #include <linux/initrd.h>  #include <linux/sort.h>  #include <linux/highmem.h> +#include <linux/gfp.h>  #include <asm/mach-types.h>  #include <asm/sections.h> diff --git a/arch/arm/mm/pgd.c b/arch/arm/mm/pgd.c index 2690146161b..be5f58e153b 100644 --- a/arch/arm/mm/pgd.c +++ b/arch/arm/mm/pgd.c @@ -8,6 +8,7 @@   * published by the Free Software Foundation.   */  #include <linux/mm.h> +#include <linux/gfp.h>  #include <linux/highmem.h>  #include <asm/pgalloc.h> | 
