[PATCH v4 3/4] thermal: bang-bang governor: act on lower trip boundary

Caesar Wang wxt at rock-chips.com
Fri May 27 01:23:27 PDT 2016

From: Sascha Hauer <s.hauer at pengutronix.de>

With interrupt driven thermal zones we pass the lower and upper
temperature on which shall be acted, so in the governor we have to act on
the exact lower temperature to be consistent. Otherwise an interrupt maybe
generated on the exact lower temperature, but the bang bang governor does
not react since The polling driven zones have to be one step cooler before
the governor reacts.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
Signed-off-by: Caesar Wang <wxt at rock-chips.com>
Cc: Zhang Rui <rui.zhang at intel.com>
Cc: Eduardo Valentin <edubezval at gmail.com>
Cc: linux-pm at vger.kernel.org
Acked-by: Peter Feuerer <peter at piie.net>


Changes in v4: None
Changes in v3:
- Add the peter's ACK.

Changes in v2:
- Update the commit for patch[v2 4/5].

 drivers/thermal/gov_bang_bang.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/thermal/gov_bang_bang.c b/drivers/thermal/gov_bang_bang.c
index 70836c5..9d1dfea 100644
--- a/drivers/thermal/gov_bang_bang.c
+++ b/drivers/thermal/gov_bang_bang.c
@@ -59,7 +59,7 @@ static void thermal_zone_trip_update(struct thermal_zone_device *tz, int trip)
 		if (instance->target == 0 && tz->temperature >= trip_temp)
 			instance->target = 1;
 		else if (instance->target == 1 &&
-				tz->temperature < trip_temp - trip_hyst)
+				tz->temperature <= trip_temp - trip_hyst)
 			instance->target = 0;
 		dev_dbg(&instance->cdev->device, "target=%d\n",

More information about the Linux-rockchip mailing list