aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/arch/mips/include/asm/idle.h
diff options
context:
space:
mode:
authorPaul Burton <paul.burton@imgtec.com>2014-04-14 16:16:41 +0100
committerPaul Burton <paul.burton@imgtec.com>2014-05-28 16:20:34 +0100
commitda9f970fdd55a018ab97ec2d25653756407bdaaf (patch)
tree5f2cfee935680a9c819b33d1514620c152674a7f /arch/mips/include/asm/idle.h
parentMIPS: smp-cps: duplicate core0 CCA on secondary cores (diff)
downloadwireguard-linux-da9f970fdd55a018ab97ec2d25653756407bdaaf.tar.xz
wireguard-linux-da9f970fdd55a018ab97ec2d25653756407bdaaf.zip
MIPS: cpuidle wait instruction state
Defines a macro intended to allow trivial use of the regular MIPS wait instruction from cpuidle drivers, which may simply invoke the macro within their array of states. Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Diffstat (limited to 'arch/mips/include/asm/idle.h')
-rw-r--r--arch/mips/include/asm/idle.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/mips/include/asm/idle.h b/arch/mips/include/asm/idle.h
index d192158886b1..d9f932de80e9 100644
--- a/arch/mips/include/asm/idle.h
+++ b/arch/mips/include/asm/idle.h
@@ -1,6 +1,7 @@
#ifndef __ASM_IDLE_H
#define __ASM_IDLE_H
+#include <linux/cpuidle.h>
#include <linux/linkage.h>
extern void (*cpu_wait)(void);
@@ -20,4 +21,17 @@ static inline int address_is_in_r4k_wait_irqoff(unsigned long addr)
addr < (unsigned long)__pastwait;
}
+extern int mips_cpuidle_wait_enter(struct cpuidle_device *dev,
+ struct cpuidle_driver *drv, int index);
+
+#define MIPS_CPUIDLE_WAIT_STATE {\
+ .enter = mips_cpuidle_wait_enter,\
+ .exit_latency = 1,\
+ .target_residency = 1,\
+ .power_usage = UINT_MAX,\
+ .flags = CPUIDLE_FLAG_TIME_VALID,\
+ .name = "wait",\
+ .desc = "MIPS wait",\
+}
+
#endif /* __ASM_IDLE_H */