dummy-cpufreq.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * Copyright (C) 2019 Google, Inc.
  4. */
  5. #include <linux/cpufreq.h>
  6. #include <linux/module.h>
  7. static struct cpufreq_frequency_table freq_table[] = {
  8. { .frequency = 1 },
  9. { .frequency = 2 },
  10. { .frequency = CPUFREQ_TABLE_END },
  11. };
  12. static int dummy_cpufreq_target_index(struct cpufreq_policy *policy,
  13. unsigned int index)
  14. {
  15. return 0;
  16. }
  17. static int dummy_cpufreq_driver_init(struct cpufreq_policy *policy)
  18. {
  19. policy->freq_table = freq_table;
  20. return 0;
  21. }
  22. static unsigned int dummy_cpufreq_get(unsigned int cpu)
  23. {
  24. return 1;
  25. }
  26. static int dummy_cpufreq_verify(struct cpufreq_policy_data *data)
  27. {
  28. return 0;
  29. }
  30. static struct cpufreq_driver dummy_cpufreq_driver = {
  31. .name = "dummy",
  32. .target_index = dummy_cpufreq_target_index,
  33. .init = dummy_cpufreq_driver_init,
  34. .get = dummy_cpufreq_get,
  35. .verify = dummy_cpufreq_verify,
  36. .attr = cpufreq_generic_attr,
  37. };
  38. static int __init dummy_cpufreq_init(void)
  39. {
  40. return cpufreq_register_driver(&dummy_cpufreq_driver);
  41. }
  42. static void __exit dummy_cpufreq_exit(void)
  43. {
  44. cpufreq_unregister_driver(&dummy_cpufreq_driver);
  45. }
  46. module_init(dummy_cpufreq_init);
  47. module_exit(dummy_cpufreq_exit);
  48. MODULE_AUTHOR("Connor O'Brien <[email protected]>");
  49. MODULE_DESCRIPTION("dummy cpufreq driver");
  50. MODULE_LICENSE("GPL");