All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zhang Rui <rui.zhang@intel.com>
To: "Rafael J. Wysocki" <rjw@sisk.pl>,
	Matthew Garrett <mjg@redhat.com>, Len Brown <lenb@kernel.org>,
	R Durgadoss <durgadoss.r@intel.com>,
	Eduardo Valentin <eduardo.valentin@ti.com>,
	Amit Kachhap <amit.kachhap@linaro.org>, Wei Ni <wni@nvidia.com>,
	Zhang Rui <rui.zhang@intel.com>
Cc: linux-acpi@vger.kernel.org, linux-pm@vger.kernel.org
Subject: [PATCH RESEND 04/16] Thermal: Introduce multiple cooling states support
Date: Wed, 25 Jul 2012 10:11:01 +0800	[thread overview]
Message-ID: <1343182273-32096-5-git-send-email-rui.zhang@intel.com> (raw)
In-Reply-To: <1343182273-32096-1-git-send-email-rui.zhang@intel.com>

This is because general active cooling devices, like fans,
may have multiple speeds, which can be mapped to different cooling states.

Signed-off-by: Zhang Rui <rui.zhang@intel.com>
---
 drivers/thermal/thermal_sys.c |   12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c
index 2d7a9fe..05f42cd 100644
--- a/drivers/thermal/thermal_sys.c
+++ b/drivers/thermal/thermal_sys.c
@@ -1059,6 +1059,7 @@ void thermal_zone_device_update(struct thermal_zone_device *tz)
 	enum thermal_trip_type trip_type;
 	struct thermal_cooling_device_instance *instance;
 	struct thermal_cooling_device *cdev;
+	unsigned long cur_state, max_state;
 
 	mutex_lock(&tz->lock);
 
@@ -1098,10 +1099,17 @@ void thermal_zone_device_update(struct thermal_zone_device *tz)
 
 				cdev = instance->cdev;
 
+				cdev->ops->get_cur_state(cdev, &cur_state);
+				cdev->ops->get_max_state(cdev, &max_state);
+
 				if (temp >= trip_temp)
-					cdev->ops->set_cur_state(cdev, 1);
+					cur_state = cur_state < max_state ?
+						(cur_state + 1) : max_state;
 				else
-					cdev->ops->set_cur_state(cdev, 0);
+					cur_state = cur_state > 0 ?
+						(cur_state - 1) : 0;
+
+				cdev->ops->set_cur_state(cdev, cur_state);
 			}
 			break;
 		case THERMAL_TRIP_PASSIVE:
-- 
1.7.9.5


  parent reply	other threads:[~2012-07-25  2:11 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-25  2:10 [PATCH RESEND 00/16] Thermal: generic thermal layer enhancement Zhang Rui
2012-07-25  2:10 ` [PATCH RESEND 01/16] Thermal: Make Thermal trip points writeable Zhang Rui
2012-07-25  3:18   ` Len Brown
2012-07-25  2:10 ` [PATCH RESEND 02/16] Thermal: Add Hysteresis attributes Zhang Rui
2012-07-25  3:19   ` Len Brown
2012-07-25  2:11 ` [PATCH RESEND 03/16] Thermal: Documentation update Zhang Rui
2012-07-25  2:11 ` Zhang Rui [this message]
2012-07-25 20:06   ` [PATCH RESEND 04/16] Thermal: Introduce multiple cooling states support Rafael J. Wysocki
2012-07-26  2:33     ` Zhang Rui
2012-07-25  2:11 ` [PATCH RESEND 05/16] Thermal: Introduce cooling states range support Zhang Rui
2012-07-25 20:08   ` Rafael J. Wysocki
2012-08-08 12:07   ` Valentin, Eduardo
2012-07-25  2:11 ` [PATCH RESEND 06/16] Thermal: set upper and lower limits Zhang Rui
2012-07-25 20:14   ` Rafael J. Wysocki
2012-08-08 12:50   ` Valentin, Eduardo
2012-07-25  2:11 ` [PATCH RESEND 07/16] Thermal: Introduce .get_trend() callback Zhang Rui
2012-07-25 20:19   ` Rafael J. Wysocki
2012-07-26  2:21     ` Zhang Rui
2012-07-25  2:11 ` [PATCH RESEND 08/16] Thermal: Remove tc1/tc2 in generic thermal layer Zhang Rui
2012-07-25 20:24   ` Rafael J. Wysocki
2012-07-26  2:23     ` Zhang Rui
2012-07-25  2:11 ` [PATCH RESEND 09/16] Thermal: Introduce thermal_zone_trip_update() Zhang Rui
2012-07-25 20:31   ` Rafael J. Wysocki
2012-07-26  2:25     ` Zhang Rui
2012-07-25  2:11 ` [PATCH RESEND 10/16] Thermal: rename structure thermal_cooling_device_instance to thermal_instance Zhang Rui
2012-07-25 20:32   ` Rafael J. Wysocki
2012-07-25  2:11 ` [PATCH RESEND 11/16] Thermal: Rename thermal_zone_device.cooling_devices Zhang Rui
2012-07-25 20:33   ` Rafael J. Wysocki
2012-07-25  2:11 ` [PATCH RESEND 12/16] Thermal: Rename thermal_instance.node to thermal_instance.tz_node Zhang Rui
2012-07-25 20:34   ` Rafael J. Wysocki
2012-07-25  2:11 ` [PATCH RESEND 13/16] Thermal: List thermal_instance in thermal_cooling_device Zhang Rui
2012-07-25 20:35   ` Rafael J. Wysocki
2012-07-25  2:11 ` [PATCH RESEND 14/16] Thermal: Introduce simple arbitrator for setting device cooling state Zhang Rui
2012-07-25 20:38   ` Rafael J. Wysocki
2012-07-25  2:11 ` [PATCH RESEND 15/16] Thermal: Unify the code for both active and passive cooling Zhang Rui
2012-07-25 20:41   ` Rafael J. Wysocki
2012-08-09  8:26   ` Valentin, Eduardo
2012-08-09  8:32     ` Zhang Rui
2012-07-25  2:11 ` [PATCH RESEND 16/16] Thermal: Introduce locking for cdev.thermal_instances list Zhang Rui
2012-07-25 18:54   ` Rafael J. Wysocki
2012-07-26  2:32     ` Zhang Rui

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1343182273-32096-5-git-send-email-rui.zhang@intel.com \
    --to=rui.zhang@intel.com \
    --cc=amit.kachhap@linaro.org \
    --cc=durgadoss.r@intel.com \
    --cc=eduardo.valentin@ti.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mjg@redhat.com \
    --cc=rjw@sisk.pl \
    --cc=wni@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.