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 |