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>
This commit is contained in:
parent
0155a06529
commit
da9f970fdd
2 changed files with 25 additions and 0 deletions
|
@ -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 */
|
||||
|
|
|
@ -250,3 +250,14 @@ void arch_cpu_idle(void)
|
|||
else
|
||||
local_irq_enable();
|
||||
}
|
||||
|
||||
#ifdef CONFIG_CPU_IDLE
|
||||
|
||||
int mips_cpuidle_wait_enter(struct cpuidle_device *dev,
|
||||
struct cpuidle_driver *drv, int index)
|
||||
{
|
||||
arch_cpu_idle();
|
||||
return index;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue