mirror of
https://github.com/torvalds/linux.git
synced 2024-11-27 14:41:39 +00:00
218f668701
Introduce a new governor flag, CPUFREQ_GOV_STRICT_TARGET, for the governors that want the target frequency to be set exactly to the given value without leaving any room for adjustments on the hardware side and set this flag for the powersave and performance governors. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
46 lines
1.2 KiB
C
46 lines
1.2 KiB
C
// SPDX-License-Identifier: GPL-2.0-only
|
|
/*
|
|
* linux/drivers/cpufreq/cpufreq_performance.c
|
|
*
|
|
* Copyright (C) 2002 - 2003 Dominik Brodowski <linux@brodo.de>
|
|
*/
|
|
|
|
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
|
|
|
#include <linux/cpufreq.h>
|
|
#include <linux/init.h>
|
|
#include <linux/module.h>
|
|
|
|
static void cpufreq_gov_performance_limits(struct cpufreq_policy *policy)
|
|
{
|
|
pr_debug("setting to %u kHz\n", policy->max);
|
|
__cpufreq_driver_target(policy, policy->max, CPUFREQ_RELATION_H);
|
|
}
|
|
|
|
static struct cpufreq_governor cpufreq_gov_performance = {
|
|
.name = "performance",
|
|
.owner = THIS_MODULE,
|
|
.flags = CPUFREQ_GOV_STRICT_TARGET,
|
|
.limits = cpufreq_gov_performance_limits,
|
|
};
|
|
|
|
#ifdef CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE
|
|
struct cpufreq_governor *cpufreq_default_governor(void)
|
|
{
|
|
return &cpufreq_gov_performance;
|
|
}
|
|
#endif
|
|
#ifndef CONFIG_CPU_FREQ_GOV_PERFORMANCE_MODULE
|
|
struct cpufreq_governor *cpufreq_fallback_governor(void)
|
|
{
|
|
return &cpufreq_gov_performance;
|
|
}
|
|
#endif
|
|
|
|
MODULE_AUTHOR("Dominik Brodowski <linux@brodo.de>");
|
|
MODULE_DESCRIPTION("CPUfreq policy governor 'performance'");
|
|
MODULE_LICENSE("GPL");
|
|
|
|
cpufreq_governor_init(cpufreq_gov_performance);
|
|
cpufreq_governor_exit(cpufreq_gov_performance);
|