From: Eduardo Valentin <eduardo.valentin@ti.com>
To: Wei Ni <wni@nvidia.com>
Cc: eduardo.valentin@ti.com, rui.zhang@intel.com,
mark.rutland@arm.com, MLongnecker@nvidia.com,
swarren@wwwdotorg.org, linux-pm@vger.kernel.org,
linux-tegra@vger.kernel.org
Subject: Re: [PATCH] thermal: add trip parameter for of .get_trend
Date: Wed, 8 Jan 2014 08:48:44 -0400 [thread overview]
Message-ID: <52CD492C.2030508@ti.com> (raw)
In-Reply-To: <1389172038-723-1-git-send-email-wni@nvidia.com>
[-- Attachment #1: Type: text/plain, Size: 4993 bytes --]
On 08-01-2014 05:07, Wei Ni wrote:
> Add trip parameter for the of-thermal's .get_trend(), so
> that it can be compatible with current thermal framework.
You need to have a better look on the existing users of an API before
changing it.
>
> Signed-off-by: Wei Ni <wni@nvidia.com>
> ---
> drivers/thermal/of-thermal.c | 16 +++++-----------
> drivers/thermal/ti-soc-thermal/ti-thermal-common.c | 18 +++++++++---------
> include/linux/thermal.h | 4 ++--
> 3 files changed, 16 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c
> index 97c12cf..a503e61 100644
> --- a/drivers/thermal/of-thermal.c
> +++ b/drivers/thermal/of-thermal.c
> @@ -97,7 +97,7 @@ struct __thermal_zone {
> /* sensor interface */
> void *sensor_data;
> int (*get_temp)(void *, long *);
> - int (*get_trend)(void *, long *);
> + int (*get_trend)(void *, int, long *);
> };
>
> /*** DT thermal zone device callbacks ***/
> @@ -123,17 +123,11 @@ static int of_thermal_get_trend(struct thermal_zone_device *tz, int trip,
> if (!data->get_trend)
> return -EINVAL;
>
> - r = data->get_trend(data->sensor_data, &dev_trend);
> + r = data->get_trend(data->sensor_data, trip, &dev_trend);
> if (r)
> return r;
>
> - /* TODO: These intervals might have some thresholds, but in core code */
> - if (dev_trend > 0)
> - *trend = THERMAL_TREND_RAISING;
> - else if (dev_trend < 0)
> - *trend = THERMAL_TREND_DROPPING;
> - else
> - *trend = THERMAL_TREND_STABLE;
> + *trend = dev_trend;
>
> return 0;
> }
> @@ -325,7 +319,7 @@ static struct thermal_zone_device *
> thermal_zone_of_add_sensor(struct device_node *zone,
> struct device_node *sensor, void *data,
> int (*get_temp)(void *, long *),
> - int (*get_trend)(void *, long *))
> + int (*get_trend)(void *, int, long *))
> {
> struct thermal_zone_device *tzd;
> struct __thermal_zone *tz;
> @@ -384,7 +378,7 @@ thermal_zone_of_add_sensor(struct device_node *zone,
> struct thermal_zone_device *
> thermal_zone_of_sensor_register(struct device *dev, int sensor_id,
> void *data, int (*get_temp)(void *, long *),
> - int (*get_trend)(void *, long *))
> + int (*get_trend)(void *, int, long *))
> {
> struct device_node *np, *child, *sensor_np;
>
> diff --git a/drivers/thermal/ti-soc-thermal/ti-thermal-common.c b/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
> index 9eec26d..1a8ae03 100644
> --- a/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
> +++ b/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
> @@ -239,7 +239,7 @@ static int ti_thermal_get_trip_temp(struct thermal_zone_device *thermal,
> return 0;
> }
>
> -static int __ti_thermal_get_trend(void *p, long *trend)
> +static int __ti_thermal_get_trend(void *p, int trip, long *trend)
> {
> struct ti_thermal_data *data = p;
> struct ti_bandgap *bgp;
> @@ -252,7 +252,12 @@ static int __ti_thermal_get_trend(void *p, long *trend)
> if (ret)
> return ret;
>
> - *trend = tr;
> + if (tr > 0)
> + *trend = THERMAL_TREND_RAISING;
> + else if (tr < 0)
> + *trend = THERMAL_TREND_DROPPING;
> + else
> + *trend = THERMAL_TREND_STABLE;
>
> return 0;
> }
> @@ -264,16 +269,11 @@ static int ti_thermal_get_trend(struct thermal_zone_device *thermal,
> int ret;
> long tr;
>
> - ret = __ti_thermal_get_trend(thermal->devdata, &tr);
> + ret = __ti_thermal_get_trend(thermal->devdata, trip, &tr);
> if (ret)
> return ret;
>
> - if (tr > 0)
> - *trend = THERMAL_TREND_RAISING;
> - else if (tr < 0)
> - *trend = THERMAL_TREND_DROPPING;
> - else
> - *trend = THERMAL_TREND_STABLE;
> + *trend = tr;
This enforces users of this API (device drivers) to be compatible to
thermal framework, which is not always the case. For instance, hwmon
drivers are not aware of thermal constants.
>
> return 0;
> }
> diff --git a/include/linux/thermal.h b/include/linux/thermal.h
> index a94de8c..37e4e03 100644
> --- a/include/linux/thermal.h
> +++ b/include/linux/thermal.h
> @@ -249,14 +249,14 @@ struct thermal_genl_event {
> struct thermal_zone_device *
> thermal_zone_of_sensor_register(struct device *dev, int id,
> void *data, int (*get_temp)(void *, long *),
> - int (*get_trend)(void *, long *));
> + int (*get_trend)(void *, int, long *));
> void thermal_zone_of_sensor_unregister(struct device *dev,
> struct thermal_zone_device *tz);
> #else
> static inline struct thermal_zone_device *
> thermal_zone_of_sensor_register(struct device *dev, int id,
> void *data, int (*get_temp)(void *, long *),
> - int (*get_trend)(void *, long *))
> + int (*get_trend)(void *, int, long *))
> {
> return NULL;
> }
>
--
You have got to be excited about what you are doing. (L. Lamport)
Eduardo Valentin
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 295 bytes --]
next prev parent reply other threads:[~2014-01-08 12:48 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-08 9:07 [PATCH] thermal: add trip parameter for of .get_trend Wei Ni
2014-01-08 12:48 ` Eduardo Valentin [this message]
[not found] ` <52CD492C.2030508-l0cyMroinI0@public.gmane.org>
2014-01-09 7:55 ` Wei Ni
2014-01-08 12:48 ` Eduardo Valentin
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=52CD492C.2030508@ti.com \
--to=eduardo.valentin@ti.com \
--cc=MLongnecker@nvidia.com \
--cc=linux-pm@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=rui.zhang@intel.com \
--cc=swarren@wwwdotorg.org \
--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.