1d2912cb1SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only 21da177e4SLinus Torvalds /* 31da177e4SLinus Torvalds * linux/drivers/cpufreq/cpufreq_performance.c 41da177e4SLinus Torvalds * 51da177e4SLinus Torvalds * Copyright (C) 2002 - 2003 Dominik Brodowski <linux@brodo.de> 61da177e4SLinus Torvalds */ 71da177e4SLinus Torvalds 8db701151SViresh Kumar #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 9db701151SViresh Kumar 101da177e4SLinus Torvalds #include <linux/cpufreq.h> 111da177e4SLinus Torvalds #include <linux/init.h> 125ff0a268SViresh Kumar #include <linux/module.h> 131da177e4SLinus Torvalds cpufreq_gov_performance_limits(struct cpufreq_policy * policy)14e788892bSRafael J. Wysockistatic void cpufreq_gov_performance_limits(struct cpufreq_policy *policy) 151da177e4SLinus Torvalds { 1616de72b9SRafael J. Wysocki pr_debug("setting to %u kHz\n", policy->max); 17e788892bSRafael J. Wysocki __cpufreq_driver_target(policy, policy->max, CPUFREQ_RELATION_H); 181da177e4SLinus Torvalds } 191da177e4SLinus Torvalds 20de1df26bSRafael J. Wysocki static struct cpufreq_governor cpufreq_gov_performance = { 211da177e4SLinus Torvalds .name = "performance", 221da177e4SLinus Torvalds .owner = THIS_MODULE, 23218f6687SRafael J. Wysocki .flags = CPUFREQ_GOV_STRICT_TARGET, 24e788892bSRafael J. Wysocki .limits = cpufreq_gov_performance_limits, 251da177e4SLinus Torvalds }; 261da177e4SLinus Torvalds 27de1df26bSRafael J. Wysocki #ifdef CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE cpufreq_default_governor(void)28de1df26bSRafael J. Wysockistruct cpufreq_governor *cpufreq_default_governor(void) 29de1df26bSRafael J. Wysocki { 30de1df26bSRafael J. Wysocki return &cpufreq_gov_performance; 31de1df26bSRafael J. Wysocki } 32de1df26bSRafael J. Wysocki #endif 33de1df26bSRafael J. Wysocki #ifndef CONFIG_CPU_FREQ_GOV_PERFORMANCE_MODULE cpufreq_fallback_governor(void)34de1df26bSRafael J. Wysockistruct cpufreq_governor *cpufreq_fallback_governor(void) 35de1df26bSRafael J. Wysocki { 36de1df26bSRafael J. Wysocki return &cpufreq_gov_performance; 37de1df26bSRafael J. Wysocki } 38de1df26bSRafael J. Wysocki #endif 39de1df26bSRafael J. Wysocki 401da177e4SLinus Torvalds MODULE_AUTHOR("Dominik Brodowski <linux@brodo.de>"); 411da177e4SLinus Torvalds MODULE_DESCRIPTION("CPUfreq policy governor 'performance'"); 421da177e4SLinus Torvalds MODULE_LICENSE("GPL"); 431da177e4SLinus Torvalds 4410dd8573SQuentin Perret cpufreq_governor_init(cpufreq_gov_performance); 4510dd8573SQuentin Perret cpufreq_governor_exit(cpufreq_gov_performance); 46