Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/drivers/cpufreq/cpufreq_performance.c
15109 views
1
/*
2
* linux/drivers/cpufreq/cpufreq_performance.c
3
*
4
* Copyright (C) 2002 - 2003 Dominik Brodowski <[email protected]>
5
*
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
*/
12
13
#include <linux/kernel.h>
14
#include <linux/module.h>
15
#include <linux/cpufreq.h>
16
#include <linux/init.h>
17
18
19
static int cpufreq_governor_performance(struct cpufreq_policy *policy,
20
unsigned int event)
21
{
22
switch (event) {
23
case CPUFREQ_GOV_START:
24
case CPUFREQ_GOV_LIMITS:
25
pr_debug("setting to %u kHz because of event %u\n",
26
policy->max, event);
27
__cpufreq_driver_target(policy, policy->max,
28
CPUFREQ_RELATION_H);
29
break;
30
default:
31
break;
32
}
33
return 0;
34
}
35
36
#ifdef CONFIG_CPU_FREQ_GOV_PERFORMANCE_MODULE
37
static
38
#endif
39
struct cpufreq_governor cpufreq_gov_performance = {
40
.name = "performance",
41
.governor = cpufreq_governor_performance,
42
.owner = THIS_MODULE,
43
};
44
45
46
static int __init cpufreq_gov_performance_init(void)
47
{
48
return cpufreq_register_governor(&cpufreq_gov_performance);
49
}
50
51
52
static void __exit cpufreq_gov_performance_exit(void)
53
{
54
cpufreq_unregister_governor(&cpufreq_gov_performance);
55
}
56
57
58
MODULE_AUTHOR("Dominik Brodowski <[email protected]>");
59
MODULE_DESCRIPTION("CPUfreq policy governor 'performance'");
60
MODULE_LICENSE("GPL");
61
62
fs_initcall(cpufreq_gov_performance_init);
63
module_exit(cpufreq_gov_performance_exit);
64
65