linux/drivers/thermal/thermal_core.h
<<
>>
Prefs
   1/*
   2 *  thermal_core.h
   3 *
   4 *  Copyright (C) 2012  Intel Corp
   5 *  Author: Durgadoss R <durgadoss.r@intel.com>
   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 __THERMAL_CORE_H__
  25#define __THERMAL_CORE_H__
  26
  27#include <linux/device.h>
  28#include <linux/thermal.h>
  29
  30/* Initial state of a cooling device during binding */
  31#define THERMAL_NO_TARGET -1UL
  32
  33/*
  34 * This structure is used to describe the behavior of
  35 * a certain cooling device on a certain trip point
  36 * in a certain thermal zone
  37 */
  38struct thermal_instance {
  39        int id;
  40        char name[THERMAL_NAME_LENGTH];
  41        struct thermal_zone_device *tz;
  42        struct thermal_cooling_device *cdev;
  43        int trip;
  44        unsigned long upper;    /* Highest cooling state for this trip point */
  45        unsigned long lower;    /* Lowest cooling state for this trip point */
  46        unsigned long target;   /* expected cooling state */
  47        char attr_name[THERMAL_NAME_LENGTH];
  48        struct device_attribute attr;
  49        struct list_head tz_node; /* node in tz->thermal_instances */
  50        struct list_head cdev_node; /* node in cdev->thermal_instances */
  51};
  52
  53int thermal_register_governor(struct thermal_governor *);
  54void thermal_unregister_governor(struct thermal_governor *);
  55
  56#ifdef CONFIG_THERMAL_GOV_STEP_WISE
  57int thermal_gov_step_wise_register(void);
  58void thermal_gov_step_wise_unregister(void);
  59#else
  60static inline int thermal_gov_step_wise_register(void) { return 0; }
  61static inline void thermal_gov_step_wise_unregister(void) {}
  62#endif /* CONFIG_THERMAL_GOV_STEP_WISE */
  63
  64#ifdef CONFIG_THERMAL_GOV_FAIR_SHARE
  65int thermal_gov_fair_share_register(void);
  66void thermal_gov_fair_share_unregister(void);
  67#else
  68static inline int thermal_gov_fair_share_register(void) { return 0; }
  69static inline void thermal_gov_fair_share_unregister(void) {}
  70#endif /* CONFIG_THERMAL_GOV_FAIR_SHARE */
  71
  72#ifdef CONFIG_THERMAL_GOV_USER_SPACE
  73int thermal_gov_user_space_register(void);
  74void thermal_gov_user_space_unregister(void);
  75#else
  76static inline int thermal_gov_user_space_register(void) { return 0; }
  77static inline void thermal_gov_user_space_unregister(void) {}
  78#endif /* CONFIG_THERMAL_GOV_USER_SPACE */
  79
  80#endif /* __THERMAL_CORE_H__ */
  81
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.