Commit 76b1ae86 authored by Wei Ni's avatar Wei Ni Committed by Eduardo Valentin

thermal: tegra: add get_trend ops

Add support for get_trend ops that allows soctherm
sensors to be used with the step-wise governor.
Signed-off-by: default avatarWei Ni <wni@nvidia.com>
Signed-off-by: default avatarEduardo Valentin <edubezval@gmail.com>
parent 3d88adf3
...@@ -488,9 +488,41 @@ static int tegra_thermctl_set_trip_temp(void *data, int trip, int temp) ...@@ -488,9 +488,41 @@ static int tegra_thermctl_set_trip_temp(void *data, int trip, int temp)
return 0; return 0;
} }
static int tegra_thermctl_get_trend(void *data, int trip,
enum thermal_trend *trend)
{
struct tegra_thermctl_zone *zone = data;
struct thermal_zone_device *tz = zone->tz;
int trip_temp, temp, last_temp, ret;
if (!tz)
return -EINVAL;
ret = tz->ops->get_trip_temp(zone->tz, trip, &trip_temp);
if (ret)
return ret;
temp = READ_ONCE(tz->temperature);
last_temp = READ_ONCE(tz->last_temperature);
if (temp > trip_temp) {
if (temp >= last_temp)
*trend = THERMAL_TREND_RAISING;
else
*trend = THERMAL_TREND_STABLE;
} else if (temp < trip_temp) {
*trend = THERMAL_TREND_DROPPING;
} else {
*trend = THERMAL_TREND_STABLE;
}
return 0;
}
static const struct thermal_zone_of_device_ops tegra_of_thermal_ops = { static const struct thermal_zone_of_device_ops tegra_of_thermal_ops = {
.get_temp = tegra_thermctl_get_temp, .get_temp = tegra_thermctl_get_temp,
.set_trip_temp = tegra_thermctl_set_trip_temp, .set_trip_temp = tegra_thermctl_set_trip_temp,
.get_trend = tegra_thermctl_get_trend,
}; };
static int get_hot_temp(struct thermal_zone_device *tz, int *trip, int *temp) static int get_hot_temp(struct thermal_zone_device *tz, int *trip, int *temp)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment