mirror of
https://github.com/torvalds/linux.git
synced 2024-12-04 18:13:04 +00:00
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
@ -1,6 +1,7 @@
|
|||||||
#ifndef __ASM_IDLE_H
|
#ifndef __ASM_IDLE_H
|
||||||
#define __ASM_IDLE_H
|
#define __ASM_IDLE_H
|
||||||
|
|
||||||
|
#include <linux/cpuidle.h>
|
||||||
#include <linux/linkage.h>
|
#include <linux/linkage.h>
|
||||||
|
|
||||||
extern void (*cpu_wait)(void);
|
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;
|
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 */
|
#endif /* __ASM_IDLE_H */
|
||||||
|
@ -250,3 +250,14 @@ void arch_cpu_idle(void)
|
|||||||
else
|
else
|
||||||
local_irq_enable();
|
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 New Issue
Block a user