diff mbox series

thermal: of-thermal: disable passive polling when thermal zone is disabled

Message ID 1532969809-8300-1-git-send-email-Anson.Huang@nxp.com (mailing list archive)
State Accepted
Delegated to: Eduardo Valentin
Headers show
Series thermal: of-thermal: disable passive polling when thermal zone is disabled | expand

Commit Message

Anson Huang July 30, 2018, 4:56 p.m. UTC
When thermal zone is in passive mode, disabling its mode from
sysfs is NOT taking effect at all, it is still polling the
temperature of the disabled thermal zone and handling all thermal
trips, it makes user confused. The disabling operation should
disable the thermal zone behavior completely, for both active and
passive mode, this patch clears the passive_delay when thermal
zone is disabled and restores it when it is enabled.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
---
 drivers/thermal/of-thermal.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Anson Huang Aug. 24, 2018, 7:10 a.m. UTC | #1
Gentle Ping...

Anson Huang
Best Regards!


> -----Original Message-----
> From: Anson Huang
> Sent: Tuesday, July 31, 2018 12:57 AM
> To: rui.zhang@intel.com; edubezval@gmail.com; linux-pm@vger.kernel.org;
> linux-kernel@vger.kernel.org
> Cc: dl-linux-imx <linux-imx@nxp.com>; Nitin Garg <nitin.garg@nxp.com>
> Subject: [PATCH] thermal: of-thermal: disable passive polling when thermal
> zone is disabled
> 
> When thermal zone is in passive mode, disabling its mode from sysfs is NOT
> taking effect at all, it is still polling the temperature of the disabled thermal
> zone and handling all thermal trips, it makes user confused. The disabling
> operation should disable the thermal zone behavior completely, for both active
> and passive mode, this patch clears the passive_delay when thermal zone is
> disabled and restores it when it is enabled.
> 
> Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
> ---
>  drivers/thermal/of-thermal.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c index
> 977a830..4f28165 100644
> --- a/drivers/thermal/of-thermal.c
> +++ b/drivers/thermal/of-thermal.c
> @@ -260,10 +260,13 @@ static int of_thermal_set_mode(struct
> thermal_zone_device *tz,
> 
>  	mutex_lock(&tz->lock);
> 
> -	if (mode == THERMAL_DEVICE_ENABLED)
> +	if (mode == THERMAL_DEVICE_ENABLED) {
>  		tz->polling_delay = data->polling_delay;
> -	else
> +		tz->passive_delay = data->passive_delay;
> +	} else {
>  		tz->polling_delay = 0;
> +		tz->passive_delay = 0;
> +	}
> 
>  	mutex_unlock(&tz->lock);
> 
> --
> 2.7.4
diff mbox series

Patch

diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c
index 977a830..4f28165 100644
--- a/drivers/thermal/of-thermal.c
+++ b/drivers/thermal/of-thermal.c
@@ -260,10 +260,13 @@  static int of_thermal_set_mode(struct thermal_zone_device *tz,
 
 	mutex_lock(&tz->lock);
 
-	if (mode == THERMAL_DEVICE_ENABLED)
+	if (mode == THERMAL_DEVICE_ENABLED) {
 		tz->polling_delay = data->polling_delay;
-	else
+		tz->passive_delay = data->passive_delay;
+	} else {
 		tz->polling_delay = 0;
+		tz->passive_delay = 0;
+	}
 
 	mutex_unlock(&tz->lock);