2005-04-17 02:20:36 +04:00
/*
* linux / drivers / cpufreq / cpufreq_performance . c
*
* Copyright ( C ) 2002 - 2003 Dominik Brodowski < linux @ brodo . de >
*
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*
*/
# include <linux/kernel.h>
# include <linux/module.h>
# include <linux/cpufreq.h>
# include <linux/init.h>
2006-10-26 14:50:58 +04:00
# define dprintk(msg...) \
cpufreq_debug_printk ( CPUFREQ_DEBUG_GOVERNOR , " performance " , msg )
2005-04-17 02:20:36 +04:00
static int cpufreq_governor_performance ( struct cpufreq_policy * policy ,
unsigned int event )
{
switch ( event ) {
case CPUFREQ_GOV_START :
case CPUFREQ_GOV_LIMITS :
2006-10-26 14:50:58 +04:00
dprintk ( " setting to %u kHz because of event %u \n " ,
policy - > max , event ) ;
__cpufreq_driver_target ( policy , policy - > max ,
CPUFREQ_RELATION_H ) ;
2005-04-17 02:20:36 +04:00
break ;
default :
break ;
}
return 0 ;
}
2006-02-28 08:43:23 +03:00
2008-09-20 18:50:08 +04:00
# ifdef CONFIG_CPU_FREQ_GOV_PERFORMANCE_MODULE
static
# endif
2005-04-17 02:20:36 +04:00
struct cpufreq_governor cpufreq_gov_performance = {
. name = " performance " ,
. governor = cpufreq_governor_performance ,
. owner = THIS_MODULE ,
} ;
static int __init cpufreq_gov_performance_init ( void )
{
return cpufreq_register_governor ( & cpufreq_gov_performance ) ;
}
static void __exit cpufreq_gov_performance_exit ( void )
{
cpufreq_unregister_governor ( & cpufreq_gov_performance ) ;
}
MODULE_AUTHOR ( " Dominik Brodowski <linux@brodo.de> " ) ;
MODULE_DESCRIPTION ( " CPUfreq policy governor 'performance' " ) ;
MODULE_LICENSE ( " GPL " ) ;
fs_initcall ( cpufreq_gov_performance_init ) ;
module_exit ( cpufreq_gov_performance_exit ) ;