idle.h 883 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef __ASM_IDLE_H
  2. #define __ASM_IDLE_H
  3. #include <linux/cpuidle.h>
  4. #include <linux/linkage.h>
  5. extern void (*cpu_wait)(void);
  6. extern void r4k_wait(void);
  7. extern asmlinkage void __r4k_wait(void);
  8. extern void r4k_wait_irqoff(void);
  9. extern void __pastwait(void);
  10. static inline int using_rollback_handler(void)
  11. {
  12. return cpu_wait == r4k_wait;
  13. }
  14. static inline int address_is_in_r4k_wait_irqoff(unsigned long addr)
  15. {
  16. return addr >= (unsigned long)r4k_wait_irqoff &&
  17. addr < (unsigned long)__pastwait;
  18. }
  19. extern int mips_cpuidle_wait_enter(struct cpuidle_device *dev,
  20. struct cpuidle_driver *drv, int index);
  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. .flags = CPUIDLE_FLAG_TIME_VALID,\
  27. .name = "wait",\
  28. .desc = "MIPS wait",\
  29. }
  30. #endif /* __ASM_IDLE_H */