linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Eduardo Valentin <eduardo.valentin@ti.com>
To: Durgadoss R <durgadoss.r@intel.com>
Cc: lenb@kernel.org, rui.zhang@intel.com, rjw@sisk.pl,
	linux-acpi@vger.kernel.org, linux-pm@vger.kernel.org,
	eduardo.valentin@ti.com, amit.kachhap@linaro.org, wni@nvidia.com
Subject: Re: [PATCH 03/13] Thermal: Add get trend, get instance API's to thermal_sys
Date: Mon, 20 Aug 2012 23:58:31 +0300	[thread overview]
Message-ID: <20120820205831.GR9833@besouro> (raw)
In-Reply-To: <1344516365-7230-4-git-send-email-durgadoss.r@intel.com>

Hello,

On Thu, Aug 09, 2012 at 06:15:55PM +0530, Durgadoss R wrote:
> This patch adds the following API's to thermal_sys.c, that
> can be used by other Thermal drivers.
>  * get_tz_trend: obtain the trend of the given thermal zone
>  * get_cdev_by_name: obtain cdev pointer given its name
>  * get_thermal_instance: obtain the instance corresponding
>    to the given tz, cdev and the trip point.
> 
> Signed-off-by: Durgadoss R <durgadoss.r@intel.com>
> ---
>  drivers/thermal/thermal_sys.c |   59 +++++++++++++++++++++++++++++++++++++++++
>  include/linux/thermal.h       |    5 ++++
>  2 files changed, 64 insertions(+)
> 
> diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c
> index a0e20f9..998c16e 100644
> --- a/drivers/thermal/thermal_sys.c
> +++ b/drivers/thermal/thermal_sys.c
> @@ -80,6 +80,65 @@ static void release_idr(struct idr *idr, struct mutex *lock, int id)
>  		mutex_unlock(lock);
>  }
>  
> +int get_tz_trend(struct thermal_zone_device *tz, int trip)
> +{
> +	enum thermal_trend trend;
> +
> +	if (!tz->ops->get_trend || tz->ops->get_trend(tz, trip, &trend)) {
> +		if (tz->temperature > tz->last_temperature)
> +			trend = THERMAL_TREND_RAISING;
> +		else if (tz->temperature < tz->last_temperature)
> +			trend = THERMAL_TREND_DROPPING;
> +		else
> +			trend = THERMAL_TREND_STABLE;
> +	}
> +
> +	return trend;
> +}
> +EXPORT_SYMBOL(get_tz_trend);

You may want to reuse the above function inside thermal_zone_trip_update().

