linux/include/linux/cpu_cooling.h
<<
>>
Prefs
   1/*
   2 *  linux/include/linux/cpu_cooling.h
   3 *
   4 *  Copyright (C) 2012  Samsung Electronics Co., Ltd(http://www.samsung.com)
   5 *  Copyright (C) 2012  Amit Daniel <amit.kachhap@linaro.org>
   6 *
   7 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   8 *  This program is free software; you can redistribute it and/or modify
   9 *  it under the terms of the GNU General Public License as published by
  10 *  the Free Software Foundation; version 2 of the License.
  11 *
  12 *  This program is distributed in the hope that it will be useful, but
  13 *  WITHOUT ANY WARRANTY; without even the implied warranty of
  14 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15 *  General Public License for more details.
  16 *
  17 *  You should have received a copy of the GNU General Public License along
  18 *  with this program; if not, write to the Free Software Foundation, Inc.,
  19 *  59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  20 *
  21 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  22 */
  23
  24#ifndef __CPU_COOLING_H__
  25#define __CPU_COOLING_H__
  26
  27#include <linux/of.h>
  28#include <linux/thermal.h>
  29#include <linux/cpumask.h>
  30
  31struct cpufreq_policy;
  32
  33#ifdef CONFIG_CPU_THERMAL
  34/**
  35 * cpufreq_cooling_register - function to create cpufreq cooling device.
  36 * @policy: cpufreq policy.
  37 */
  38struct thermal_cooling_device *
  39cpufreq_cooling_register(struct cpufreq_policy *policy);
  40
  41/**
  42 * cpufreq_cooling_unregister - function to remove cpufreq cooling device.
  43 * @cdev: thermal cooling device pointer.
  44 */
  45void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev);
  46
  47#else /* !CONFIG_CPU_THERMAL */
  48static inline struct thermal_cooling_device *
  49cpufreq_cooling_register(struct cpufreq_policy *policy)
  50{
  51        return ERR_PTR(-ENOSYS);
  52}
  53
  54static inline
  55void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev)
  56{
  57        return;
  58}
  59#endif  /* CONFIG_CPU_THERMAL */
  60
  61#if defined(CONFIG_THERMAL_OF) && defined(CONFIG_CPU_THERMAL)
  62/**
  63 * of_cpufreq_cooling_register - create cpufreq cooling device based on DT.
  64 * @policy: cpufreq policy.
  65 */
  66struct thermal_cooling_device *
  67of_cpufreq_cooling_register(struct cpufreq_policy *policy);
  68#else
  69static inline struct thermal_cooling_device *
  70of_cpufreq_cooling_register(struct cpufreq_policy *policy)
  71{
  72        return NULL;
  73}
  74#endif /* defined(CONFIG_THERMAL_OF) && defined(CONFIG_CPU_THERMAL) */
  75
  76#endif /* __CPU_COOLING_H__ */
  77