X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=target%2Flinux%2Fbrcm2708%2Fpatches-4.19%2F950-0172-drivers-thermal-step_wise-add-support-for-hysteresis.patch;fp=target%2Flinux%2Fbrcm2708%2Fpatches-4.19%2F950-0172-drivers-thermal-step_wise-add-support-for-hysteresis.patch;h=0000000000000000000000000000000000000000;hb=67dcc43f3a22dc3a7ac07a7065971b426feeb043;hp=3043559c0feb35901499fe70f7de721afba76ebb;hpb=47a93a810f78adce5a130d287f82b28e9b54313c;p=openwrt%2Fstaging%2Fchunkeey.git diff --git a/target/linux/brcm2708/patches-4.19/950-0172-drivers-thermal-step_wise-add-support-for-hysteresis.patch b/target/linux/brcm2708/patches-4.19/950-0172-drivers-thermal-step_wise-add-support-for-hysteresis.patch deleted file mode 100644 index 3043559c0f..0000000000 --- a/target/linux/brcm2708/patches-4.19/950-0172-drivers-thermal-step_wise-add-support-for-hysteresis.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 05a13bbd7fbb76b4f690042173749a55d85de831 Mon Sep 17 00:00:00 2001 -From: Ram Chandrasekar -Date: Mon, 7 May 2018 11:54:08 -0600 -Subject: [PATCH 172/806] drivers: thermal: step_wise: add support for - hysteresis - -From: Ram Chandrasekar - -Step wise governor increases the mitigation level when the temperature -goes above a threshold and will decrease the mitigation when the -temperature falls below the threshold. If it were a case, where the -temperature hovers around a threshold, the mitigation will be applied -and removed at every iteration. This reaction to the temperature is -inefficient for performance. - -The use of hysteresis temperature could avoid this ping-pong of -mitigation by relaxing the mitigation to happen only when the -temperature goes below this lower hysteresis value. - -Signed-off-by: Ram Chandrasekar -Signed-off-by: Lina Iyer ---- - drivers/thermal/step_wise.c | 33 +++++++++++++++++++++++---------- - 1 file changed, 23 insertions(+), 10 deletions(-) - ---- a/drivers/thermal/step_wise.c -+++ b/drivers/thermal/step_wise.c -@@ -36,7 +36,7 @@ - * for this trip point - * d. if the trend is THERMAL_TREND_DROP_FULL, use lower limit - * for this trip point -- * If the temperature is lower than a trip point, -+ * If the temperature is lower than a hysteresis temperature, - * a. if the trend is THERMAL_TREND_RAISING, do nothing - * b. if the trend is THERMAL_TREND_DROPPING, use lower cooling - * state for this trip point, if the cooling state already -@@ -127,7 +127,7 @@ static void update_passive_instance(stru - - static void thermal_zone_trip_update(struct thermal_zone_device *tz, int trip) - { -- int trip_temp; -+ int trip_temp, hyst_temp; - enum thermal_trip_type trip_type; - enum thermal_trend trend; - struct thermal_instance *instance; -@@ -135,22 +135,23 @@ static void thermal_zone_trip_update(str - int old_target; - - if (trip == THERMAL_TRIPS_NONE) { -- trip_temp = tz->forced_passive; -+ hyst_temp = trip_temp = tz->forced_passive; - trip_type = THERMAL_TRIPS_NONE; - } else { - tz->ops->get_trip_temp(tz, trip, &trip_temp); -+ hyst_temp = trip_temp; -+ if (tz->ops->get_trip_hyst) { -+ tz->ops->get_trip_hyst(tz, trip, &hyst_temp); -+ hyst_temp = trip_temp - hyst_temp; -+ } - tz->ops->get_trip_type(tz, trip, &trip_type); - } - - trend = get_tz_trend(tz, trip); - -- if (tz->temperature >= trip_temp) { -- throttle = true; -- trace_thermal_zone_trip(tz, trip, trip_type); -- } -- -- dev_dbg(&tz->device, "Trip%d[type=%d,temp=%d]:trend=%d,throttle=%d\n", -- trip, trip_type, trip_temp, trend, throttle); -+ dev_dbg(&tz->device, -+ "Trip%d[type=%d,temp=%d,hyst=%d]:trend=%d,throttle=%d\n", -+ trip, trip_type, trip_temp, hyst_temp, trend, throttle); - - mutex_lock(&tz->lock); - -@@ -159,6 +160,18 @@ static void thermal_zone_trip_update(str - continue; - - old_target = instance->target; -+ throttle = false; -+ /* -+ * Lower the mitigation only if the temperature -+ * goes below the hysteresis temperature. -+ */ -+ if (tz->temperature >= trip_temp || -+ (tz->temperature >= hyst_temp && -+ old_target != THERMAL_NO_TARGET)) { -+ throttle = true; -+ trace_thermal_zone_trip(tz, trip, trip_type); -+ } -+ - instance->target = get_target_state(instance, trend, throttle); - dev_dbg(&instance->cdev->device, "old_target=%d, target=%d\n", - old_target, (int)instance->target);