blob: b0e4e1a0231870c45d14bea0a9178d701737b673 [file] [log] [blame]
Russell King2c74a0c2011-06-22 17:41:48 +01001#ifndef __ASM_ARM_SUSPEND_H
2#define __ASM_ARM_SUSPEND_H
3
4#include <asm/memory.h>
Russell King0853f962011-06-23 14:24:09 +01005#include <asm/tlbflush.h>
Russell King2c74a0c2011-06-22 17:41:48 +01006
7extern 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 King29cb3cd2011-07-02 09:54:01 +010013static inline int cpu_suspend(unsigned long arg, int (*fn)(unsigned long))
Russell King2c74a0c2011-06-22 17:41:48 +010014{
Russell King29cb3cd2011-07-02 09:54:01 +010015 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 King0853f962011-06-23 14:24:09 +010018 flush_tlb_all();
Russell King29cb3cd2011-07-02 09:54:01 +010019 return ret;
Russell King2c74a0c2011-06-22 17:41:48 +010020}
21
22#endif