Loading...
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __ASM_ARM_SUSPEND_H
3#define __ASM_ARM_SUSPEND_H
4
5#include <linux/types.h>
6
7struct sleep_save_sp {
8 u32 *save_ptr_stash;
9 u32 save_ptr_stash_phys;
10};
11
12extern void cpu_resume(void);
13extern void cpu_resume_no_hyp(void);
14extern void cpu_resume_arm(void);
15extern int cpu_suspend(unsigned long, int (*)(unsigned long));
16extern void __cpu_suspend_save(u32 *ptr, u32 ptrsz, u32 sp, u32 *save_ptr);
17
18#endif
1#ifndef __ASM_ARM_SUSPEND_H
2#define __ASM_ARM_SUSPEND_H
3
4#include <asm/memory.h>
5#include <asm/tlbflush.h>
6
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 */
13static inline int cpu_suspend(unsigned long arg, int (*fn)(unsigned long))
14{
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);
18 flush_tlb_all();
19 return ret;
20}
21
22#endif