linux/drivers/cpufreq/cpufreq_powersave.c
<<
>>
Prefs
   1/*
   2 * linux/drivers/cpufreq/cpufreq_powersave.c
   3 *
   4 * Copyright (C) 2002 - 2003 Dominik Brodowski <linux@brodo.de>
   5 *
   6 *
   7 * This program is free software; you can redistribute it and/or modify
   8 * it under the terms of the GNU General Public License version 2 as
   9 * published by the Free Software Foundation.
  10 *
  11 */
  12
  13#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
  14
  15#include <linux/cpufreq.h>
  16#include <linux/init.h>
  17#include <linux/module.h>
  18
  19static int cpufreq_governor_powersave(struct cpufreq_policy *policy,
  20                                        unsigned int event)
  21{
  22        switch (event) {
  23        case CPUFREQ_GOV_START:
  24        case CPUFREQ_GOV_LIMITS:
  25                pr_debug("setting to %u kHz because of event %u\n",
  26                                                        policy->min, event);
  27                __cpufreq_driver_target(policy, policy->min,
  28                                                CPUFREQ_RELATION_L);
  29                break;
  30        default:
  31                break;
  32        }
  33        return 0;
  34}
  35
  36#ifndef CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE
  37static
  38#endif
  39struct cpufreq_governor cpufreq_gov_powersave = {
  40        .name           = "powersave",
  41        .governor       = cpufreq_governor_powersave,
  42        .owner          = THIS_MODULE,
  43};
  44
  45static int __init cpufreq_gov_powersave_init(void)
  46{
  47        return cpufreq_register_governor(&cpufreq_gov_powersave);
  48}
  49
  50static void __exit cpufreq_gov_powersave_exit(void)
  51{
  52        cpufreq_unregister_governor(&cpufreq_gov_powersave);
  53}
  54
  55MODULE_AUTHOR("Dominik Brodowski <linux@brodo.de>");
  56MODULE_DESCRIPTION("CPUfreq policy governor 'powersave'");
  57MODULE_LICENSE("GPL");
  58
  59#ifdef CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE
  60fs_initcall(cpufreq_gov_powersave_init);
  61#else
  62module_init(cpufreq_gov_powersave_init);
  63#endif
  64module_exit(cpufreq_gov_powersave_exit);
  65
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.