Path: blob/master/drivers/devfreq/governor_performance.c
26378 views
// SPDX-License-Identifier: GPL-2.0-only1/*2* linux/drivers/devfreq/governor_performance.c3*4* Copyright (C) 2011 Samsung Electronics5* MyungJoo Ham <[email protected]>6*/78#include <linux/devfreq.h>9#include <linux/module.h>10#include "governor.h"1112static int devfreq_performance_func(struct devfreq *df,13unsigned long *freq)14{15/*16* target callback should be able to get floor value as17* said in devfreq.h18*/19*freq = DEVFREQ_MAX_FREQ;20return 0;21}2223static int devfreq_performance_handler(struct devfreq *devfreq,24unsigned int event, void *data)25{26int ret = 0;2728if (event == DEVFREQ_GOV_START) {29mutex_lock(&devfreq->lock);30ret = update_devfreq(devfreq);31mutex_unlock(&devfreq->lock);32}3334return ret;35}3637static struct devfreq_governor devfreq_performance = {38.name = DEVFREQ_GOV_PERFORMANCE,39.get_target_freq = devfreq_performance_func,40.event_handler = devfreq_performance_handler,41};4243static int __init devfreq_performance_init(void)44{45return devfreq_add_governor(&devfreq_performance);46}47subsys_initcall(devfreq_performance_init);4849static void __exit devfreq_performance_exit(void)50{51int ret;5253ret = devfreq_remove_governor(&devfreq_performance);54if (ret)55pr_err("%s: failed remove governor %d\n", __func__, ret);5657return;58}59module_exit(devfreq_performance_exit);60MODULE_DESCRIPTION("DEVFREQ Performance governor");61MODULE_LICENSE("GPL");626364