diff options
170 files changed, 592 insertions, 565 deletions
diff --git a/arch/arm/common/via82c505.c b/arch/arm/common/via82c505.c index 67dd2affc57..1171a5010ae 100644 --- a/arch/arm/common/via82c505.c +++ b/arch/arm/common/via82c505.c @@ -6,7 +6,6 @@  #include <linux/ioport.h>  #include <linux/io.h> -#include <asm/system.h>  #include <asm/mach/pci.h> diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h index 86976d03438..68374ba6a94 100644 --- a/arch/arm/include/asm/atomic.h +++ b/arch/arm/include/asm/atomic.h @@ -13,7 +13,9 @@  #include <linux/compiler.h>  #include <linux/types.h> -#include <asm/system.h> +#include <linux/irqflags.h> +#include <asm/barrier.h> +#include <asm/cmpxchg.h>  #define ATOMIC_INIT(i)	{ (i) } diff --git a/arch/arm/include/asm/barrier.h b/arch/arm/include/asm/barrier.h new file mode 100644 index 00000000000..44f4a09ff37 --- /dev/null +++ b/arch/arm/include/asm/barrier.h @@ -0,0 +1,69 @@ +#ifndef __ASM_BARRIER_H +#define __ASM_BARRIER_H + +#ifndef __ASSEMBLY__ + +#define nop() __asm__ __volatile__("mov\tr0,r0\t@ nop\n\t"); + +#if __LINUX_ARM_ARCH__ >= 7 ||		\ +	(__LINUX_ARM_ARCH__ == 6 && defined(CONFIG_CPU_32v6K)) +#define sev()	__asm__ __volatile__ ("sev" : : : "memory") +#define wfe()	__asm__ __volatile__ ("wfe" : : : "memory") +#define wfi()	__asm__ __volatile__ ("wfi" : : : "memory") +#endif + +#if __LINUX_ARM_ARCH__ >= 7 +#define isb() __asm__ __volatile__ ("isb" : : : "memory") +#define dsb() __asm__ __volatile__ ("dsb" : : : "memory") +#define dmb() __asm__ __volatile__ ("dmb" : : : "memory") +#elif defined(CONFIG_CPU_XSC3) || __LINUX_ARM_ARCH__ == 6 +#define isb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c5, 4" \ +				    : : "r" (0) : "memory") +#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \ +				    : : "r" (0) : "memory") +#define dmb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" \ +				    : : "r" (0) : "memory") +#elif defined(CONFIG_CPU_FA526) +#define isb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c5, 4" \ +				    : : "r" (0) : "memory") +#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \ +				    : : "r" (0) : "memory") +#define dmb() __asm__ __volatile__ ("" : : : "memory") +#else +#define isb() __asm__ __volatile__ ("" : : : "memory") +#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \ +				    : : "r" (0) : "memory") +#define dmb() __asm__ __volatile__ ("" : : : "memory") +#endif + +#ifdef CONFIG_ARCH_HAS_BARRIERS +#include <mach/barriers.h> +#elif defined(CONFIG_ARM_DMA_MEM_BUFFERABLE) || defined(CONFIG_SMP) +#include <asm/outercache.h> +#define mb()		do { dsb(); outer_sync(); } while (0) +#define rmb()		dsb() +#define wmb()		mb() +#else +#include <asm/memory.h> +#define mb()	do { if (arch_is_coherent()) dmb(); else barrier(); } while (0) +#define rmb()	do { if (arch_is_coherent()) dmb(); else barrier(); } while (0) +#define wmb()	do { if (arch_is_coherent()) dmb(); else barrier(); } while (0) +#endif + +#ifndef CONFIG_SMP +#define smp_mb()	barrier() +#define smp_rmb()	barrier() +#define smp_wmb()	barrier() +#else +#define smp_mb()	dmb() +#define smp_rmb()	dmb() +#define smp_wmb()	dmb() +#endif + +#define read_barrier_depends()		do { } while(0) +#define smp_read_barrier_depends()	do { } while(0) + +#define set_mb(var, value)	do { var = value; smp_mb(); } while (0) + +#endif /* !__ASSEMBLY__ */ +#endif /* __ASM_BARRIER_H */ diff --git a/arch/arm/include/asm/bitops.h b/arch/arm/include/asm/bitops.h index f7419ef9c8f..e691ec91e4d 100644 --- a/arch/arm/include/asm/bitops.h +++ b/arch/arm/include/asm/bitops.h @@ -24,7 +24,7 @@  #endif  #include <linux/compiler.h> -#include <asm/system.h> +#include <linux/irqflags.h>  #define smp_mb__before_clear_bit()	smp_mb()  #define smp_mb__after_clear_bit()	smp_mb() diff --git a/arch/arm/include/asm/bug.h b/arch/arm/include/asm/bug.h index fac79dceb73..7af5c6c3653 100644 --- a/arch/arm/include/asm/bug.h +++ b/arch/arm/include/asm/bug.h @@ -1,6 +1,7 @@  #ifndef _ASMARM_BUG_H  #define _ASMARM_BUG_H +#include <linux/linkage.h>  #ifdef CONFIG_BUG @@ -57,4 +58,33 @@ do {								\  #include <asm-generic/bug.h> +struct pt_regs; +void die(const char *msg, struct pt_regs *regs, int err); + +struct siginfo; +void arm_notify_die(const char *str, struct pt_regs *regs, struct siginfo *info, +		unsigned long err, unsigned long trap); + +#ifdef CONFIG_ARM_LPAE +#define FAULT_CODE_ALIGNMENT	33 +#define FAULT_CODE_DEBUG	34 +#else +#define FAULT_CODE_ALIGNMENT	1 +#define FAULT_CODE_DEBUG	2 +#endif + +void hook_fault_code(int nr, int (*fn)(unsigned long, unsigned int, +				       struct pt_regs *), +		     int sig, int code, const char *name); + +void hook_ifault_code(int nr, int (*fn)(unsigned long, unsigned int, +				       struct pt_regs *), +		     int sig, int code, const char *name); + +extern asmlinkage void c_backtrace(unsigned long fp, int pmode); + +struct mm_struct; +extern void show_pte(struct mm_struct *mm, unsigned long addr); +extern void __show_regs(struct pt_regs *); +  #endif diff --git a/arch/arm/include/asm/cmpxchg.h b/arch/arm/include/asm/cmpxchg.h new file mode 100644 index 00000000000..d41d7cbf0ad --- /dev/null +++ b/arch/arm/include/asm/cmpxchg.h @@ -0,0 +1,295 @@ +#ifndef __ASM_ARM_CMPXCHG_H +#define __ASM_ARM_CMPXCHG_H + +#include <linux/irqflags.h> +#include <asm/barrier.h> + +#if defined(CONFIG_CPU_SA1100) || defined(CONFIG_CPU_SA110) +/* + * On the StrongARM, "swp" is terminally broken since it bypasses the + * cache totally.  This means that the cache becomes inconsistent, and, + * since we use normal loads/stores as well, this is really bad. + * Typically, this causes oopsen in filp_close, but could have other, + * more disastrous effects.  There are two work-arounds: + *  1. Disable interrupts and emulate the atomic swap + *  2. Clean the cache, perform atomic swap, flush the cache + * + * We choose (1) since its the "easiest" to achieve here and is not + * dependent on the processor type. + * + * NOTE that this solution won't work on an SMP system, so explcitly + * forbid it here. + */ +#define swp_is_buggy +#endif + +static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size) +{ +	extern void __bad_xchg(volatile void *, int); +	unsigned long ret; +#ifdef swp_is_buggy +	unsigned long flags; +#endif +#if __LINUX_ARM_ARCH__ >= 6 +	unsigned int tmp; +#endif + +	smp_mb(); + +	switch (size) { +#if __LINUX_ARM_ARCH__ >= 6 +	case 1: +		asm volatile("@	__xchg1\n" +		"1:	ldrexb	%0, [%3]\n" +		"	strexb	%1, %2, [%3]\n" +		"	teq	%1, #0\n" +		"	bne	1b" +			: "=&r" (ret), "=&r" (tmp) +			: "r" (x), "r" (ptr) +			: "memory", "cc"); +		break; +	case 4: +		asm volatile("@	__xchg4\n" +		"1:	ldrex	%0, [%3]\n" +		"	strex	%1, %2, [%3]\n" +		"	teq	%1, #0\n" +		"	bne	1b" +			: "=&r" (ret), "=&r" (tmp) +			: "r" (x), "r" (ptr) +			: "memory", "cc"); +		break; +#elif defined(swp_is_buggy) +#ifdef CONFIG_SMP +#error SMP is not supported on this platform +#endif +	case 1: +		raw_local_irq_save(flags); +		ret = *(volatile unsigned char *)ptr; +		*(volatile unsigned char *)ptr = x; +		raw_local_irq_restore(flags); +		break; + +	case 4: +		raw_local_irq_save(flags); +		ret = *(volatile unsigned long *)ptr; +		*(volatile unsigned long *)ptr = x; +		raw_local_irq_restore(flags); +		break; +#else +	case 1: +		asm volatile("@	__xchg1\n" +		"	swpb	%0, %1, [%2]" +			: "=&r" (ret) +			: "r" (x), "r" (ptr) +			: "memory", "cc"); +		break; +	case 4: +		asm volatile("@	__xchg4\n" +		"	swp	%0, %1, [%2]" +			: "=&r" (ret) +			: "r" (x), "r" (ptr) +			: "memory", "cc"); +		break; +#endif +	default: +		__bad_xchg(ptr, size), ret = 0; +		break; +	} +	smp_mb(); + +	return ret; +} + +#define xchg(ptr,x) \ +	((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) + +#include <asm-generic/cmpxchg-local.h> + +#if __LINUX_ARM_ARCH__ < 6 +/* min ARCH < ARMv6 */ + +#ifdef CONFIG_SMP +#error "SMP is not supported on this platform" +#endif + +/* + * cmpxchg_local and cmpxchg64_local are atomic wrt current CPU. Always make + * them available. + */ +#define cmpxchg_local(ptr, o, n)				  	       \ +	((__typeof__(*(ptr)))__cmpxchg_local_generic((ptr), (unsigned long)(o),\ +			(unsigned long)(n), sizeof(*(ptr)))) +#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) + +#ifndef CONFIG_SMP +#include <asm-generic/cmpxchg.h> +#endif + +#else	/* min ARCH >= ARMv6 */ + +extern void __bad_cmpxchg(volatile void *ptr, int size); + +/* + * cmpxchg only support 32-bits operands on ARMv6. + */ + +static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old, +				      unsigned long new, int size) +{ +	unsigned long oldval, res; + +	switch (size) { +#ifndef CONFIG_CPU_V6	/* min ARCH >= ARMv6K */ +	case 1: +		do { +			asm volatile("@ __cmpxchg1\n" +			"	ldrexb	%1, [%2]\n" +			"	mov	%0, #0\n" +			"	teq	%1, %3\n" +			"	strexbeq %0, %4, [%2]\n" +				: "=&r" (res), "=&r" (oldval) +				: "r" (ptr), "Ir" (old), "r" (new) +				: "memory", "cc"); +		} while (res); +		break; +	case 2: +		do { +			asm volatile("@ __cmpxchg1\n" +			"	ldrexh	%1, [%2]\n" +			"	mov	%0, #0\n" +			"	teq	%1, %3\n" +			"	strexheq %0, %4, [%2]\n" +				: "=&r" (res), "=&r" (oldval) +				: "r" (ptr), "Ir" (old), "r" (new) +				: "memory", "cc"); +		} while (res); +		break; +#endif +	case 4: +		do { +			asm volatile("@ __cmpxchg4\n" +			"	ldrex	%1, [%2]\n" +			"	mov	%0, #0\n" +			"	teq	%1, %3\n" +			"	strexeq %0, %4, [%2]\n" +				: "=&r" (res), "=&r" (oldval) +				: "r" (ptr), "Ir" (old), "r" (new) +				: "memory", "cc"); +		} while (res); +		break; +	default: +		__bad_cmpxchg(ptr, size); +		oldval = 0; +	} + +	return oldval; +} + +static inline unsigned long __cmpxchg_mb(volatile void *ptr, unsigned long old, +					 unsigned long new, int size) +{ +	unsigned long ret; + +	smp_mb(); +	ret = __cmpxchg(ptr, old, new, size); +	smp_mb(); + +	return ret; +} + +#define cmpxchg(ptr,o,n)						\ +	((__typeof__(*(ptr)))__cmpxchg_mb((ptr),			\ +					  (unsigned long)(o),		\ +					  (unsigned long)(n),		\ +					  sizeof(*(ptr)))) + +static inline unsigned long __cmpxchg_local(volatile void *ptr, +					    unsigned long old, +					    unsigned long new, int size) +{ +	unsigned long ret; + +	switch (size) { +#ifdef CONFIG_CPU_V6	/* min ARCH == ARMv6 */ +	case 1: +	case 2: +		ret = __cmpxchg_local_generic(ptr, old, new, size); +		break; +#endif +	default: +		ret = __cmpxchg(ptr, old, new, size); +	} + +	return ret; +} + +#define cmpxchg_local(ptr,o,n)						\ +	((__typeof__(*(ptr)))__cmpxchg_local((ptr),			\ +				       (unsigned long)(o),		\ +				       (unsigned long)(n),		\ +				       sizeof(*(ptr)))) + +#ifndef CONFIG_CPU_V6	/* min ARCH >= ARMv6K */ + +/* + * Note : ARMv7-M (currently unsupported by Linux) does not support + * ldrexd/strexd. If ARMv7-M is ever supported by the Linux kernel, it should + * not be allowed to use __cmpxchg64. + */ +static inline unsigned long long __cmpxchg64(volatile void *ptr, +					     unsigned long long old, +					     unsigned long long new) +{ +	register unsigned long long oldval asm("r0"); +	register unsigned long long __old asm("r2") = old; +	register unsigned long long __new asm("r4") = new; +	unsigned long res; + +	do { +		asm volatile( +		"	@ __cmpxchg8\n" +		"	ldrexd	%1, %H1, [%2]\n" +		"	mov	%0, #0\n" +		"	teq	%1, %3\n" +		"	teqeq	%H1, %H3\n" +		"	strexdeq %0, %4, %H4, [%2]\n" +			: "=&r" (res), "=&r" (oldval) +			: "r" (ptr), "Ir" (__old), "r" (__new) +			: "memory", "cc"); +	} while (res); + +	return oldval; +} + +static inline unsigned long long __cmpxchg64_mb(volatile void *ptr, +						unsigned long long old, +						unsigned long long new) +{ +	unsigned long long ret; + +	smp_mb(); +	ret = __cmpxchg64(ptr, old, new); +	smp_mb(); + +	return ret; +} + +#define cmpxchg64(ptr,o,n)						\ +	((__typeof__(*(ptr)))__cmpxchg64_mb((ptr),			\ +					    (unsigned long long)(o),	\ +					    (unsigned long long)(n))) + +#define cmpxchg64_local(ptr,o,n)					\ +	((__typeof__(*(ptr)))__cmpxchg64((ptr),				\ +					 (unsigned long long)(o),	\ +					 (unsigned long long)(n))) + +#else /* min ARCH = ARMv6 */ + +#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) + +#endif + +#endif	/* __LINUX_ARM_ARCH__ >= 6 */ + +#endif /* __ASM_ARM_CMPXCHG_H */ diff --git a/arch/arm/include/asm/compiler.h b/arch/arm/include/asm/compiler.h new file mode 100644 index 00000000000..8155db2f7fa --- /dev/null +++ b/arch/arm/include/asm/compiler.h @@ -0,0 +1,15 @@ +#ifndef __ASM_ARM_COMPILER_H +#define __ASM_ARM_COMPILER_H + +/* + * This is used to ensure the compiler did actually allocate the register we + * asked it for some inline assembly sequences.  Apparently we can't trust + * the compiler from one version to another so a bit of paranoia won't hurt. + * This string is meant to be concatenated with the inline asm string and + * will cause compilation to stop on mismatch. + * (for details, see gcc PR 15089) + */ +#define __asmeq(x, y)  ".ifnc " x "," y " ; .err ; .endif\n\t" + + +#endif /* __ASM_ARM_COMPILER_H */ diff --git a/arch/arm/include/asm/cp15.h b/arch/arm/include/asm/cp15.h index 3dabd8dd404..5ef4d8015a6 100644 --- a/arch/arm/include/asm/cp15.h +++ b/arch/arm/include/asm/cp15.h @@ -1,7 +1,7 @@  #ifndef __ASM_ARM_CP15_H  #define __ASM_ARM_CP15_H -#include <asm/system.h> +#include <asm/barrier.h>  /*   * CR1 bits (CP#15 CR1) diff --git a/arch/arm/include/asm/div64.h b/arch/arm/include/asm/div64.h index d3f0a9eee9f..fe92ccf1d0b 100644 --- a/arch/arm/include/asm/div64.h +++ b/arch/arm/include/asm/div64.h @@ -1,8 +1,8 @@  #ifndef __ASM_ARM_DIV64  #define __ASM_ARM_DIV64 -#include <asm/system.h>  #include <linux/types.h> +#include <asm/compiler.h>  /*   * The semantics of do_div() are: diff --git a/arch/arm/include/asm/dma.h b/arch/arm/include/asm/dma.h index 69a5b0b6455..5694a0d6576 100644 --- a/arch/arm/include/asm/dma.h +++ b/arch/arm/include/asm/dma.h @@ -19,7 +19,6 @@   * It should not be re-used except for that purpose.   */  #include <linux/spinlock.h> -#include <asm/system.h>  #include <asm/scatterlist.h>  #include <mach/isa-dma.h> diff --git a/arch/arm/include/asm/domain.h b/arch/arm/include/asm/domain.h index b5dc173d336..3d2220498ab 100644 --- a/arch/arm/include/asm/domain.h +++ b/arch/arm/include/asm/domain.h @@ -10,6 +10,10 @@  #ifndef __ASM_PROC_DOMAIN_H  #define __ASM_PROC_DOMAIN_H +#ifndef __ASSEMBLY__ +#include <asm/barrier.h> +#endif +  /*   * Domain numbers   * diff --git a/arch/arm/include/asm/exec.h b/arch/arm/include/asm/exec.h new file mode 100644 index 00000000000..7c4fbef72b3 --- /dev/null +++ b/arch/arm/include/asm/exec.h @@ -0,0 +1,6 @@ +#ifndef __ASM_ARM_EXEC_H +#define __ASM_ARM_EXEC_H + +#define arch_align_stack(x) (x) + +#endif /* __ASM_ARM_EXEC_H */ diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h index 9275828feb3..bae7eb6011d 100644 --- a/arch/arm/include/asm/io.h +++ b/arch/arm/include/asm/io.h @@ -26,7 +26,6 @@  #include <linux/types.h>  #include <asm/byteorder.h>  #include <asm/memory.h> -#include <asm/system.h>  #include <asm-generic/pci_iomap.h>  /* @@ -99,6 +98,7 @@ static inline void __iomem *__typesafe_io(unsigned long addr)  /* IO barriers */  #ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE +#include <asm/barrier.h>  #define __iormb()		rmb()  #define __iowmb()		wmb()  #else diff --git a/arch/arm/include/asm/mmu.h b/arch/arm/include/asm/mmu.h index 14965658a92..b8e580a297e 100644 --- a/arch/arm/include/asm/mmu.h +++ b/arch/arm/include/asm/mmu.h @@ -34,4 +34,11 @@ typedef struct {  #endif +/* + * switch_mm() may do a full cache flush over the context switch, + * so enable interrupts over the context switch to avoid high + * latency. + */ +#define __ARCH_WANT_INTERRUPTS_ON_CTXSW +  #endif diff --git a/arch/arm/include/asm/processor.h b/arch/arm/include/asm/processor.h index cb8d638924f..f4d7f56ee51 100644 --- a/arch/arm/include/asm/processor.h +++ b/arch/arm/include/asm/processor.h @@ -22,7 +22,6 @@  #include <asm/hw_breakpoint.h>  #include <asm/ptrace.h>  #include <asm/types.h> -#include <asm/system.h>  #ifdef __KERNEL__  #define STACK_TOP	((current->personality & ADDR_LIMIT_32BIT) ? \ @@ -90,6 +89,8 @@ unsigned long get_wchan(struct task_struct *p);  #define cpu_relax()			barrier()  #endif +void cpu_idle_wait(void); +  /*   * Create a new kernel thread   */ diff --git a/arch/arm/include/asm/switch_to.h b/arch/arm/include/asm/switch_to.h new file mode 100644 index 00000000000..fa09e6b49bf --- /dev/null +++ b/arch/arm/include/asm/switch_to.h @@ -0,0 +1,18 @@ +#ifndef __ASM_ARM_SWITCH_TO_H +#define __ASM_ARM_SWITCH_TO_H + +#include <linux/thread_info.h> + +/* + * switch_to(prev, next) should switch from task `prev' to `next' + * `prev' will never be the same as `next'.  schedule() itself + * contains the memory barrier to tell GCC not to cache `current'. + */ +extern struct task_struct *__switch_to(struct task_struct *, struct thread_info *, struct thread_info *); + +#define switch_to(prev,next,last)					\ +do {									\ +	last = __switch_to(prev,task_thread_info(prev), task_thread_info(next));	\ +} while (0) + +#endif /* __ASM_ARM_SWITCH_TO_H */ diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h index 774c41e8add..74542c52f9b 100644 --- a/arch/arm/include/asm/system.h +++ b/arch/arm/include/asm/system.h @@ -1,466 +1,8 @@ -#ifndef __ASM_ARM_SYSTEM_H -#define __ASM_ARM_SYSTEM_H - -#ifdef __KERNEL__ - -#define CPU_ARCH_UNKNOWN	0 -#define CPU_ARCH_ARMv3		1 -#define CPU_ARCH_ARMv4		2 -#define CPU_ARCH_ARMv4T		3 -#define CPU_ARCH_ARMv5		4 -#define CPU_ARCH_ARMv5T		5 -#define CPU_ARCH_ARMv5TE	6 -#define CPU_ARCH_ARMv5TEJ	7 -#define CPU_ARCH_ARMv6		8 -#define CPU_ARCH_ARMv7		9 - -/* - * This is used to ensure the compiler did actually allocate the register we - * asked it for some inline assembly sequences.  Apparently we can't trust - * the compiler from one version to another so a bit of paranoia won't hurt. - * This string is meant to be concatenated with the inline asm string and - * will cause compilation to stop on mismatch. - * (for details, see gcc PR 15089) - */ -#define __asmeq(x, y)  ".ifnc " x "," y " ; .err ; .endif\n\t" - -#ifndef __ASSEMBLY__ - -#include <linux/compiler.h> -#include <linux/linkage.h> -#include <linux/irqflags.h> - -#include <asm/outercache.h> - -struct thread_info; -struct task_struct; - -/* information about the system we're running on */ -extern unsigned int system_rev; -extern unsigned int system_serial_low; -extern unsigned int system_serial_high; -extern unsigned int mem_fclk_21285; - -struct pt_regs; - -void die(const char *msg, struct pt_regs *regs, int err); - -struct siginfo; -void arm_notify_die(const char *str, struct pt_regs *regs, struct siginfo *info, -		unsigned long err, unsigned long trap); - -#ifdef CONFIG_ARM_LPAE -#define FAULT_CODE_ALIGNMENT	33 -#define FAULT_CODE_DEBUG	34 -#else -#define FAULT_CODE_ALIGNMENT	1 -#define FAULT_CODE_DEBUG	2 -#endif - -void hook_fault_code(int nr, int (*fn)(unsigned long, unsigned int, -				       struct pt_regs *), -		     int sig, int code, const char *name); - -void hook_ifault_code(int nr, int (*fn)(unsigned long, unsigned int, -				       struct pt_regs *), -		     int sig, int code, const char *name); - -#define xchg(ptr,x) \ -	((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) - -extern asmlinkage void c_backtrace(unsigned long fp, int pmode); - -struct mm_struct; -extern void show_pte(struct mm_struct *mm, unsigned long addr); -extern void __show_regs(struct pt_regs *); - -extern int __pure cpu_architecture(void); -extern void cpu_init(void); - -void soft_restart(unsigned long); -extern void (*arm_pm_restart)(char str, const char *cmd); - -#define UDBG_UNDEFINED	(1 << 0) -#define UDBG_SYSCALL	(1 << 1) -#define UDBG_BADABORT	(1 << 2) -#define UDBG_SEGV	(1 << 3) -#define UDBG_BUS	(1 << 4) - -extern unsigned int user_debug; - -#if __LINUX_ARM_ARCH__ >= 7 ||		\ -	(__LINUX_ARM_ARCH__ == 6 && defined(CONFIG_CPU_32v6K)) -#define sev()	__asm__ __volatile__ ("sev" : : : "memory") -#define wfe()	__asm__ __volatile__ ("wfe" : : : "memory") -#define wfi()	__asm__ __volatile__ ("wfi" : : : "memory") -#endif - -#if __LINUX_ARM_ARCH__ >= 7 -#define isb() __asm__ __volatile__ ("isb" : : : "memory") -#define dsb() __asm__ __volatile__ ("dsb" : : : "memory") -#define dmb() __asm__ __volatile__ ("dmb" : : : "memory") -#elif defined(CONFIG_CPU_XSC3) || __LINUX_ARM_ARCH__ == 6 -#define isb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c5, 4" \ -				    : : "r" (0) : "memory") -#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \ -				    : : "r" (0) : "memory") -#define dmb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" \ -				    : : "r" (0) : "memory") -#elif defined(CONFIG_CPU_FA526) -#define isb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c5, 4" \ -				    : : "r" (0) : "memory") -#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \ -				    : : "r" (0) : "memory") -#define dmb() __asm__ __volatile__ ("" : : : "memory") -#else -#define isb() __asm__ __volatile__ ("" : : : "memory") -#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \ -				    : : "r" (0) : "memory") -#define dmb() __asm__ __volatile__ ("" : : : "memory") -#endif - -#ifdef CONFIG_ARCH_HAS_BARRIERS -#include <mach/barriers.h> -#elif defined(CONFIG_ARM_DMA_MEM_BUFFERABLE) || defined(CONFIG_SMP) -#define mb()		do { dsb(); outer_sync(); } while (0) -#define rmb()		dsb() -#define wmb()		mb() -#else -#include <asm/memory.h> -#define mb()	do { if (arch_is_coherent()) dmb(); else barrier(); } while (0) -#define rmb()	do { if (arch_is_coherent()) dmb(); else barrier(); } while (0) -#define wmb()	do { if (arch_is_coherent()) dmb(); else barrier(); } while (0) -#endif - -#ifndef CONFIG_SMP -#define smp_mb()	barrier() -#define smp_rmb()	barrier() -#define smp_wmb()	barrier() -#else -#define smp_mb()	dmb() -#define smp_rmb()	dmb() -#define smp_wmb()	dmb() -#endif - -#define read_barrier_depends()		do { } while(0) -#define smp_read_barrier_depends()	do { } while(0) - -#define set_mb(var, value)	do { var = value; smp_mb(); } while (0) -#define nop() __asm__ __volatile__("mov\tr0,r0\t@ nop\n\t"); - -/* - * switch_mm() may do a full cache flush over the context switch, - * so enable interrupts over the context switch to avoid high - * latency. - */ -#define __ARCH_WANT_INTERRUPTS_ON_CTXSW - -/* - * switch_to(prev, next) should switch from task `prev' to `next' - * `prev' will never be the same as `next'.  schedule() itself - * contains the memory barrier to tell GCC not to cache `current'. - */ -extern struct task_struct *__switch_to(struct task_struct *, struct thread_info *, struct thread_info *); - -#define switch_to(prev,next,last)					\ -do {									\ -	last = __switch_to(prev,task_thread_info(prev), task_thread_info(next));	\ -} while (0) - -#if defined(CONFIG_CPU_SA1100) || defined(CONFIG_CPU_SA110) -/* - * On the StrongARM, "swp" is terminally broken since it bypasses the - * cache totally.  This means that the cache becomes inconsistent, and, - * since we use normal loads/stores as well, this is really bad. - * Typically, this causes oopsen in filp_close, but could have other, - * more disastrous effects.  There are two work-arounds: - *  1. Disable interrupts and emulate the atomic swap - *  2. Clean the cache, perform atomic swap, flush the cache - * - * We choose (1) since its the "easiest" to achieve here and is not - * dependent on the processor type. - * - * NOTE that this solution won't work on an SMP system, so explcitly - * forbid it here. - */ -#define swp_is_buggy -#endif - -static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size) -{ -	extern void __bad_xchg(volatile void *, int); -	unsigned long ret; -#ifdef swp_is_buggy -	unsigned long flags; -#endif -#if __LINUX_ARM_ARCH__ >= 6 -	unsigned int tmp; -#endif - -	smp_mb(); - -	switch (size) { -#if __LINUX_ARM_ARCH__ >= 6 -	case 1: -		asm volatile("@	__xchg1\n" -		"1:	ldrexb	%0, [%3]\n" -		"	strexb	%1, %2, [%3]\n" -		"	teq	%1, #0\n" -		"	bne	1b" -			: "=&r" (ret), "=&r" (tmp) -			: "r" (x), "r" (ptr) -			: "memory", "cc"); -		break; -	case 4: -		asm volatile("@	__xchg4\n" -		"1:	ldrex	%0, [%3]\n" -		"	strex	%1, %2, [%3]\n" -		"	teq	%1, #0\n" -		"	bne	1b" -			: "=&r" (ret), "=&r" (tmp) -			: "r" (x), "r" (ptr) -			: "memory", "cc"); -		break; -#elif defined(swp_is_buggy) -#ifdef CONFIG_SMP -#error SMP is not supported on this platform -#endif -	case 1: -		raw_local_irq_save(flags); -		ret = *(volatile unsigned char *)ptr; -		*(volatile unsigned char *)ptr = x; -		raw_local_irq_restore(flags); -		break; - -	case 4: -		raw_local_irq_save(flags); -		ret = *(volatile unsigned long *)ptr; -		*(volatile unsigned long *)ptr = x; -		raw_local_irq_restore(flags); -		break; -#else -	case 1: -		asm volatile("@	__xchg1\n" -		"	swpb	%0, %1, [%2]" -			: "=&r" (ret) -			: "r" (x), "r" (ptr) -			: "memory", "cc"); -		break; -	case 4: -		asm volatile("@	__xchg4\n" -		"	swp	%0, %1, [%2]" -			: "=&r" (ret) -			: "r" (x), "r" (ptr) -			: "memory", "cc"); -		break; -#endif -	default: -		__bad_xchg(ptr, size), ret = 0; -		break; -	} -	smp_mb(); - -	return ret; -} - -extern void disable_hlt(void); -extern void enable_hlt(void); - -void cpu_idle_wait(void); - -#include <asm-generic/cmpxchg-local.h> - -#if __LINUX_ARM_ARCH__ < 6 -/* min ARCH < ARMv6 */ - -#ifdef CONFIG_SMP -#error "SMP is not supported on this platform" -#endif - -/* - * cmpxchg_local and cmpxchg64_local are atomic wrt current CPU. Always make - * them available. - */ -#define cmpxchg_local(ptr, o, n)				  	       \ -	((__typeof__(*(ptr)))__cmpxchg_local_generic((ptr), (unsigned long)(o),\ -			(unsigned long)(n), sizeof(*(ptr)))) -#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) - -#ifndef CONFIG_SMP -#include <asm-generic/cmpxchg.h> -#endif - -#else	/* min ARCH >= ARMv6 */ - -extern void __bad_cmpxchg(volatile void *ptr, int size); - -/* - * cmpxchg only support 32-bits operands on ARMv6. - */ - -static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old, -				      unsigned long new, int size) -{ -	unsigned long oldval, res; - -	switch (size) { -#ifndef CONFIG_CPU_V6	/* min ARCH >= ARMv6K */ -	case 1: -		do { -			asm volatile("@ __cmpxchg1\n" -			"	ldrexb	%1, [%2]\n" -			"	mov	%0, #0\n" -			"	teq	%1, %3\n" -			"	strexbeq %0, %4, [%2]\n" -				: "=&r" (res), "=&r" (oldval) -				: "r" (ptr), "Ir" (old), "r" (new) -				: "memory", "cc"); -		} while (res); -		break; -	case 2: -		do { -			asm volatile("@ __cmpxchg1\n" -			"	ldrexh	%1, [%2]\n" -			"	mov	%0, #0\n" -			"	teq	%1, %3\n" -			"	strexheq %0, %4, [%2]\n" -				: "=&r" (res), "=&r" (oldval) -				: "r" (ptr), "Ir" (old), "r" (new) -				: "memory", "cc"); -		} while (res); -		break; -#endif -	case 4: -		do { -			asm volatile("@ __cmpxchg4\n" -			"	ldrex	%1, [%2]\n" -			"	mov	%0, #0\n" -			"	teq	%1, %3\n" -			"	strexeq %0, %4, [%2]\n" -				: "=&r" (res), "=&r" (oldval) -				: "r" (ptr), "Ir" (old), "r" (new) -				: "memory", "cc"); -		} while (res); -		break; -	default: -		__bad_cmpxchg(ptr, size); -		oldval = 0; -	} - -	return oldval; -} - -static inline unsigned long __cmpxchg_mb(volatile void *ptr, unsigned long old, -					 unsigned long new, int size) -{ -	unsigned long ret; - -	smp_mb(); -	ret = __cmpxchg(ptr, old, new, size); -	smp_mb(); - -	return ret; -} - -#define cmpxchg(ptr,o,n)						\ -	((__typeof__(*(ptr)))__cmpxchg_mb((ptr),			\ -					  (unsigned long)(o),		\ -					  (unsigned long)(n),		\ -					  sizeof(*(ptr)))) - -static inline unsigned long __cmpxchg_local(volatile void *ptr, -					    unsigned long old, -					    unsigned long new, int size) -{ -	unsigned long ret; - -	switch (size) { -#ifdef CONFIG_CPU_V6	/* min ARCH == ARMv6 */ -	case 1: -	case 2: -		ret = __cmpxchg_local_generic(ptr, old, new, size); -		break; -#endif -	default: -		ret = __cmpxchg(ptr, old, new, size); -	} - -	return ret; -} - -#define cmpxchg_local(ptr,o,n)						\ -	((__typeof__(*(ptr)))__cmpxchg_local((ptr),			\ -				       (unsigned long)(o),		\ -				       (unsigned long)(n),		\ -				       sizeof(*(ptr)))) - -#ifndef CONFIG_CPU_V6	/* min ARCH >= ARMv6K */ - -/* - * Note : ARMv7-M (currently unsupported by Linux) does not support - * ldrexd/strexd. If ARMv7-M is ever supported by the Linux kernel, it should - * not be allowed to use __cmpxchg64. - */ -static inline unsigned long long __cmpxchg64(volatile void *ptr, -					     unsigned long long old, -					     unsigned long long new) -{ -	register unsigned long long oldval asm("r0"); -	register unsigned long long __old asm("r2") = old; -	register unsigned long long __new asm("r4") = new; -	unsigned long res; - -	do { -		asm volatile( -		"	@ __cmpxchg8\n" -		"	ldrexd	%1, %H1, [%2]\n" -		"	mov	%0, #0\n" -		"	teq	%1, %3\n" -		"	teqeq	%H1, %H3\n" -		"	strexdeq %0, %4, %H4, [%2]\n" -			: "=&r" (res), "=&r" (oldval) -			: "r" (ptr), "Ir" (__old), "r" (__new) -			: "memory", "cc"); -	} while (res); - -	return oldval; -} - -static inline unsigned long long __cmpxchg64_mb(volatile void *ptr, -						unsigned long long old, -						unsigned long long new) -{ -	unsigned long long ret; - -	smp_mb(); -	ret = __cmpxchg64(ptr, old, new); -	smp_mb(); - -	return ret; -} - -#define cmpxchg64(ptr,o,n)						\ -	((__typeof__(*(ptr)))__cmpxchg64_mb((ptr),			\ -					    (unsigned long long)(o),	\ -					    (unsigned long long)(n))) - -#define cmpxchg64_local(ptr,o,n)					\ -	((__typeof__(*(ptr)))__cmpxchg64((ptr),				\ -					 (unsigned long long)(o),	\ -					 (unsigned long long)(n))) - -#else /* min ARCH = ARMv6 */ - -#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) - -#endif - -#endif	/* __LINUX_ARM_ARCH__ >= 6 */ - -#endif /* __ASSEMBLY__ */ - -#define arch_align_stack(x) (x) - -#endif /* __KERNEL__ */ - -#endif +/* FILE TO BE DELETED. DO NOT ADD STUFF HERE! */ +#include <asm/barrier.h> +#include <asm/compiler.h> +#include <asm/cmpxchg.h> +#include <asm/exec.h> +#include <asm/switch_to.h> +#include <asm/system_info.h> +#include <asm/system_misc.h> diff --git a/arch/arm/include/asm/system_info.h b/arch/arm/include/asm/system_info.h new file mode 100644 index 00000000000..dfd386d0c02 --- /dev/null +++ b/arch/arm/include/asm/system_info.h @@ -0,0 +1,27 @@ +#ifndef __ASM_ARM_SYSTEM_INFO_H +#define __ASM_ARM_SYSTEM_INFO_H + +#define CPU_ARCH_UNKNOWN	0 +#define CPU_ARCH_ARMv3		1 +#define CPU_ARCH_ARMv4		2 +#define CPU_ARCH_ARMv4T		3 +#define CPU_ARCH_ARMv5		4 +#define CPU_ARCH_ARMv5T		5 +#define CPU_ARCH_ARMv5TE	6 +#define CPU_ARCH_ARMv5TEJ	7 +#define CPU_ARCH_ARMv6		8 +#define CPU_ARCH_ARMv7		9 + +#ifndef __ASSEMBLY__ + +/* information about the system we're running on */ +extern unsigned int system_rev; +extern unsigned int system_serial_low; +extern unsigned int system_serial_high; +extern unsigned int mem_fclk_21285; + +extern int __pure cpu_architecture(void); + +#endif /* !__ASSEMBLY__ */ + +#endif /* __ASM_ARM_SYSTEM_INFO_H */ diff --git a/arch/arm/include/asm/system_misc.h b/arch/arm/include/asm/system_misc.h new file mode 100644 index 00000000000..9e65b23be14 --- /dev/null +++ b/arch/arm/include/asm/system_misc.h @@ -0,0 +1,28 @@ +#ifndef __ASM_ARM_SYSTEM_MISC_H +#define __ASM_ARM_SYSTEM_MISC_H + +#ifndef __ASSEMBLY__ + +#include <linux/compiler.h> +#include <linux/linkage.h> +#include <linux/irqflags.h> + +extern void cpu_init(void); + +void soft_restart(unsigned long); +extern void (*arm_pm_restart)(char str, const char *cmd); + +#define UDBG_UNDEFINED	(1 << 0) +#define UDBG_SYSCALL	(1 << 1) +#define UDBG_BADABORT	(1 << 2) +#define UDBG_SEGV	(1 << 3) +#define UDBG_BUS	(1 << 4) + +extern unsigned int user_debug; + +extern void disable_hlt(void); +extern void enable_hlt(void); + +#endif /* !__ASSEMBLY__ */ + +#endif /* __ASM_ARM_SYSTEM_MISC_H */ diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h index 2958976d867..71f6536d17a 100644 --- a/arch/arm/include/asm/uaccess.h +++ b/arch/arm/include/asm/uaccess.h @@ -16,8 +16,8 @@  #include <asm/errno.h>  #include <asm/memory.h>  #include <asm/domain.h> -#include <asm/system.h>  #include <asm/unified.h> +#include <asm/compiler.h>  #define VERIFY_READ 0  #define VERIFY_WRITE 1 diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c index 5b0bce61eb6..b57c75e0b01 100644 --- a/arch/arm/kernel/armksyms.c +++ b/arch/arm/kernel/armksyms.c @@ -18,7 +18,6 @@  #include <linux/io.h>  #include <asm/checksum.h> -#include <asm/system.h>  #include <asm/ftrace.h>  /* diff --git a/arch/arm/kernel/elf.c b/arch/arm/kernel/elf.c index ddba41d1fcf..d0d1e83150c 100644 --- a/arch/arm/kernel/elf.c +++ b/arch/arm/kernel/elf.c @@ -3,6 +3,7 @@  #include <linux/personality.h>  #include <linux/binfmts.h>  #include <linux/elf.h> +#include <asm/system_info.h>  int elf_check_arch(const struct elf32_hdr *x)  { diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index be16a48007b..093a415902c 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S @@ -24,7 +24,7 @@  #include <asm/unwind.h>  #include <asm/unistd.h>  #include <asm/tls.h> -#include <asm/system.h> +#include <asm/system_info.h>  #include "entry-header.S"  #include <asm/entry-macro-multi.S> diff --git a/arch/arm/kernel/hw_breakpoint.c b/arch/arm/kernel/hw_breakpoint.c index d6a95ef9131..ba386bd9410 100644 --- a/arch/arm/kernel/hw_breakpoint.c +++ b/arch/arm/kernel/hw_breakpoint.c @@ -34,7 +34,6 @@  #include <asm/current.h>  #include <asm/hw_breakpoint.h>  #include <asm/kdebug.h> -#include <asm/system.h>  #include <asm/traps.h>  /* Breakpoint currently in use for each BRP. */ diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c index 3efd82cc95f..6a6a097edd6 100644 --- a/arch/arm/kernel/irq.c +++ b/arch/arm/kernel/irq.c @@ -36,7 +36,6 @@  #include <linux/proc_fs.h>  #include <asm/exception.h> -#include <asm/system.h>  #include <asm/mach/arch.h>  #include <asm/mach/irq.h>  #include <asm/mach/time.h> diff --git a/arch/arm/kernel/kprobes-common.c b/arch/arm/kernel/kprobes-common.c index a5394fb4e4e..18a76282970 100644 --- a/arch/arm/kernel/kprobes-common.c +++ b/arch/arm/kernel/kprobes-common.c @@ -13,6 +13,7 @@  #include <linux/kernel.h>  #include <linux/kprobes.h> +#include <asm/system_info.h>  #include "kprobes.h" diff --git a/arch/arm/kernel/machine_kexec.c b/arch/arm/kernel/machine_kexec.c index 764bd456d84..56995983eed 100644 --- a/arch/arm/kernel/machine_kexec.c +++ b/arch/arm/kernel/machine_kexec.c @@ -12,7 +12,7 @@  #include <asm/mmu_context.h>  #include <asm/cacheflush.h>  #include <asm/mach-types.h> -#include <asm/system.h> +#include <asm/system_misc.h>  extern const unsigned char relocate_new_kernel[];  extern const unsigned int relocate_new_kernel_size; diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index c2ae3cd331f..19917e89f13 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c @@ -35,7 +35,6 @@  #include <asm/cacheflush.h>  #include <asm/leds.h>  #include <asm/processor.h> -#include <asm/system.h>  #include <asm/thread_notify.h>  #include <asm/stacktrace.h>  #include <asm/mach/time.h> diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c index ede6443c34d..45956c9d0ef 100644 --- a/arch/arm/kernel/ptrace.c +++ b/arch/arm/kernel/ptrace.c @@ -26,7 +26,6 @@  #include <linux/audit.h>  #include <asm/pgtable.h> -#include <asm/system.h>  #include <asm/traps.h>  #define REG_PC	15 diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 615e992d738..9e0fdb3a198 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c @@ -50,6 +50,8 @@  #include <asm/mach/arch.h>  #include <asm/mach/irq.h>  #include <asm/mach/time.h> +#include <asm/system_info.h> +#include <asm/system_misc.h>  #include <asm/traps.h>  #include <asm/unwind.h>  #include <asm/memblock.h> diff --git a/arch/arm/kernel/sleep.S b/arch/arm/kernel/sleep.S index 1f268bda455..987dcf33415 100644 --- a/arch/arm/kernel/sleep.S +++ b/arch/arm/kernel/sleep.S @@ -4,7 +4,6 @@  #include <asm/assembler.h>  #include <asm/glue-cache.h>  #include <asm/glue-proc.h> -#include <asm/system.h>  	.text  /* diff --git a/arch/arm/kernel/tcm.c b/arch/arm/kernel/tcm.c index 01ec453bb92..30ae6bb4a31 100644 --- a/arch/arm/kernel/tcm.c +++ b/arch/arm/kernel/tcm.c @@ -16,6 +16,7 @@  #include <asm/cputype.h>  #include <asm/mach/map.h>  #include <asm/memory.h> +#include <asm/system_info.h>  #include "tcm.h"  static struct gen_pool *tcm_pool; diff --git a/arch/arm/kernel/thumbee.c b/arch/arm/kernel/thumbee.c index 9cb7aaca159..aab89976405 100644 --- a/arch/arm/kernel/thumbee.c +++ b/arch/arm/kernel/thumbee.c @@ -20,6 +20,7 @@  #include <linux/kernel.h>  #include <linux/init.h> +#include <asm/system_info.h>  #include <asm/thread_notify.h>  /* diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index f84dfe67724..cd77743472a 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c @@ -29,11 +29,11 @@  #include <linux/atomic.h>  #include <asm/cacheflush.h>  #include <asm/exception.h> -#include <asm/system.h>  #include <asm/unistd.h>  #include <asm/traps.h>  #include <asm/unwind.h>  #include <asm/tls.h> +#include <asm/system_misc.h>  #include "signal.h" diff --git a/arch/arm/mach-at91/at91cap9.c b/arch/arm/mach-at91/at91cap9.c index a42edc25a87..fc460e96f1a 100644 --- a/arch/arm/mach-at91/at91cap9.c +++ b/arch/arm/mach-at91/at91cap9.c @@ -17,6 +17,8 @@  #include <asm/irq.h>  #include <asm/mach/arch.h>  #include <asm/mach/map.h> +#include <asm/system_info.h> +#include <asm/system_misc.h>  #include <mach/cpu.h>  #include <mach/at91cap9.h> diff --git a/arch/arm/mach-at91/at91rm9200.c b/arch/arm/mach-at91/at91rm9200.c index 99c3174e24a..413c027ab85 100644 --- a/arch/arm/mach-at91/at91rm9200.c +++ b/arch/arm/mach-at91/at91rm9200.c @@ -15,6 +15,7 @@  #include <asm/irq.h>  #include <asm/mach/arch.h>  #include <asm/mach/map.h> +#include <asm/system_misc.h>  #include <mach/at91rm9200.h>  #include <mach/at91_pmc.h>  #include <mach/at91_st.h> diff --git a/arch/arm/mach-at91/at91sam9260.c b/arch/arm/mach-at91/at91sam9260.c index d4036ba4361..79f571842c2 100644 --- a/arch/arm/mach-at91/at91sam9260.c +++ b/arch/arm/mach-at91/at91sam9260.c @@ -15,6 +15,7 @@  #include <asm/irq.h>  #include <asm/mach/arch.h>  #include <asm/mach/map.h> +#include <asm/system_misc.h>  #include <mach/cpu.h>  #include <mach/at91_dbgu.h>  #include <mach/at91sam9260.h> diff --git a/arch/arm/mach-at91/at91sam9261.c b/arch/arm/mach-at91/at91sam9261.c index 023c2ff138d..62818b956ae 100644 --- a/arch/arm/mach-at91/at91sam9261.c +++ b/arch/arm/mach-at91/at91sam9261.c @@ -15,6 +15,7 @@  #include <asm/irq.h>  #include <asm/mach/arch.h>  #include <asm/mach/map.h> +#include <asm/system_misc.h>  #include <mach/cpu.h>  #include <mach/at91sam9261.h>  #include <mach/at91_pmc.h> diff --git a/arch/arm/mach-at91/at91sam9263.c b/arch/arm/mach-at91/at91sam9263.c index 75e876c258a..722ee08e510 100644 --- a/arch/arm/mach-at91/at91sam9263.c +++ b/arch/arm/mach-at91/at91sam9263.c @@ -15,6 +15,7 @@  #include <asm/irq.h>  #include <asm/mach/arch.h>  #include <asm/mach/map.h> +#include <asm/system_misc.h>  #include <mach/at91sam9263.h>  #include <mach/at91_pmc.h>  #include <mach/at91_rstc.h> diff --git a/arch/arm/mach-at91/at91sam9g45.c b/arch/arm/mach-at91/at91sam9g45.c index 1cb6a96b1c1..47e8fdbed9c 100644 --- a/arch/arm/mach-at91/at91sam9g45.c +++ b/arch/arm/mach-at91/at91sam9g45.c @@ -16,6 +16,7 @@  #include <asm/irq.h>  #include <asm/mach/arch.h>  #include <asm/mach/map.h> +#include <asm/system_misc.h>  #include <mach/at91sam9g45.h>  #include <mach/at91_pmc.h>  #include <mach/cpu.h> diff --git a/arch/arm/mach-at91/at91sam9rl.c b/arch/arm/mach-at91/at91sam9rl.c index d2c91a841cb..7ae499359d3 100644 --- a/arch/arm/mach-at91/at91sam9rl.c +++ b/arch/arm/mach-at91/at91sam9rl.c @@ -14,6 +14,7 @@  #include <asm/irq.h>  #include <asm/mach/arch.h>  #include <asm/mach/map.h> +#include <asm/system_misc.h>  #include <mach/cpu.h>  #include <mach/at91_dbgu.h>  #include <mach/at91sam9rl.h> diff --git a/arch/arm/mach-at91/include/mach/system_rev.h b/arch/arm/mach-at91/include/mach/system_rev.h index ec164a4124c..ef79a9aafc0 100644 --- a/arch/arm/mach-at91/include/mach/system_rev.h +++ b/arch/arm/mach-at91/include/mach/system_rev.h @@ -7,6 +7,8 @@  #ifndef __ARCH_SYSTEM_REV_H__  #define __ARCH_SYSTEM_REV_H__ +#include <asm/system_info.h> +  /*   * board revision encoding   * mach specific diff --git a/arch/arm/mach-clps711x/common.c b/arch/arm/mach-clps711x/common.c index ab1711b9b4d..ac84f925c79 100644 --- a/arch/arm/mach-clps711x/common.c +++ b/arch/arm/mach-clps711x/common.c @@ -37,6 +37,7 @@  #include <asm/mach/map.h>  #include <asm/mach/time.h>  #include <asm/hardware/clps7111.h> +#include <asm/system_misc.h>  /*   * This maps the generic CLPS711x registers diff --git a/arch/arm/mach-clps711x/p720t-leds.c b/arch/arm/mach-clps711x/p720t-leds.c index 15121446efc..dd9a6cdbeb0 100644 --- a/arch/arm/mach-clps711x/p720t-leds.c +++ b/arch/arm/mach-clps711x/p720t-leds.c @@ -25,7 +25,6 @@  #include <mach/hardware.h>  #include <asm/leds.h> -#include <asm/system.h>  #include <asm/mach-types.h>  #include <asm/hardware/clps7111.h> diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c index d5088900af6..a70de24d1cb 100644 --- a/arch/arm/mach-davinci/board-da850-evm.c +++ b/arch/arm/mach-davinci/board-da850-evm.c @@ -36,6 +36,7 @@  #include <asm/mach-types.h>  #include <asm/mach/arch.h> +#include <asm/system_info.h>  #include <mach/cp_intc.h>  #include <mach/da8xx.h> diff --git a/arch/arm/mach-ebsa110/core.c b/arch/arm/mach-ebsa110/core.c index 294aad07f7a..0c40e59af73 100644 --- a/arch/arm/mach-ebsa110/core.c +++ b/arch/arm/mach-ebsa110/core.c @@ -22,7 +22,7 @@  #include <asm/mach-types.h>  #include <asm/pgtable.h>  #include <asm/page.h> -#include <asm/system.h> +#include <asm/system_misc.h>  #include <asm/mach/arch.h>  #include <asm/mach/irq.h> diff --git a/arch/arm/mach-ebsa110/leds.c b/arch/arm/mach-ebsa110/leds.c index 6a6ea57c2a4..101a3204438 100644 --- a/arch/arm/mach-ebsa110/leds.c +++ b/arch/arm/mach-ebsa110/leds.c @@ -17,7 +17,6 @@  #include <mach/hardware.h>  #include <asm/leds.h> -#include <asm/system.h>  #include <asm/mach-types.h>  static spinlock_t leds_lock; diff --git a/arch/arm/mach-footbridge/common.c b/arch/arm/mach-footbridge/common.c index 41978ee4f9d..3e6aaa6361d 100644 --- a/arch/arm/mach-footbridge/common.c +++ b/arch/arm/mach-footbridge/common.c @@ -21,6 +21,7 @@  #include <asm/irq.h>  #include <asm/mach-types.h>  #include <asm/setup.h> +#include <asm/system_misc.h>  #include <asm/hardware/dec21285.h>  #include <asm/mach/irq.h> diff --git a/arch/arm/mach-footbridge/dc21285-timer.c b/arch/arm/mach-footbridge/dc21285-timer.c index 121ad1d4fa3..3b54196447c 100644 --- a/arch/arm/mach-footbridge/dc21285-timer.c +++ b/arch/arm/mach-footbridge/dc21285-timer.c @@ -14,6 +14,7 @@  #include <asm/hardware/dec21285.h>  #include <asm/mach/time.h> +#include <asm/system_info.h>  #include "common.h" diff --git a/arch/arm/mach-footbridge/dc21285.c b/arch/arm/mach-footbridge/dc21285.c index f685650c25d..94a7087a610 100644 --- a/arch/arm/mach-footbridge/dc21285.c +++ b/arch/arm/mach-footbridge/dc21285.c @@ -21,7 +21,6 @@  #include <video/vga.h>  #include <asm/irq.h> -#include <asm/system.h>  #include <asm/mach/pci.h>  #include <asm/hardware/dec21285.h> diff --git a/arch/arm/mach-footbridge/ebsa285-leds.c b/arch/arm/mach-footbridge/ebsa285-leds.c index 4e10090cd87..5bd266754b9 100644 --- a/arch/arm/mach-footbridge/ebsa285-leds.c +++ b/arch/arm/mach-footbridge/ebsa285-leds.c @@ -24,7 +24,6 @@  #include <mach/hardware.h>  #include <asm/leds.h>  #include <asm/mach-types.h> -#include <asm/system.h>  #define LED_STATE_ENABLED	1  #define LED_STATE_CLAIMED	2 diff --git a/arch/arm/mach-footbridge/netwinder-hw.c b/arch/arm/mach-footbridge/netwinder-hw.c index 80a1c5cc907..cac9f67e7da 100644 --- a/arch/arm/mach-footbridge/netwinder-hw.c +++ b/arch/arm/mach-footbridge/netwinder-hw.c @@ -17,6 +17,7 @@  #include <asm/leds.h>  #include <asm/mach-types.h>  #include <asm/setup.h> +#include <asm/system_misc.h>  #include <asm/mach/arch.h> diff --git a/arch/arm/mach-footbridge/netwinder-leds.c b/arch/arm/mach-footbridge/netwinder-leds.c index e57102e871f..5a2bd89cbdc 100644 --- a/arch/arm/mach-footbridge/netwinder-leds.c +++ b/arch/arm/mach-footbridge/netwinder-leds.c @@ -24,7 +24,6 @@  #include <mach/hardware.h>  #include <asm/leds.h>  #include <asm/mach-types.h> -#include <asm/system.h>  #define LED_STATE_ENABLED	1  #define LED_STATE_CLAIMED	2 diff --git a/arch/arm/mach-imx/dma-v1.c b/arch/arm/mach-imx/dma-v1.c index 42afc29a7da..3189a6004cf 100644 --- a/arch/arm/mach-imx/dma-v1.c +++ b/arch/arm/mach-imx/dma-v1.c @@ -32,7 +32,6 @@  #include <linux/scatterlist.h>  #include <linux/io.h> -#include <asm/system.h>  #include <asm/irq.h>  #include <mach/hardware.h>  #include <mach/dma-v1.h> diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c index 6075d4d62dd..e4bbd4f0294 100644 --- a/arch/arm/mach-imx/mach-imx6q.c +++ b/arch/arm/mach-imx/mach-imx6q.c @@ -25,6 +25,7 @@  #include <asm/hardware/gic.h>  #include <asm/mach/arch.h>  #include <asm/mach/time.h> +#include <asm/system_misc.h>  #include <mach/common.h>  #include <mach/hardware.h> diff --git a/arch/arm/mach-imx/mach-mx51_efikamx.c b/arch/arm/mach-imx/mach-mx51_efikamx.c index 3a5ed2dd885..586e9f82212 100644 --- a/arch/arm/mach-imx/mach-mx51_efikamx.c +++ b/arch/arm/mach-imx/mach-mx51_efikamx.c @@ -33,6 +33,7 @@  #include <mach/iomux-mx51.h>  #include <asm/setup.h> +#include <asm/system_info.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h>  #include <asm/mach/time.h> diff --git a/arch/arm/mach-imx/mach-mx51_efikasb.c b/arch/arm/mach-imx/mach-mx51_efikasb.c index ea5f65b0381..24aded9e109 100644 --- a/arch/arm/mach-imx/mach-mx51_efikasb.c +++ b/arch/arm/mach-imx/mach-mx51_efikasb.c @@ -36,6 +36,7 @@  #include <mach/iomux-mx51.h>  #include <asm/setup.h> +#include <asm/system_info.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h>  #include <asm/mach/time.h> diff --git a/arch/arm/mach-integrator/core.c b/arch/arm/mach-integrator/core.c index 019f0ab08f6..d2fd9f33e6f 100644 --- a/arch/arm/mach-integrator/core.c +++ b/arch/arm/mach-integrator/core.c @@ -27,7 +27,6 @@  #include <mach/platform.h>  #include <asm/irq.h>  #include <mach/cm.h> -#include <asm/system.h>  #include <asm/leds.h>  #include <asm/mach-types.h>  #include <asm/mach/time.h> diff --git a/arch/arm/mach-integrator/leds.c b/arch/arm/mach-integrator/leds.c index 28be186adb8..466defa9784 100644 --- a/arch/arm/mach-integrator/leds.c +++ b/arch/arm/mach-integrator/leds.c @@ -29,7 +29,6 @@  #include <mach/hardware.h>  #include <mach/platform.h>  #include <asm/leds.h> -#include <asm/system.h>  #include <asm/mach-types.h>  #include <mach/cm.h> diff --git a/arch/arm/mach-integrator/pci.c b/arch/arm/mach-integrator/pci.c index 520b6bf81bb..36068f438f2 100644 --- a/arch/arm/mach-integrator/pci.c +++ b/arch/arm/mach-integrator/pci.c @@ -27,7 +27,6 @@  #include <linux/init.h>  #include <asm/irq.h> -#include <asm/system.h>  #include <asm/mach/pci.h>  #include <asm/mach-types.h> diff --git a/arch/arm/mach-integrator/pci_v3.c b/arch/arm/mach-integrator/pci_v3.c index 3c82566acec..9d47b4c6762 100644 --- a/arch/arm/mach-integrator/pci_v3.c +++ b/arch/arm/mach-integrator/pci_v3.c @@ -32,7 +32,6 @@  #include <mach/platform.h>  #include <asm/irq.h>  #include <asm/signal.h> -#include <asm/system.h>  #include <asm/mach/pci.h>  #include <asm/irq_regs.h> diff --git a/arch/arm/mach-iop33x/uart.c b/arch/arm/mach-iop33x/uart.c index cdae24e46ee..bbf54d794ce 100644 --- a/arch/arm/mach-iop33x/uart.c +++ b/arch/arm/mach-iop33x/uart.c @@ -22,7 +22,6 @@  #include <asm/page.h>  #include <asm/mach/map.h>  #include <asm/setup.h> -#include <asm/system.h>  #include <asm/memory.h>  #include <mach/hardware.h>  #include <asm/hardware/iop3xx.h> diff --git a/arch/arm/mach-ixp2000/core.c b/arch/arm/mach-ixp2000/core.c index 81c45370a4e..f214cdff01c 100644 --- a/arch/arm/mach-ixp2000/core.c +++ b/arch/arm/mach-ixp2000/core.c @@ -32,7 +32,6 @@  #include <asm/memory.h>  #include <mach/hardware.h>  #include <asm/irq.h> -#include <asm/system.h>  #include <asm/tlbflush.h>  #include <asm/pgtable.h> diff --git a/arch/arm/mach-ixp2000/enp2611.c b/arch/arm/mach-ixp2000/enp2611.c index e872d238cd0..4867f408617 100644 --- a/arch/arm/mach-ixp2000/enp2611.c +++ b/arch/arm/mach-ixp2000/enp2611.c @@ -36,7 +36,6 @@  #include <asm/irq.h>  #include <asm/pgtable.h>  #include <asm/page.h> -#include <asm/system.h>  #include <mach/hardware.h>  #include <asm/mach-types.h> diff --git a/arch/arm/mach-ixp2000/ixdp2400.c b/arch/arm/mach-ixp2000/ixdp2400.c index f53e911ec94..558f5f81f02 100644 --- a/arch/arm/mach-ixp2000/ixdp2400.c +++ b/arch/arm/mach-ixp2000/ixdp2400.c @@ -29,7 +29,6 @@  #include <asm/irq.h>  #include <asm/pgtable.h>  #include <asm/page.h> -#include <asm/system.h>  #include <mach/hardware.h>  #include <asm/mach-types.h> diff --git a/arch/arm/mach-ixp2000/ixdp2800.c b/arch/arm/mach-ixp2000/ixdp2800.c index a2e7c393e74..33c6d5f3fda 100644 --- a/arch/arm/mach-ixp2000/ixdp2800.c +++ b/arch/arm/mach-ixp2000/ixdp2800.c @@ -29,7 +29,6 @@  #include <asm/irq.h>  #include <asm/pgtable.h>  #include <asm/page.h> -#include <asm/system.h>  #include <mach/hardware.h>  #include <asm/mach-types.h> diff --git a/arch/arm/mach-ixp2000/ixdp2x00.c b/arch/arm/mach-ixp2000/ixdp2x00.c index 634b6c852f6..910426a6ffd 100644 --- a/arch/arm/mach-ixp2000/ixdp2x00.c +++ b/arch/arm/mach-ixp2000/ixdp2x00.c @@ -30,7 +30,6 @@  #include <asm/irq.h>  #include <asm/pgtable.h>  #include <asm/page.h> -#include <asm/system.h>  #include <mach/hardware.h>  #include <asm/mach-types.h> diff --git a/arch/arm/mach-ixp2000/ixdp2x01.c b/arch/arm/mach-ixp2000/ixdp2x01.c index 7632beadabf..5196c39cdba 100644 --- a/arch/arm/mach-ixp2000/ixdp2x01.c +++ b/arch/arm/mach-ixp2000/ixdp2x01.c @@ -34,7 +34,6 @@  #include <asm/irq.h>  #include <asm/pgtable.h>  #include <asm/page.h> -#include <asm/system.h>  #include <mach/hardware.h>  #include <asm/mach-types.h> diff --git a/arch/arm/mach-ixp2000/pci.c b/arch/arm/mach-ixp2000/pci.c index 626fda435aa..7e9a1f31a83 100644 --- a/arch/arm/mach-ixp2000/pci.c +++ b/arch/arm/mach-ixp2000/pci.c @@ -26,7 +26,6 @@  #include <linux/io.h>  #include <asm/irq.h> -#include <asm/system.h>  #include <mach/hardware.h>  #include <asm/mach/pci.h> diff --git a/arch/arm/mach-ixp23xx/core.c b/arch/arm/mach-ixp23xx/core.c index 0923bb905cc..ccdec42af70 100644 --- a/arch/arm/mach-ixp23xx/core.c +++ b/arch/arm/mach-ixp23xx/core.c @@ -34,7 +34,6 @@  #include <asm/memory.h>  #include <mach/hardware.h>  #include <asm/irq.h> -#include <asm/system.h>  #include <asm/tlbflush.h>  #include <asm/pgtable.h> diff --git a/arch/arm/mach-ixp23xx/espresso.c b/arch/arm/mach-ixp23xx/espresso.c index 8f2487e1fc4..d142d45dea1 100644 --- a/arch/arm/mach-ixp23xx/espresso.c +++ b/arch/arm/mach-ixp23xx/espresso.c @@ -32,7 +32,6 @@  #include <mach/hardware.h>  #include <asm/mach-types.h>  #include <asm/irq.h> -#include <asm/system.h>  #include <asm/tlbflush.h>  #include <asm/pgtable.h> diff --git a/arch/arm/mach-ixp23xx/ixdp2351.c b/arch/arm/mach-ixp23xx/ixdp2351.c index 5d5dd3e8d06..b0e07db5cea 100644 --- a/arch/arm/mach-ixp23xx/ixdp2351.c +++ b/arch/arm/mach-ixp23xx/ixdp2351.c @@ -36,7 +36,6 @@  #include <asm/memory.h>  #include <mach/hardware.h>  #include <asm/mach-types.h> -#include <asm/system.h>  #include <asm/tlbflush.h>  #include <asm/pgtable.h> diff --git a/arch/arm/mach-ixp23xx/pci.c b/arch/arm/mach-ixp23xx/pci.c index 25b5c462cea..bdf2866a02a 100644 --- a/arch/arm/mach-ixp23xx/pci.c +++ b/arch/arm/mach-ixp23xx/pci.c @@ -28,7 +28,6 @@  #include <asm/irq.h>  #include <asm/sizes.h> -#include <asm/system.h>  #include <asm/mach/pci.h>  #include <mach/hardware.h> diff --git a/arch/arm/mach-ixp23xx/roadrunner.c b/arch/arm/mach-ixp23xx/roadrunner.c index 377283fc658..eaaa3fa9fd0 100644 --- a/arch/arm/mach-ixp23xx/roadrunner.c +++ b/arch/arm/mach-ixp23xx/roadrunner.c @@ -36,7 +36,6 @@  #include <mach/hardware.h>  #include <asm/mach-types.h>  #include <asm/irq.h> -#include <asm/system.h>  #include <asm/tlbflush.h>  #include <asm/pgtable.h> diff --git a/arch/arm/mach-ixp4xx/common-pci.c b/arch/arm/mach-ixp4xx/common-pci.c index 5eff15f24bc..0f445d3f0fa 100644 --- a/arch/arm/mach-ixp4xx/common-pci.c +++ b/arch/arm/mach-ixp4xx/common-pci.c @@ -32,7 +32,6 @@  #include <asm/cputype.h>  #include <asm/irq.h>  #include <asm/sizes.h> -#include <asm/system.h>  #include <asm/mach/pci.h>  #include <mach/hardware.h> diff --git a/arch/arm/mach-ixp4xx/goramo_mlr.c b/arch/arm/mach-ixp4xx/goramo_mlr.c index c0e3d69a8ae..78ae12c4626 100644 --- a/arch/arm/mach-ixp4xx/goramo_mlr.c +++ b/arch/arm/mach-ixp4xx/goramo_mlr.c @@ -12,7 +12,6 @@  #include <linux/pci.h>  #include <linux/serial_8250.h>  #include <asm/mach-types.h> -#include <asm/system.h>  #include <asm/mach/arch.h>  #include <asm/mach/flash.h>  #include <asm/mach/pci.h> diff --git a/arch/arm/mach-ks8695/time.c b/arch/arm/mach-ks8695/time.c index 37dfcd5bd2a..ec783a3070a 100644 --- a/arch/arm/mach-ks8695/time.c +++ b/arch/arm/mach-ks8695/time.c @@ -27,6 +27,7 @@  #include <linux/io.h>  #include <asm/mach/time.h> +#include <asm/system_misc.h>  #include <mach/regs-timer.h>  #include <mach/regs-irq.h> diff --git a/arch/arm/mach-mmp/common.c b/arch/arm/mach-mmp/common.c index 062b5b93c50..9292b7966e3 100644 --- a/arch/arm/mach-mmp/common.c +++ b/arch/arm/mach-mmp/common.c @@ -14,6 +14,7 @@  #include <asm/page.h>  #include <asm/mach/map.h> +#include <asm/system_misc.h>  #include <mach/addr-map.h>  #include <mach/cputype.h> diff --git a/arch/arm/mach-mmp/pxa168.c b/arch/arm/mach-mmp/pxa168.c index ada1213982b..520f39dc321 100644 --- a/arch/arm/mach-mmp/pxa168.c +++ b/arch/arm/mach-mmp/pxa168.c @@ -16,6 +16,7 @@  #include <linux/platform_device.h>  #include <asm/mach/time.h> +#include <asm/system_misc.h>  #include <mach/addr-map.h>  #include <mach/cputype.h>  #include <mach/regs-apbc.h> diff --git a/arch/arm/mach-msm/board-sapphire.c b/arch/arm/mach-msm/board-sapphire.c index 97b8191d9d3..4a8ea0d40b6 100644 --- a/arch/arm/mach-msm/board-sapphire.c +++ b/arch/arm/mach-msm/board-sapphire.c @@ -27,7 +27,6 @@  #include <asm/mach/arch.h>  #include <asm/mach/map.h>  #include <asm/mach/flash.h> -#include <asm/system.h>  #include <mach/system.h>  #include <mach/vreg.h>  #include <mach/board.h> diff --git a/arch/arm/mach-mxs/system.c b/arch/arm/mach-mxs/system.c index 54f91ad1c96..30042e23bfa 100644 --- a/arch/arm/mach-mxs/system.c +++ b/arch/arm/mach-mxs/system.c @@ -25,7 +25,7 @@  #include <linux/module.h>  #include <asm/proc-fns.h> -#include <asm/system.h> +#include <asm/system_misc.h>  #include <mach/mxs.h>  #include <mach/common.h> diff --git a/arch/arm/mach-omap1/id.c b/arch/arm/mach-omap1/id.c index a0e3560b39d..b3f3363cd45 100644 --- a/arch/arm/mach-omap1/id.c +++ b/arch/arm/mach-omap1/id.c @@ -15,6 +15,7 @@  #include <linux/kernel.h>  #include <linux/init.h>  #include <linux/io.h> +#include <asm/system_info.h>  #include <plat/cpu.h>  #define OMAP_DIE_ID_0		0xfffe1800 diff --git a/arch/arm/mach-omap1/leds-h2p2-debug.c b/arch/arm/mach-omap1/leds-h2p2-debug.c index 4b818eb9f91..f6b14a14a95 100644 --- a/arch/arm/mach-omap1/leds-h2p2-debug.c +++ b/arch/arm/mach-omap1/leds-h2p2-debug.c @@ -17,7 +17,6 @@  #include <mach/hardware.h>  #include <asm/leds.h> -#include <asm/system.h>  #include <asm/mach-types.h>  #include <plat/fpga.h> diff --git a/arch/arm/mach-omap1/leds-innovator.c b/arch/arm/mach-omap1/leds-innovator.c index 9b99c289462..3a066ee8d02 100644 --- a/arch/arm/mach-omap1/leds-innovator.c +++ b/arch/arm/mach-omap1/leds-innovator.c @@ -5,7 +5,6 @@  #include <mach/hardware.h>  #include <asm/leds.h> -#include <asm/system.h>  #include "leds.h" diff --git a/arch/arm/mach-omap1/leds-osk.c b/arch/arm/mach-omap1/leds-osk.c index da09f436497..936ed426b84 100644 --- a/arch/arm/mach-omap1/leds-osk.c +++ b/arch/arm/mach-omap1/leds-osk.c @@ -8,7 +8,6 @@  #include <mach/hardware.h>  #include <asm/leds.h> -#include <asm/system.h>  #include "leds.h" diff --git a/arch/arm/mach-omap1/mux.c b/arch/arm/mach-omap1/mux.c index 5fdef7a3482..087dba0df47 100644 --- a/arch/arm/mach-omap1/mux.c +++ b/arch/arm/mach-omap1/mux.c @@ -27,7 +27,6 @@  #include <linux/io.h>  #include <linux/spinlock.h> -#include <asm/system.h>  #include <plat/mux.h> diff --git a/arch/arm/mach-omap1/time.c b/arch/arm/mach-omap1/time.c index b8faffa44f9..7595e0ac225 100644 --- a/arch/arm/mach-omap1/time.c +++ b/arch/arm/mach-omap1/time.c @@ -44,7 +44,6 @@  #include <linux/clockchips.h>  #include <linux/io.h> -#include <asm/system.h>  #include <mach/hardware.h>  #include <asm/leds.h>  #include <asm/irq.h> diff --git a/arch/arm/mach-omap1/timer32k.c b/arch/arm/mach-omap1/timer32k.c index 9a54ef4dcf5..10bcd1364cd 100644 --- a/arch/arm/mach-omap1/timer32k.c +++ b/arch/arm/mach-omap1/timer32k.c @@ -46,7 +46,6 @@  #include <linux/clockchips.h>  #include <linux/io.h> -#include <asm/system.h>  #include <mach/hardware.h>  #include <asm/leds.h>  #include <asm/irq.h> diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c index a0b851aafcc..c4f55a8cc71 100644 --- a/arch/arm/mach-omap2/board-omap3touchbook.c +++ b/arch/arm/mach-omap2/board-omap3touchbook.c @@ -42,6 +42,7 @@  #include <asm/mach/arch.h>  #include <asm/mach/map.h>  #include <asm/mach/flash.h> +#include <asm/system_info.h>  #include <plat/board.h>  #include "common.h" diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c index acb4e77b39e..2bf84fda181 100644 --- a/arch/arm/mach-omap2/board-rx51-peripherals.c +++ b/arch/arm/mach-omap2/board-rx51-peripherals.c @@ -25,6 +25,7 @@  #include <linux/gpio_keys.h>  #include <linux/mmc/host.h>  #include <linux/power/isp1704_charger.h> +#include <asm/system_info.h>  #include <plat/mcspi.h>  #include <plat/board.h> diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c index 611a0e3d54c..e974d339a35 100644 --- a/arch/arm/mach-omap2/mux.c +++ b/arch/arm/mach-omap2/mux.c @@ -35,7 +35,6 @@  #include <linux/irq.h>  #include <linux/interrupt.h> -#include <asm/system.h>  #include <plat/omap_hwmod.h> diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c index 1d5d0105655..069f8fc99d1 100644 --- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c +++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c @@ -46,7 +46,6 @@  #include <asm/cacheflush.h>  #include <asm/tlbflush.h>  #include <asm/smp_scu.h> -#include <asm/system.h>  #include <asm/pgalloc.h>  #include <asm/suspend.h>  #include <asm/hardware/cache-l2x0.h> diff --git a/arch/arm/mach-omap2/pm24xx.c b/arch/arm/mach-omap2/pm24xx.c index 23de98d0384..730bb009587 100644 --- a/arch/arm/mach-omap2/pm24xx.c +++ b/arch/arm/mach-omap2/pm24xx.c @@ -34,6 +34,7 @@  #include <asm/mach/time.h>  #include <asm/mach/irq.h>  #include <asm/mach-types.h> +#include <asm/system_misc.h>  #include <mach/irqs.h>  #include <plat/clock.h> diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index fc698757892..64d95e69bc5 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c @@ -31,6 +31,7 @@  #include <trace/events/power.h>  #include <asm/suspend.h> +#include <asm/system_misc.h>  #include <plat/sram.h>  #include "clockdomain.h" diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c index c264ef7219c..a73e3255417 100644 --- a/arch/arm/mach-omap2/pm44xx.c +++ b/arch/arm/mach-omap2/pm44xx.c @@ -16,6 +16,7 @@  #include <linux/list.h>  #include <linux/err.h>  #include <linux/slab.h> +#include <asm/system_misc.h>  #include "common.h"  #include "clockdomain.h" diff --git a/arch/arm/mach-omap2/sleep44xx.S b/arch/arm/mach-omap2/sleep44xx.S index abd28340049..9f6b83d1b19 100644 --- a/arch/arm/mach-omap2/sleep44xx.S +++ b/arch/arm/mach-omap2/sleep44xx.S @@ -10,7 +10,6 @@   */  #include <linux/linkage.h> -#include <asm/system.h>  #include <asm/smp_scu.h>  #include <asm/memory.h>  #include <asm/hardware/cache-l2x0.h> diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c index 5dad38ec00e..24481666d2c 100644 --- a/arch/arm/mach-orion5x/common.c +++ b/arch/arm/mach-orion5x/common.c @@ -21,6 +21,7 @@  #include <net/dsa.h>  #include <asm/page.h>  #include <asm/setup.h> +#include <asm/system_misc.h>  #include <asm/timex.h>  #include <asm/mach/arch.h>  #include <asm/mach/map.h> diff --git a/arch/arm/mach-orion5x/dns323-setup.c b/arch/arm/mach-orion5x/dns323-setup.c index 91b0f478859..c3ed15b8ea2 100644 --- a/arch/arm/mach-orion5x/dns323-setup.c +++ b/arch/arm/mach-orion5x/dns323-setup.c @@ -32,6 +32,7 @@  #include <asm/mach-types.h>  #include <asm/mach/arch.h>  #include <asm/mach/pci.h> +#include <asm/system_info.h>  #include <mach/orion5x.h>  #include "common.h"  #include "mpp.h" diff --git a/arch/arm/mach-orion5x/ls-chl-setup.c b/arch/arm/mach-orion5x/ls-chl-setup.c index 527213169db..0c9e413b580 100644 --- a/arch/arm/mach-orion5x/ls-chl-setup.c +++ b/arch/arm/mach-orion5x/ls-chl-setup.c @@ -22,7 +22,6 @@  #include <linux/gpio.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h> -#include <asm/system.h>  #include <mach/orion5x.h>  #include "common.h"  #include "mpp.h" diff --git a/arch/arm/mach-orion5x/ls_hgl-setup.c b/arch/arm/mach-orion5x/ls_hgl-setup.c index 9a8697b97dd..c1b5d8a5803 100644 --- a/arch/arm/mach-orion5x/ls_hgl-setup.c +++ b/arch/arm/mach-orion5x/ls_hgl-setup.c @@ -21,7 +21,6 @@  #include <linux/gpio.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h> -#include <asm/system.h>  #include <mach/orion5x.h>  #include "common.h"  #include "mpp.h" diff --git a/arch/arm/mach-orion5x/lsmini-setup.c b/arch/arm/mach-orion5x/lsmini-setup.c index 09c73659f46..949eaa8f12e 100644 --- a/arch/arm/mach-orion5x/lsmini-setup.c +++ b/arch/arm/mach-orion5x/lsmini-setup.c @@ -21,7 +21,6 @@  #include <linux/gpio.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h> -#include <asm/system.h>  #include <mach/orion5x.h>  #include "common.h"  #include "mpp.h" diff --git a/arch/arm/mach-pnx4008/core.c b/arch/arm/mach-pnx4008/core.c index 4cfb40b2ec1..be4c9285850 100644 --- a/arch/arm/mach-pnx4008/core.c +++ b/arch/arm/mach-pnx4008/core.c @@ -32,7 +32,7 @@  #include <asm/mach-types.h>  #include <asm/pgtable.h>  #include <asm/page.h> -#include <asm/system.h> +#include <asm/system_misc.h>  #include <asm/mach/arch.h>  #include <asm/mach/map.h> diff --git a/arch/arm/mach-pnx4008/dma.c b/arch/arm/mach-pnx4008/dma.c index 7fa4bf2e212..a4739e9fb2f 100644 --- a/arch/arm/mach-pnx4008/dma.c +++ b/arch/arm/mach-pnx4008/dma.c @@ -24,7 +24,6 @@  #include <linux/io.h>  #include <linux/gfp.h> -#include <asm/system.h>  #include <mach/hardware.h>  #include <mach/dma.h>  #include <asm/dma-mapping.h> diff --git a/arch/arm/mach-pnx4008/irq.c b/arch/arm/mach-pnx4008/irq.c index 7608c7a288c..41e4201972d 100644 --- a/arch/arm/mach-pnx4008/irq.c +++ b/arch/arm/mach-pnx4008/irq.c @@ -28,7 +28,6 @@  #include <asm/setup.h>  #include <asm/pgtable.h>  #include <asm/page.h> -#include <asm/system.h>  #include <asm/mach/arch.h>  #include <asm/mach/irq.h>  #include <asm/mach/map.h> diff --git a/arch/arm/mach-pnx4008/time.c b/arch/arm/mach-pnx4008/time.c index 0c8aad4bb0d..0cfe8af3d3b 100644 --- a/arch/arm/mach-pnx4008/time.c +++ b/arch/arm/mach-pnx4008/time.c @@ -24,7 +24,6 @@  #include <linux/irq.h>  #include <linux/io.h> -#include <asm/system.h>  #include <mach/hardware.h>  #include <asm/leds.h>  #include <asm/mach/time.h> diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c index 4b981b82d2a..895ee8c4500 100644 --- a/arch/arm/mach-pxa/cm-x300.c +++ b/arch/arm/mach-pxa/cm-x300.c @@ -44,6 +44,7 @@  #include <asm/mach-types.h>  #include <asm/mach/arch.h>  #include <asm/setup.h> +#include <asm/system_info.h>  #include <mach/pxa300.h>  #include <mach/pxa27x-udc.h> diff --git a/arch/arm/mach-pxa/colibri-pxa3xx.c b/arch/arm/mach-pxa/colibri-pxa3xx.c index 2b8ca0de8a3..68cc75fac21 100644 --- a/arch/arm/mach-pxa/colibri-pxa3xx.c +++ b/arch/arm/mach-pxa/colibri-pxa3xx.c @@ -18,6 +18,7 @@  #include <asm/mach-types.h>  #include <mach/hardware.h>  #include <asm/sizes.h> +#include <asm/system_info.h>  #include <asm/mach/arch.h>  #include <asm/mach/irq.h>  #include <mach/pxa3xx-regs.h> diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c index 11f1e735966..de9d45e673f 100644 --- a/arch/arm/mach-pxa/corgi.c +++ b/arch/arm/mach-pxa/corgi.c @@ -40,7 +40,6 @@  #include <asm/mach-types.h>  #include <mach/hardware.h>  #include <asm/irq.h> -#include <asm/system.h>  #include <asm/mach/arch.h>  #include <asm/mach/map.h> diff --git a/arch/arm/mach-pxa/generic.c b/arch/arm/mach-pxa/generic.c index 5432ecb15de..42254175fcf 100644 --- a/arch/arm/mach-pxa/generic.c +++ b/arch/arm/mach-pxa/generic.c @@ -22,7 +22,6 @@  #include <linux/init.h>  #include <mach/hardware.h> -#include <asm/system.h>  #include <asm/mach/map.h>  #include <asm/mach-types.h> diff --git a/arch/arm/mach-pxa/leds-idp.c b/arch/arm/mach-pxa/leds-idp.c index 8b9c17142d5..06b060025d1 100644 --- a/arch/arm/mach-pxa/leds-idp.c +++ b/arch/arm/mach-pxa/leds-idp.c @@ -16,7 +16,6 @@  #include <mach/hardware.h>  #include <asm/leds.h> -#include <asm/system.h>  #include <mach/pxa25x.h>  #include <mach/idp.h> diff --git a/arch/arm/mach-pxa/leds-lubbock.c b/arch/arm/mach-pxa/leds-lubbock.c index e26d5efe196..0bd85c884a7 100644 --- a/arch/arm/mach-pxa/leds-lubbock.c +++ b/arch/arm/mach-pxa/leds-lubbock.c @@ -15,7 +15,6 @@  #include <mach/hardware.h>  #include <asm/leds.h> -#include <asm/system.h>  #include <mach/pxa25x.h>  #include <mach/lubbock.h> diff --git a/arch/arm/mach-pxa/leds-mainstone.c b/arch/arm/mach-pxa/leds-mainstone.c index db4af5eee8b..4058ab340fe 100644 --- a/arch/arm/mach-pxa/leds-mainstone.c +++ b/arch/arm/mach-pxa/leds-mainstone.c @@ -14,7 +14,6 @@  #include <mach/hardware.h>  #include <asm/leds.h> -#include <asm/system.h>  #include <mach/pxa27x.h>  #include <mach/mainstone.h> diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c index 3d6baf91396..d4ab515dc5b 100644 --- a/arch/arm/mach-pxa/magician.c +++ b/arch/arm/mach-pxa/magician.c @@ -33,6 +33,7 @@  #include <mach/hardware.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h> +#include <asm/system_info.h>  #include <mach/pxa27x.h>  #include <mach/magician.h> diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c index 744baee12c0..89d98c83218 100644 --- a/arch/arm/mach-pxa/poodle.c +++ b/arch/arm/mach-pxa/poodle.c @@ -34,7 +34,6 @@  #include <asm/mach-types.h>  #include <asm/irq.h>  #include <asm/setup.h> -#include <asm/system.h>  #include <asm/mach/arch.h>  #include <asm/mach/map.h> diff --git a/arch/arm/mach-pxa/reset.c b/arch/arm/mach-pxa/reset.c index c8497b00cdf..b4528899ef0 100644 --- a/arch/arm/mach-pxa/reset.c +++ b/arch/arm/mach-pxa/reset.c @@ -9,6 +9,7 @@  #include <linux/gpio.h>  #include <linux/io.h>  #include <asm/proc-fns.h> +#include <asm/system_misc.h>  #include <mach/regs-ost.h>  #include <mach/reset.h> diff --git a/arch/arm/mach-pxa/viper.c b/arch/arm/mach-pxa/viper.c index 023d6ca789d..7a3d342a773 100644 --- a/arch/arm/mach-pxa/viper.c +++ b/arch/arm/mach-pxa/viper.c @@ -57,6 +57,7 @@  #include <asm/mach-types.h>  #include <asm/irq.h>  #include <asm/sizes.h> +#include <asm/system_info.h>  #include <asm/mach/arch.h>  #include <asm/mach/map.h> diff --git a/arch/arm/mach-pxa/zeus.c b/arch/arm/mach-pxa/zeus.c index a4dd1c34705..af3d4f7646d 100644 --- a/arch/arm/mach-pxa/zeus.c +++ b/arch/arm/mach-pxa/zeus.c @@ -32,6 +32,7 @@  #include <asm/mach-types.h>  #include <asm/suspend.h> +#include <asm/system_info.h>  #include <asm/mach/arch.h>  #include <asm/mach/map.h> diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c index acd329afc3a..45868bb43cb 100644 --- a/arch/arm/mach-realview/core.c +++ b/arch/arm/mach-realview/core.c @@ -33,7 +33,6 @@  #include <linux/clkdev.h>  #include <linux/mtd/physmap.h> -#include <asm/system.h>  #include <mach/hardware.h>  #include <asm/irq.h>  #include <asm/leds.h> diff --git a/arch/arm/mach-rpc/riscpc.c b/arch/arm/mach-rpc/riscpc.c index 3d44a59fc0d..e95859748fa 100644 --- a/arch/arm/mach-rpc/riscpc.c +++ b/arch/arm/mach-rpc/riscpc.c @@ -28,6 +28,7 @@  #include <asm/page.h>  #include <asm/domain.h>  #include <asm/setup.h> +#include <asm/system_misc.h>  #include <asm/mach/map.h>  #include <asm/mach/arch.h> diff --git a/arch/arm/mach-s3c2410/s3c2410.c b/arch/arm/mach-s3c2410/s3c2410.c index 061b6bb1a55..a3c5cb086ee 100644 --- a/arch/arm/mach-s3c2410/s3c2410.c +++ b/arch/arm/mach-s3c2410/s3c2410.c @@ -30,6 +30,7 @@  #include <mach/hardware.h>  #include <asm/irq.h> +#include <asm/system_misc.h>  #include <plat/cpu-freq.h> diff --git a/arch/arm/mach-s3c2412/s3c2412.c b/arch/arm/mach-s3c2412/s3c2412.c index aff6e85a97c..100ef1c320e 100644 --- a/arch/arm/mach-s3c2412/s3c2412.c +++ b/arch/arm/mach-s3c2412/s3c2412.c @@ -31,6 +31,7 @@  #include <mach/hardware.h>  #include <asm/proc-fns.h>  #include <asm/irq.h> +#include <asm/system_misc.h>  #include <mach/idle.h> diff --git a/arch/arm/mach-s3c2416/s3c2416.c b/arch/arm/mach-s3c2416/s3c2416.c index 5287d2808d3..ed67ec9c83d 100644 --- a/arch/arm/mach-s3c2416/s3c2416.c +++ b/arch/arm/mach-s3c2416/s3c2416.c @@ -43,6 +43,7 @@  #include <mach/hardware.h>  #include <asm/proc-fns.h>  #include <asm/irq.h> +#include <asm/system_misc.h>  #include <mach/idle.h>  #include <mach/regs-s3c2443-clock.h> diff --git a/arch/arm/mach-s3c2440/s3c244x.c b/arch/arm/mach-s3c2440/s3c244x.c index d15852f642b..6f74118f60c 100644 --- a/arch/arm/mach-s3c2440/s3c244x.c +++ b/arch/arm/mach-s3c2440/s3c244x.c @@ -23,6 +23,7 @@  #include <linux/clk.h>  #include <linux/io.h> +#include <asm/system_misc.h>  #include <asm/mach/arch.h>  #include <asm/mach/map.h>  #include <asm/mach/irq.h> diff --git a/arch/arm/mach-s3c2443/s3c2443.c b/arch/arm/mach-s3c2443/s3c2443.c index b9deaeb0dff..9318847bdc3 100644 --- a/arch/arm/mach-s3c2443/s3c2443.c +++ b/arch/arm/mach-s3c2443/s3c2443.c @@ -29,6 +29,7 @@  #include <mach/hardware.h>  #include <asm/irq.h> +#include <asm/system_misc.h>  #include <mach/regs-s3c2443-clock.h> diff --git a/arch/arm/mach-s3c64xx/common.c b/arch/arm/mach-s3c64xx/common.c index bee7dcd4df7..b313380342a 100644 --- a/arch/arm/mach-s3c64xx/common.c +++ b/arch/arm/mach-s3c64xx/common.c @@ -29,6 +29,7 @@  #include <asm/mach/arch.h>  #include <asm/mach/map.h>  #include <asm/hardware/vic.h> +#include <asm/system_misc.h>  #include <mach/map.h>  #include <mach/hardware.h> diff --git a/arch/arm/mach-s5p64x0/common.c b/arch/arm/mach-s5p64x0/common.c index 52b89a37644..4325b93940a 100644 --- a/arch/arm/mach-s5p64x0/common.c +++ b/arch/arm/mach-s5p64x0/common.c @@ -27,6 +27,7 @@  #include <asm/irq.h>  #include <asm/proc-fns.h> +#include <asm/system_misc.h>  #include <asm/mach/arch.h>  #include <asm/mach/map.h>  #include <asm/mach/irq.h> diff --git a/arch/arm/mach-s5pc100/common.c b/arch/arm/mach-s5pc100/common.c index c9095730a7f..df3a41e8bb0 100644 --- a/arch/arm/mach-s5pc100/common.c +++ b/arch/arm/mach-s5pc100/common.c @@ -27,6 +27,7 @@  #include <asm/irq.h>  #include <asm/proc-fns.h> +#include <asm/system_misc.h>  #include <asm/mach/arch.h>  #include <asm/mach/map.h>  #include <asm/mach/irq.h> diff --git a/arch/arm/mach-sa1100/dma.c b/arch/arm/mach-sa1100/dma.c index ad660350c29..56e13333512 100644 --- a/arch/arm/mach-sa1100/dma.c +++ b/arch/arm/mach-sa1100/dma.c @@ -16,7 +16,6 @@  #include <linux/spinlock.h>  #include <linux/errno.h> -#include <asm/system.h>  #include <asm/irq.h>  #include <mach/hardware.h>  #include <mach/dma.h> diff --git a/arch/arm/mach-sa1100/generic.c b/arch/arm/mach-sa1100/generic.c index bb10ee2cb89..9ad94691743 100644 --- a/arch/arm/mach-sa1100/generic.c +++ b/arch/arm/mach-sa1100/generic.c @@ -21,10 +21,10 @@  #include <asm/div64.h>  #include <mach/hardware.h> -#include <asm/system.h>  #include <asm/mach/map.h>  #include <asm/mach/flash.h>  #include <asm/irq.h> +#include <asm/system_misc.h>  #include "generic.h" diff --git a/arch/arm/mach-sa1100/leds-assabet.c b/arch/arm/mach-sa1100/leds-assabet.c index 64e9b4b11b5..3699176bca9 100644 --- a/arch/arm/mach-sa1100/leds-assabet.c +++ b/arch/arm/mach-sa1100/leds-assabet.c @@ -13,7 +13,6 @@  #include <mach/hardware.h>  #include <asm/leds.h> -#include <asm/system.h>  #include <mach/assabet.h>  #include "leds.h" diff --git a/arch/arm/mach-sa1100/leds-badge4.c b/arch/arm/mach-sa1100/leds-badge4.c index cf1e38458b8..f99fac3eedb 100644 --- a/arch/arm/mach-sa1100/leds-badge4.c +++ b/arch/arm/mach-sa1100/leds-badge4.c @@ -14,7 +14,6 @@  #include <mach/hardware.h>  #include <asm/leds.h> -#include <asm/system.h>  #include "leds.h" diff --git a/arch/arm/mach-sa1100/leds-cerf.c b/arch/arm/mach-sa1100/leds-cerf.c index 259b48e0be8..040540fb7d8 100644 --- a/arch/arm/mach-sa1100/leds-cerf.c +++ b/arch/arm/mach-sa1100/leds-cerf.c @@ -7,7 +7,6 @@  #include <mach/hardware.h>  #include <asm/leds.h> -#include <asm/system.h>  #include "leds.h" diff --git a/arch/arm/mach-sa1100/leds-hackkit.c b/arch/arm/mach-sa1100/leds-hackkit.c index 2bce137462e..6a2352436e6 100644 --- a/arch/arm/mach-sa1100/leds-hackkit.c +++ b/arch/arm/mach-sa1100/leds-hackkit.c @@ -13,7 +13,6 @@  #include <mach/hardware.h>  #include <asm/leds.h> -#include <asm/system.h>  #include "leds.h" diff --git a/arch/arm/mach-sa1100/leds-lart.c b/arch/arm/mach-sa1100/leds-lart.c index 0505a1fdcdb..a51830c60e5 100644 --- a/arch/arm/mach-sa1100/leds-lart.c +++ b/arch/arm/mach-sa1100/leds-lart.c @@ -13,7 +13,6 @@  #include <mach/hardware.h>  #include <asm/leds.h> -#include <asm/system.h>  #include "leds.h" diff --git a/arch/arm/mach-sa1100/pm.c b/arch/arm/mach-sa1100/pm.c index bf85b8b259d..2fa499ec6af 100644 --- a/arch/arm/mach-sa1100/pm.c +++ b/arch/arm/mach-sa1100/pm.c @@ -30,7 +30,6 @@  #include <mach/hardware.h>  #include <asm/memory.h>  #include <asm/suspend.h> -#include <asm/system.h>  #include <asm/mach/time.h>  extern int sa1100_finish_suspend(unsigned long); diff --git a/arch/arm/mach-shark/leds.c b/arch/arm/mach-shark/leds.c index ccd49189bbd..25609076921 100644 --- a/arch/arm/mach-shark/leds.c +++ b/arch/arm/mach-shark/leds.c @@ -23,7 +23,6 @@  #include <linux/io.h>  #include <asm/leds.h> -#include <asm/system.h>  #define LED_STATE_ENABLED	1  #define LED_STATE_CLAIMED	2 diff --git a/arch/arm/mach-shmobile/cpuidle.c b/arch/arm/mach-shmobile/cpuidle.c index 1b2334277e8..21b09b6455e 100644 --- a/arch/arm/mach-shmobile/cpuidle.c +++ b/arch/arm/mach-shmobile/cpuidle.c @@ -13,7 +13,6 @@  #include <linux/suspend.h>  #include <linux/module.h>  #include <linux/err.h> -#include <asm/system.h>  #include <asm/io.h>  static void shmobile_enter_wfi(void) diff --git a/arch/arm/mach-shmobile/include/mach/system.h b/arch/arm/mach-shmobile/include/mach/system.h index 956ac18ddbf..92042703b94 100644 --- a/arch/arm/mach-shmobile/include/mach/system.h +++ b/arch/arm/mach-shmobile/include/mach/system.h @@ -1,6 +1,8 @@  #ifndef __ASM_ARCH_SYSTEM_H  #define __ASM_ARCH_SYSTEM_H +#include <asm/system_misc.h> +  static inline void arch_idle(void)  {  	cpu_do_idle(); diff --git a/arch/arm/mach-shmobile/pm-r8a7779.c b/arch/arm/mach-shmobile/pm-r8a7779.c index c38ba7b43ef..a18a4ae16d2 100644 --- a/arch/arm/mach-shmobile/pm-r8a7779.c +++ b/arch/arm/mach-shmobile/pm-r8a7779.c @@ -18,7 +18,6 @@  #include <linux/irq.h>  #include <linux/interrupt.h>  #include <linux/console.h> -#include <asm/system.h>  #include <asm/io.h>  #include <mach/common.h>  #include <mach/r8a7779.h> diff --git a/arch/arm/mach-shmobile/pm-sh7372.c b/arch/arm/mach-shmobile/pm-sh7372.c index fcf8b1761ae..a3bdb12acde 100644 --- a/arch/arm/mach-shmobile/pm-sh7372.c +++ b/arch/arm/mach-shmobile/pm-sh7372.c @@ -21,7 +21,6 @@  #include <linux/irq.h>  #include <linux/bitrev.h>  #include <linux/console.h> -#include <asm/system.h>  #include <asm/io.h>  #include <asm/tlbflush.h>  #include <asm/suspend.h> diff --git a/arch/arm/mach-shmobile/suspend.c b/arch/arm/mach-shmobile/suspend.c index c1febe13f70..4d1b86a4992 100644 --- a/arch/arm/mach-shmobile/suspend.c +++ b/arch/arm/mach-shmobile/suspend.c @@ -12,8 +12,8 @@  #include <linux/suspend.h>  #include <linux/module.h>  #include <linux/err.h> -#include <asm/system.h>  #include <asm/io.h> +#include <asm/system_misc.h>  static int shmobile_suspend_default_enter(suspend_state_t suspend_state)  { diff --git a/arch/arm/mach-tegra/cpu-tegra.c b/arch/arm/mach-tegra/cpu-tegra.c index bb5ce39b733..7a065f0cf63 100644 --- a/arch/arm/mach-tegra/cpu-tegra.c +++ b/arch/arm/mach-tegra/cpu-tegra.c @@ -30,7 +30,6 @@  #include <linux/io.h>  #include <linux/suspend.h> -#include <asm/system.h>  #include <mach/clk.h> diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c index 008ce22b9a0..4cf706165af 100644 --- a/arch/arm/mach-versatile/core.c +++ b/arch/arm/mach-versatile/core.c @@ -36,7 +36,6 @@  #include <linux/clkdev.h>  #include <linux/mtd/physmap.h> -#include <asm/system.h>  #include <asm/irq.h>  #include <asm/leds.h>  #include <asm/hardware/arm_timer.h> diff --git a/arch/arm/mach-versatile/pci.c b/arch/arm/mach-versatile/pci.c index 90069bce23b..787cf5f26da 100644 --- a/arch/arm/mach-versatile/pci.c +++ b/arch/arm/mach-versatile/pci.c @@ -24,7 +24,6 @@  #include <mach/hardware.h>  #include <asm/irq.h> -#include <asm/system.h>  #include <asm/mach/pci.h>  /* diff --git a/arch/arm/mach-w90x900/cpu.c b/arch/arm/mach-w90x900/cpu.c index 9a066199290..9e4dd8b63c4 100644 --- a/arch/arm/mach-w90x900/cpu.c +++ b/arch/arm/mach-w90x900/cpu.c @@ -28,6 +28,7 @@  #include <asm/mach/map.h>  #include <asm/mach/irq.h>  #include <asm/irq.h> +#include <asm/system_misc.h>  #include <mach/hardware.h>  #include <mach/regs-serial.h> diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c index 78459b8a2a1..9107231aacc 100644 --- a/arch/arm/mm/alignment.c +++ b/arch/arm/mm/alignment.c @@ -23,6 +23,7 @@  #include <linux/uaccess.h>  #include <asm/cp15.h> +#include <asm/system_info.h>  #include <asm/unaligned.h>  #include "fault.h" diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c index bb7eac381a8..5bdff5c3e6c 100644 --- a/arch/arm/mm/fault.c +++ b/arch/arm/mm/fault.c @@ -21,8 +21,9 @@  #include <linux/perf_event.h>  #include <asm/exception.h> -#include <asm/system.h>  #include <asm/pgtable.h> +#include <asm/system_misc.h> +#include <asm/system_info.h>  #include <asm/tlbflush.h>  #include "fault.h" diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c index 1a8d4aa821b..062d61a1f87 100644 --- a/arch/arm/mm/flush.c +++ b/arch/arm/mm/flush.c @@ -16,7 +16,6 @@  #include <asm/cachetype.h>  #include <asm/highmem.h>  #include <asm/smp_plat.h> -#include <asm/system.h>  #include <asm/tlbflush.h>  #include "mm.h" diff --git a/arch/arm/mm/idmap.c b/arch/arm/mm/idmap.c index feacf4c7671..ab88ed4f8e0 100644 --- a/arch/arm/mm/idmap.c +++ b/arch/arm/mm/idmap.c @@ -5,6 +5,7 @@  #include <asm/pgalloc.h>  #include <asm/pgtable.h>  #include <asm/sections.h> +#include <asm/system_info.h>  pgd_t *idmap_pgd; diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c index 66daf17b5e3..6780b49f2c6 100644 --- a/arch/arm/mm/ioremap.c +++ b/arch/arm/mm/ioremap.c @@ -33,6 +33,7 @@  #include <asm/pgalloc.h>  #include <asm/tlbflush.h>  #include <asm/sizes.h> +#include <asm/system_info.h>  #include <asm/mach/map.h>  #include "mm.h" diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index 163a69af1fb..cd439c1dd50 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c @@ -26,6 +26,7 @@  #include <asm/smp_plat.h>  #include <asm/tlb.h>  #include <asm/highmem.h> +#include <asm/system_info.h>  #include <asm/traps.h>  #include <asm/mach/arch.h> diff --git a/arch/arm/mm/proc-fa526.S b/arch/arm/mm/proc-fa526.S index 272558a133a..d217e9795d7 100644 --- a/arch/arm/mm/proc-fa526.S +++ b/arch/arm/mm/proc-fa526.S @@ -22,7 +22,6 @@  #include <asm/pgtable.h>  #include <asm/page.h>  #include <asm/ptrace.h> -#include <asm/system.h>  #include "proc-macros.S" diff --git a/arch/arm/nwfpe/fpa11.c b/arch/arm/nwfpe/fpa11.c index cc60acde84d..2782ebcc2ed 100644 --- a/arch/arm/nwfpe/fpa11.c +++ b/arch/arm/nwfpe/fpa11.c @@ -28,7 +28,6 @@  #include <linux/compiler.h>  #include <linux/string.h> -#include <asm/system.h>  /* Reset the FPA11 chip.  Called to initialize and reset the emulator. */  static void resetFPA11(void) diff --git a/arch/arm/plat-iop/i2c.c b/arch/arm/plat-iop/i2c.c index 4efe392859e..88215ad031a 100644 --- a/arch/arm/plat-iop/i2c.c +++ b/arch/arm/plat-iop/i2c.c @@ -23,7 +23,6 @@  #include <asm/page.h>  #include <asm/mach/map.h>  #include <asm/setup.h> -#include <asm/system.h>  #include <asm/memory.h>  #include <mach/hardware.h>  #include <asm/hardware/iop3xx.h> diff --git a/arch/arm/plat-iop/pci.c b/arch/arm/plat-iop/pci.c index f4d40a27111..bb269819666 100644 --- a/arch/arm/plat-iop/pci.c +++ b/arch/arm/plat-iop/pci.c @@ -20,7 +20,6 @@  #include <linux/io.h>  #include <asm/irq.h>  #include <asm/signal.h> -#include <asm/system.h>  #include <mach/hardware.h>  #include <asm/mach/pci.h>  #include <asm/hardware/iop3xx.h> diff --git a/arch/arm/plat-iop/restart.c b/arch/arm/plat-iop/restart.c index 6a85a0c502e..33fa699a4d2 100644 --- a/arch/arm/plat-iop/restart.c +++ b/arch/arm/plat-iop/restart.c @@ -8,6 +8,7 @@   * published by the Free Software Foundation.   */  #include <asm/hardware/iop3xx.h> +#include <asm/system_misc.h>  #include <mach/hardware.h>  void iop3xx_restart(char mode, const char *cmd) diff --git a/arch/arm/plat-mxc/system.c b/arch/arm/plat-mxc/system.c index 3599bf2cfd4..c195d6d04d1 100644 --- a/arch/arm/plat-mxc/system.c +++ b/arch/arm/plat-mxc/system.c @@ -25,8 +25,8 @@  #include <mach/hardware.h>  #include <mach/common.h> +#include <asm/system_misc.h>  #include <asm/proc-fns.h> -#include <asm/system.h>  #include <asm/mach-types.h>  void __iomem *(*imx_ioremap)(unsigned long, size_t, unsigned int) = NULL; diff --git a/arch/arm/plat-omap/debug-leds.c b/arch/arm/plat-omap/debug-leds.c index 61a1ec2a6af..39407cbe34c 100644 --- a/arch/arm/plat-omap/debug-leds.c +++ b/arch/arm/plat-omap/debug-leds.c @@ -15,7 +15,6 @@  #include <mach/hardware.h>  #include <asm/leds.h> -#include <asm/system.h>  #include <asm/mach-types.h>  #include <plat/fpga.h> diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c index 002fb4d96bb..dbb10497d2a 100644 --- a/arch/arm/plat-omap/dma.c +++ b/arch/arm/plat-omap/dma.c @@ -36,7 +36,6 @@  #include <linux/slab.h>  #include <linux/delay.h> -#include <asm/system.h>  #include <mach/hardware.h>  #include <plat/dma.h> diff --git a/arch/arm/plat-omap/mux.c b/arch/arm/plat-omap/mux.c index 0d4aa0d5876..976fc801029 100644 --- a/arch/arm/plat-omap/mux.c +++ b/arch/arm/plat-omap/mux.c @@ -26,7 +26,6 @@  #include <linux/init.h>  #include <linux/kernel.h>  #include <linux/io.h> -#include <asm/system.h>  #include <linux/spinlock.h>  #include <plat/mux.h> diff --git a/arch/arm/plat-pxa/dma.c b/arch/arm/plat-pxa/dma.c index 2d3c19d7c7b..79ef102e3b2 100644 --- a/arch/arm/plat-pxa/dma.c +++ b/arch/arm/plat-pxa/dma.c @@ -20,7 +20,6 @@  #include <linux/errno.h>  #include <linux/dma-mapping.h> -#include <asm/system.h>  #include <asm/irq.h>  #include <asm/memory.h>  #include <mach/hardware.h> diff --git a/arch/arm/plat-s3c24xx/cpu.c b/arch/arm/plat-s3c24xx/cpu.c index 21f1fda8b66..ded64318fcc 100644 --- a/arch/arm/plat-s3c24xx/cpu.c +++ b/arch/arm/plat-s3c24xx/cpu.c @@ -34,6 +34,7 @@  #include <mach/hardware.h>  #include <asm/irq.h>  #include <asm/cacheflush.h> +#include <asm/system_info.h>  #include <asm/mach/arch.h>  #include <asm/mach/map.h> diff --git a/arch/arm/plat-s3c24xx/dma.c b/arch/arm/plat-s3c24xx/dma.c index 2bab4c99a23..28f898f7538 100644 --- a/arch/arm/plat-s3c24xx/dma.c +++ b/arch/arm/plat-s3c24xx/dma.c @@ -27,7 +27,6 @@  #include <linux/errno.h>  #include <linux/io.h> -#include <asm/system.h>  #include <asm/irq.h>  #include <mach/hardware.h>  #include <mach/dma.h> diff --git a/arch/arm/plat-samsung/cpu.c b/arch/arm/plat-samsung/cpu.c index 81c06d44c11..46b426e8aff 100644 --- a/arch/arm/plat-samsung/cpu.c +++ b/arch/arm/plat-samsung/cpu.c @@ -15,7 +15,6 @@  #include <linux/init.h>  #include <linux/io.h> -#include <asm/system.h>  #include <mach/map.h>  #include <plat/cpu.h> diff --git a/arch/arm/plat-samsung/time.c b/arch/arm/plat-samsung/time.c index e3bb806bbaf..4dcb11c3d89 100644 --- a/arch/arm/plat-samsung/time.c +++ b/arch/arm/plat-samsung/time.c @@ -28,7 +28,6 @@  #include <linux/io.h>  #include <linux/platform_device.h> -#include <asm/system.h>  #include <asm/leds.h>  #include <asm/mach-types.h> diff --git a/arch/arm/plat-spear/restart.c b/arch/arm/plat-spear/restart.c index 2b4e3d82957..16f203e78d8 100644 --- a/arch/arm/plat-spear/restart.c +++ b/arch/arm/plat-spear/restart.c @@ -11,6 +11,7 @@   * warranty of any kind, whether express or implied.   */  #include <linux/io.h> +#include <asm/system_misc.h>  #include <asm/hardware/sp810.h>  #include <mach/hardware.h>  #include <mach/generic.h> diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c index d89068f6d6e..858748eaa14 100644 --- a/arch/arm/vfp/vfpmodule.c +++ b/arch/arm/vfp/vfpmodule.c @@ -20,6 +20,7 @@  #include <asm/cp15.h>  #include <asm/cputype.h> +#include <asm/system_info.h>  #include <asm/thread_notify.h>  #include <asm/vfp.h> diff --git a/drivers/net/ethernet/8390/etherh.c b/drivers/net/ethernet/8390/etherh.c index 48c4948750d..a45b0d8a9f1 100644 --- a/drivers/net/ethernet/8390/etherh.c +++ b/drivers/net/ethernet/8390/etherh.c @@ -48,6 +48,7 @@  #include <asm/system.h>  #include <asm/ecard.h>  #include <asm/io.h> +#include <asm/system_info.h>  #define EI_SHIFT(x)	(ei_local->reg_offset[x]) diff --git a/drivers/tty/serial/21285.c b/drivers/tty/serial/21285.c index f899996b436..a44345a2dbb 100644 --- a/drivers/tty/serial/21285.c +++ b/drivers/tty/serial/21285.c @@ -16,6 +16,7 @@  #include <asm/irq.h>  #include <asm/mach-types.h> +#include <asm/system_info.h>  #include <asm/hardware/dec21285.h>  #include <mach/hardware.h> diff --git a/drivers/watchdog/wdt285.c b/drivers/watchdog/wdt285.c index f55135662d7..658a36d9b5a 100644 --- a/drivers/watchdog/wdt285.c +++ b/drivers/watchdog/wdt285.c @@ -32,6 +32,7 @@  #include <mach/hardware.h>  #include <asm/mach-types.h> +#include <asm/system_info.h>  #include <asm/hardware/dec21285.h>  /*  |