> +
> +struct thermal_cooling_device *get_cdev_by_name(const char *name)
> +{
> +	struct thermal_cooling_device *pos;
> +	struct thermal_cooling_device *target_cdev = NULL;
> +
> +	mutex_lock(&thermal_list_lock);
> +
> +	list_for_each_entry(pos, &thermal_cdev_list, node) {
> +		if (!strcmp(pos->type, name)) {

strncmp?

> +			target_cdev = pos;
> +			break;
> +		}
> +	}
> +	mutex_unlock(&thermal_list_lock);
> +
> +	return target_cdev;
> +}
> +EXPORT_SYMBOL(get_cdev_by_name);
> +
> +struct thermal_instance *get_thermal_instance(struct thermal_zone_device *tz,
> +			struct thermal_cooling_device *cdev, int trip)
> +{
> +	struct thermal_instance *pos = NULL;
> +	struct thermal_instance *target_instance = NULL;
> +
> +	mutex_lock(&tz->lock);
> +	mutex_lock(&cdev->lock);
> +
> +	list_for_each_entry(pos, &tz->thermal_instances, tz_node) {
> +		if (pos->tz == tz && pos->trip == trip && pos->cdev == cdev) {
> +			target_instance = pos;
> +			break;
> +		}
> +	}
> +
> +	mutex_unlock(&cdev->lock);
> +	mutex_unlock(&tz->lock);
> +
> +	return target_instance;
> +}
> +EXPORT_SYMBOL(get_thermal_instance);
> +
>  /* sys I/F for thermal zone */
>  
>  #define to_thermal_zone(_dev) \
> diff --git a/include/linux/thermal.h b/include/linux/thermal.h
> index f25df23..757a007 100644
> --- a/include/linux/thermal.h
> +++ b/include/linux/thermal.h
> @@ -208,6 +208,11 @@ struct thermal_cooling_device *thermal_cooling_device_register(char *, void *,
>  		const struct thermal_cooling_device_ops *);
>  void thermal_cooling_device_unregister(struct thermal_cooling_device *);
>  
> +int get_tz_trend(struct thermal_zone_device *, int);
> +struct thermal_cooling_device *get_cdev_by_name(const char *);
> +struct thermal_instance *get_thermal_instance(struct thermal_zone_device *,
> +		struct thermal_cooling_device *, int);
> +
>  #ifdef CONFIG_NET
>  extern int thermal_generate_netlink_event(u32 orig, enum events event);
>  #else
> -- 
> 1.7.9.5
> 

  reply	other threads:[~2012-08-20 20:58 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-09 12:45 [PATCH 00/13] Thermal Framework Enhancements Durgadoss R
2012-08-09 12:45 ` [PATCH 01/13] Thermal: Refactor thermal.h file Durgadoss R
2012-08-20 15:58   ` Eduardo Valentin
2012-08-20 16:42     ` R, Durgadoss
2012-08-20 17:53       ` Eduardo Valentin
2012-08-09 12:45 ` [PATCH 02/13] Thermal: Move thermal_instance to thermal.h Durgadoss R
2012-08-16  6:14   ` Zhang Rui
2012-08-16  6:19     ` R, Durgadoss
2012-08-16  6:29       ` Zhang Rui
2012-08-16  6:31         ` R, Durgadoss
2012-08-16  7:12           ` Zhang Rui
2012-08-20 20:41             ` Eduardo Valentin
2012-08-09 12:45 ` [PATCH 03/13] Thermal: Add get trend, get instance API's to thermal_sys Durgadoss R
2012-08-20 20:58   ` Eduardo Valentin [this message]
2012-08-09 12:45 ` [PATCH 04/13] Thermal: Add platform level information to thermal.h Durgadoss R
2012-08-13  6:27   ` Zhang Rui
2012-08-13  6:31     ` R, Durgadoss
2012-08-16  6:16   ` Zhang Rui
2012-08-20 21:11   ` Eduardo Valentin
2012-08-09 12:45 ` [PATCH 05/13] Thermal: Obtain platform data for thermal zone Durgadoss R
2012-08-21  5:20   ` Eduardo Valentin
2012-08-09 12:45 ` [PATCH 06/13] Thermal: Add a policy sysfs attribute Durgadoss R
2012-08-13  6:28   ` Zhang Rui
2012-08-13  6:34     ` R, Durgadoss
2012-08-13  7:07       ` Zhang Rui
2012-08-21  5:31   ` Eduardo Valentin
2012-08-09 12:45 ` [PATCH 07/13] Thermal: Update binding logic based on platform data Durgadoss R
2012-08-13  6:41   ` Zhang Rui
2012-08-13 15:41     ` R, Durgadoss
2012-08-15  6:53       ` Zhang Rui
2012-08-15  9:17         ` R, Durgadoss
2012-08-16  3:30           ` Zhang Rui
2012-08-16  3:31             ` R, Durgadoss
2012-08-20 18:11               ` Eduardo Valentin
2012-08-09 12:46 ` [PATCH 08/13] Thermal: Introduce fair_share thermal governor Durgadoss R
2012-08-21  5:33   ` Eduardo Valentin
2012-08-21  5:59     ` R, Durgadoss
2012-08-21 14:16       ` Eduardo Valentin
2012-08-09 12:46 ` [PATCH 09/13] Thermal: Introduce a step_wise " Durgadoss R
2012-08-21  5:35   ` Eduardo Valentin
2012-08-09 12:46 ` [PATCH 10/13] Thermal: Remove throttling logic out of thermal_sys.c Durgadoss R
2012-08-13  7:00   ` Zhang Rui
2012-08-13  8:04     ` R, Durgadoss
2012-08-21  5:36       ` Eduardo Valentin
2012-08-09 12:46 ` [PATCH 11/13] Thermal: Add a notification API Durgadoss R
2012-08-13  7:02   ` Zhang Rui
2012-08-13  7:46     ` R, Durgadoss
2012-08-21  5:17       ` Eduardo Valentin
2012-08-09 12:46 ` [PATCH 12/13] Thermal: Add documentation for platform layer data Durgadoss R
2012-08-21  5:38   ` Eduardo Valentin
2012-08-21  5:51     ` R, Durgadoss
2012-08-09 12:46 ` [PATCH 13/13] Thermal: Platform layer changes to provide thermal data Durgadoss R
2012-08-21  5:39   ` Eduardo Valentin
2012-08-21  5:52     ` R, Durgadoss
2012-08-21  5:55       ` Zhang Rui
2012-08-21  6:41         ` R, Durgadoss
2012-08-21  6:52           ` Zhang Rui
2012-08-21  8:51             ` Eduardo Valentin
2012-08-23  0:11               ` Zhang Rui
2012-08-21  9:28             ` R, Durgadoss
2012-08-23  0:23               ` Zhang Rui

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120820205831.GR9833@besouro \
    --to=eduardo.valentin@ti.com \
    --cc=amit.kachhap@linaro.org \
    --cc=durgadoss.r@intel.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=rjw@sisk.pl \
    --cc=rui.zhang@intel.com \
    --cc=wni@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).