Loading...
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __ASM_IDLE_H
3#define __ASM_IDLE_H
4
5#include <linux/cpuidle.h>
6#include <linux/linkage.h>
7
8extern void (*cpu_wait)(void);
9extern void r4k_wait(void);
10extern asmlinkage void __r4k_wait(void);
11extern void r4k_wait_irqoff(void);
12
13static inline int using_rollback_handler(void)
14{
15 return cpu_wait == r4k_wait;
16}
17
18extern int mips_cpuidle_wait_enter(struct cpuidle_device *dev,
19 struct cpuidle_driver *drv, int index);
20
21#define MIPS_CPUIDLE_WAIT_STATE {\
22 .enter = mips_cpuidle_wait_enter,\
23 .exit_latency = 1,\
24 .target_residency = 1,\
25 .power_usage = UINT_MAX,\
26 .name = "wait",\
27 .desc = "MIPS wait",\
28}
29
30#endif /* __ASM_IDLE_H */
1#ifndef __ASM_IDLE_H
2#define __ASM_IDLE_H
3
4#include <linux/linkage.h>
5
6extern void (*cpu_wait)(void);
7extern void r4k_wait(void);
8extern asmlinkage void __r4k_wait(void);
9extern void r4k_wait_irqoff(void);
10extern void __pastwait(void);
11
12static inline int using_rollback_handler(void)
13{
14 return cpu_wait == r4k_wait;
15}
16
17static inline int address_is_in_r4k_wait_irqoff(unsigned long addr)
18{
19 return addr >= (unsigned long)r4k_wait_irqoff &&
20 addr < (unsigned long)__pastwait;
21}
22
23#endif /* __ASM_IDLE_H */