| Russell King | 2c74a0c | 2011-06-22 17:41:48 +0100 | [diff] [blame] | 1 | #ifndef __ASM_ARM_SUSPEND_H | 
 | 2 | #define __ASM_ARM_SUSPEND_H | 
 | 3 |  | 
 | 4 | #include <asm/memory.h> | 
| Russell King | 0853f96 | 2011-06-23 14:24:09 +0100 | [diff] [blame] | 5 | #include <asm/tlbflush.h> | 
| Russell King | 2c74a0c | 2011-06-22 17:41:48 +0100 | [diff] [blame] | 6 |  | 
 | 7 | extern void cpu_resume(void); | 
 | 8 |  | 
 | 9 | /* | 
 | 10 |  * Hide the first two arguments to __cpu_suspend - these are an implementation | 
 | 11 |  * detail which platform code shouldn't have to know about. | 
 | 12 |  */ | 
| Russell King | 29cb3cd | 2011-07-02 09:54:01 +0100 | [diff] [blame] | 13 | static inline int cpu_suspend(unsigned long arg, int (*fn)(unsigned long)) | 
| Russell King | 2c74a0c | 2011-06-22 17:41:48 +0100 | [diff] [blame] | 14 | { | 
| Russell King | 29cb3cd | 2011-07-02 09:54:01 +0100 | [diff] [blame] | 15 | 	extern int __cpu_suspend(int, long, unsigned long, | 
 | 16 | 				 int (*)(unsigned long)); | 
 | 17 | 	int ret = __cpu_suspend(0, PHYS_OFFSET - PAGE_OFFSET, arg, fn); | 
| Russell King | 0853f96 | 2011-06-23 14:24:09 +0100 | [diff] [blame] | 18 | 	flush_tlb_all(); | 
| Russell King | 29cb3cd | 2011-07-02 09:54:01 +0100 | [diff] [blame] | 19 | 	return ret; | 
| Russell King | 2c74a0c | 2011-06-22 17:41:48 +0100 | [diff] [blame] | 20 | } | 
 | 21 |  | 
 | 22 | #endif |