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
>
next prev parent 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.