Branch data Line data Source code
1 : : // SPDX-License-Identifier: GPL-2.0-only 2 : : /* 3 : : * linux/drivers/cpufreq/cpufreq_powersave.c 4 : : * 5 : : * Copyright (C) 2002 - 2003 Dominik Brodowski <linux@brodo.de> 6 : : */ 7 : : 8 : : #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 9 : : 10 : : #include <linux/cpufreq.h> 11 : : #include <linux/init.h> 12 : : #include <linux/module.h> 13 : : 14 : 2 : static void cpufreq_gov_powersave_limits(struct cpufreq_policy *policy) 15 : : { 16 : : pr_debug("setting to %u kHz\n", policy->min); 17 : 2 : __cpufreq_driver_target(policy, policy->min, CPUFREQ_RELATION_L); 18 : 2 : } 19 : : 20 : : static struct cpufreq_governor cpufreq_gov_powersave = { 21 : : .name = "powersave", 22 : : .limits = cpufreq_gov_powersave_limits, 23 : : .owner = THIS_MODULE, 24 : : }; 25 : : 26 : 3 : static int __init cpufreq_gov_powersave_init(void) 27 : : { 28 : 3 : return cpufreq_register_governor(&cpufreq_gov_powersave); 29 : : } 30 : : 31 : 0 : static void __exit cpufreq_gov_powersave_exit(void) 32 : : { 33 : 0 : cpufreq_unregister_governor(&cpufreq_gov_powersave); 34 : 0 : } 35 : : 36 : : MODULE_AUTHOR("Dominik Brodowski <linux@brodo.de>"); 37 : : MODULE_DESCRIPTION("CPUfreq policy governor 'powersave'"); 38 : : MODULE_LICENSE("GPL"); 39 : : 40 : : #ifdef CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE 41 : 2 : struct cpufreq_governor *cpufreq_default_governor(void) 42 : : { 43 : 2 : return &cpufreq_gov_powersave; 44 : : } 45 : : 46 : : fs_initcall(cpufreq_gov_powersave_init); 47 : : #else 48 : : module_init(cpufreq_gov_powersave_init); 49 : : #endif 50 : : module_exit(cpufreq_gov_powersave_exit);