mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-18 00:24:58 +08:00
7426394f20
This patch adds cpuidle support for SuperH Mobile. The sleep mode selected by cpuidle is compared with the mode selected by the hwblk sleep code and the best allowed mode is entered. At this point "Sleep mode" and "Sleep mode + SF" are supported. This code can easily be extended to support "Software suspend mode", but the assembly code must first be updated to avoid loosing interrupts. Also, update the code to only copy the assembly snippet into internal memory once at bootup. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
32 lines
819 B
C
32 lines
819 B
C
#ifndef _ASM_SH_SUSPEND_H
|
|
#define _ASM_SH_SUSPEND_H
|
|
|
|
#ifndef __ASSEMBLY__
|
|
static inline int arch_prepare_suspend(void) { return 0; }
|
|
|
|
#include <asm/ptrace.h>
|
|
|
|
struct swsusp_arch_regs {
|
|
struct pt_regs user_regs;
|
|
unsigned long bank1_regs[8];
|
|
};
|
|
|
|
void sh_mobile_call_standby(unsigned long mode);
|
|
|
|
#ifdef CONFIG_CPU_IDLE
|
|
void sh_mobile_setup_cpuidle(void);
|
|
#else
|
|
static inline void sh_mobile_setup_cpuidle(void) {}
|
|
#endif
|
|
|
|
#endif
|
|
|
|
/* flags passed to assembly suspend code */
|
|
#define SUSP_SH_SLEEP (1 << 0) /* Regular sleep mode */
|
|
#define SUSP_SH_STANDBY (1 << 1) /* SH-Mobile Software standby mode */
|
|
#define SUSP_SH_RSTANDBY (1 << 2) /* SH-Mobile R-standby mode */
|
|
#define SUSP_SH_USTANDBY (1 << 3) /* SH-Mobile U-standby mode */
|
|
#define SUSP_SH_SF (1 << 4) /* Enable self-refresh */
|
|
|
|
#endif /* _ASM_SH_SUSPEND_H */
|