2019-06-04 11:11:33 +03:00
// SPDX-License-Identifier: GPL-2.0-only
2005-04-17 02:20:36 +04:00
/*
2013-06-19 12:49:33 +04:00
* linux / drivers / cpufreq / cpufreq_powersave . c
2005-04-17 02:20:36 +04:00
*
2013-06-19 12:49:33 +04:00
* Copyright ( C ) 2002 - 2003 Dominik Brodowski < linux @ brodo . de >
2005-04-17 02:20:36 +04:00
*/
2012-10-23 03:29:03 +04:00
# define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
2005-04-17 02:20:36 +04:00
# include <linux/cpufreq.h>
# include <linux/init.h>
2013-08-06 21:23:03 +04:00
# include <linux/module.h>
2005-04-17 02:20:36 +04:00
2016-06-03 00:24:15 +03:00
static void cpufreq_gov_powersave_limits ( struct cpufreq_policy * policy )
2005-04-17 02:20:36 +04:00
{
2016-06-03 00:24:15 +03:00
pr_debug ( " setting to %u kHz \n " , policy - > min ) ;
__cpufreq_driver_target ( policy , policy - > min , CPUFREQ_RELATION_L ) ;
2005-04-17 02:20:36 +04:00
}
2006-02-28 08:43:23 +03:00
2016-02-05 04:37:42 +03:00
static struct cpufreq_governor cpufreq_gov_powersave = {
2005-04-17 02:20:36 +04:00
. name = " powersave " ,
2016-06-03 00:24:15 +03:00
. limits = cpufreq_gov_powersave_limits ,
2005-04-17 02:20:36 +04:00
. owner = THIS_MODULE ,
2020-11-10 20:26:10 +03:00
. flags = CPUFREQ_GOV_STRICT_TARGET ,
2005-04-17 02:20:36 +04:00
} ;
MODULE_AUTHOR ( " Dominik Brodowski <linux@brodo.de> " ) ;
MODULE_DESCRIPTION ( " CPUfreq policy governor 'powersave' " ) ;
MODULE_LICENSE ( " GPL " ) ;
2008-04-19 00:31:13 +04:00
# ifdef CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE
2016-02-05 04:37:42 +03:00
struct cpufreq_governor * cpufreq_default_governor ( void )
{
return & cpufreq_gov_powersave ;
}
2008-04-19 00:31:13 +04:00
# endif
2020-06-29 11:24:59 +03:00
cpufreq_governor_init ( cpufreq_gov_powersave ) ;
cpufreq_governor_exit ( cpufreq_gov_powersave ) ;