governor_performance.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /*
  2. * linux/drivers/devfreq/governor_performance.c
  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. #include <linux/devfreq.h>
  12. #include "governor.h"
  13. static int devfreq_performance_func(struct devfreq *df,
  14. unsigned long *freq)
  15. {
  16. /*
  17. * target callback should be able to get floor value as
  18. * said in devfreq.h
  19. */
  20. if (!df->max_freq)
  21. *freq = UINT_MAX;
  22. else
  23. *freq = df->max_freq;
  24. return 0;
  25. }
  26. static int devfreq_performance_handler(struct devfreq *devfreq,
  27. unsigned int event, void *data)
  28. {
  29. int ret = 0;
  30. if (event == DEVFREQ_GOV_START) {
  31. mutex_lock(&devfreq->lock);
  32. ret = update_devfreq(devfreq);
  33. mutex_unlock(&devfreq->lock);
  34. }
  35. return ret;
  36. }
  37. const struct devfreq_governor devfreq_performance = {
  38. .name = "performance",
  39. .get_target_freq = devfreq_performance_func,
  40. .event_handler = devfreq_performance_handler,
  41. };