[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-tegra
Subject: Re: [PATCH v3 3/4] thermal: of: enable temperature notifications
From: Matt Longnecker <mlongnecker () nvidia ! com>
Date: 2016-03-30 16:54:15
Message-ID: 56FC04B7.5050808 () nvidia ! com
[Download RAW message or body]
Looks good to me.
On 03/29/2016 05:41 PM, Srikar Srimath Tirumala wrote:
> * Add a state variable to track if trip point is triggered.
> * Enable trip events only when the state of the tirp point changes.
> * Implement the get\set callbacks for trip state.
>
> Change-Id: I1bd6a7b0e5e520d8ee678b83111d23cada7a580c
> Signed-off-by: Srikar Srimath Tirumala <srikars@nvidia.com>
> ---
> drivers/thermal/of-thermal.c | 43 +++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 43 insertions(+)
>
> diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c
> index 49ac23d..f6d9d3d 100644
> --- a/drivers/thermal/of-thermal.c
> +++ b/drivers/thermal/of-thermal.c
> @@ -379,6 +379,43 @@ static int of_thermal_get_crit_temp(struct thermal_zone_device *tz,
> return -EINVAL;
> }
>
> +static bool of_thermal_enb_temp_notify(struct thermal_zone_device *tz, int trip)
> +{
> + bool ret = true;
> + struct __thermal_zone *data = tz->devdata;
> +
> + if (trip >= data->ntrips || trip < 0)
> + ret = false;
> +
> + return ret;
> +}
> +
> +static int of_thermal_get_trip_state(struct thermal_zone_device *tz, int trip,
> + enum thermal_trip_state *state)
> +{
> + struct __thermal_zone *data = tz->devdata;
> +
> + if (trip >= data->ntrips || trip < 0)
> + return -EDOM;
> +
> + *state = data->trips[trip].state;
> +
> + return 0;
> +}
> +
> +static int of_thermal_set_trip_state(struct thermal_zone_device *tz, int trip,
> + enum thermal_trip_state state)
> +{
> + struct __thermal_zone *data = tz->devdata;
> +
> + if (trip >= data->ntrips || trip < 0)
> + return -EDOM;
> +
> + data->trips[trip].state = state;
> +
> + return 0;
> +}
> +
> static struct thermal_zone_device_ops of_thermal_ops = {
> .get_mode = of_thermal_get_mode,
> .set_mode = of_thermal_set_mode,
> @@ -392,6 +429,10 @@ static struct thermal_zone_device_ops of_thermal_ops = {
>
> .bind = of_thermal_bind,
> .unbind = of_thermal_unbind,
> +
> + .get_trip_state = of_thermal_get_trip_state,
> + .set_trip_state = of_thermal_set_trip_state,
> + .enb_temp_notify = of_thermal_enb_temp_notify,
> };
>
> /*** sensor API ***/
> @@ -782,6 +823,8 @@ static int thermal_of_populate_trip(struct device_node *np,
> return ret;
> }
>
> + trip->state = THERMAL_TRIP_NOT_TRIPPED;
> +
> /* Required for cooling map matching */
> trip->np = np;
> of_node_get(np);
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic