governor.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*
  2. * governor.h - internal header for devfreq governors.
  3. *
  4. * Copyright (C) 2011 Samsung Electronics
  5. * MyungJoo Ham <myungjoo.ham@samsung.com>
  6. *
  7. * This program is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU General Public License version 2 as
  9. * published by the Free Software Foundation.
  10. *
  11. * This header is for devfreq governors in drivers/devfreq/
  12. */
  13. #ifndef _GOVERNOR_H
  14. #define _GOVERNOR_H
  15. #include <linux/devfreq.h>
  16. #define to_devfreq(DEV) container_of((DEV), struct devfreq, dev)
  17. /* Devfreq events */
  18. #define DEVFREQ_GOV_START 0x1
  19. #define DEVFREQ_GOV_STOP 0x2
  20. #define DEVFREQ_GOV_INTERVAL 0x3
  21. #define DEVFREQ_GOV_SUSPEND 0x4
  22. #define DEVFREQ_GOV_RESUME 0x5
  23. /* Caution: devfreq->lock must be locked before calling update_devfreq */
  24. extern int update_devfreq(struct devfreq *devfreq);
  25. extern void devfreq_monitor_start(struct devfreq *devfreq);
  26. extern void devfreq_monitor_stop(struct devfreq *devfreq);
  27. extern void devfreq_monitor_suspend(struct devfreq *devfreq);
  28. extern void devfreq_monitor_resume(struct devfreq *devfreq);
  29. extern void devfreq_interval_update(struct devfreq *devfreq,
  30. unsigned int *delay);
  31. extern int devfreq_add_governor(struct devfreq_governor *governor);
  32. extern int devfreq_remove_governor(struct devfreq_governor *governor);
  33. extern int devfreq_update_status(struct devfreq *devfreq, unsigned long freq);
  34. #endif /* _GOVERNOR_H */