thermal: bang-bang governor: act on lower trip boundary
authorSascha Hauer <s.hauer@pengutronix.de>
Wed, 22 Jun 2016 08:42:04 +0000 (16:42 +0800)
committerZhang Rui <rui.zhang@intel.com>
Tue, 27 Sep 2016 06:02:16 +0000 (14:02 +0800)
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@pengutronix.de>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Cc: Zhang Rui <rui.zhang@intel.com>
Cc: Eduardo Valentin <edubezval@gmail.com>
Cc: linux-pm@vger.kernel.org
Acked-by: Peter Feuerer <peter@piie.net>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
drivers/thermal/gov_bang_bang.c

index bb118a152cbbde3c570f90fb5355bc04afe54beb..fc5e5057f0de73bbf5567bc5e14a9a824414a189 100644 (file)
@@ -65,7 +65,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",