All of lore.kernel.org
 help / color / mirror / Atom feed
From: Caesar Wang <wxt@rock-chips.com>
To: edubezval@gmail.com, linux-pm@vger.kernel.org
Cc: Heiko Stuebner <heiko@sntech.de>,
	dianders@chromium.org, briannorris@google.com,
	smbarber@google.com, linux-rockchip@lists.infradead.org,
	cf@rock-chips.com, huangtao@rock-chips.com,
	dmitry.torokhov@gmail.com, javi.merino@arm.com, peter@piie.net,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Caesar Wang <wxt@rock-chips.com>, Zhang Rui <rui.zhang@intel.com>,
	linux-kernel@vger.kernel.org
Subject: [PATCH v5 2/5] thermal: of: implement .set_trips for device tree thermal zones
Date: Mon,  6 Jun 2016 19:44:46 +0800	[thread overview]
Message-ID: <1465213489-14898-3-git-send-email-wxt@rock-chips.com> (raw)
In-Reply-To: <1465213489-14898-1-git-send-email-wxt@rock-chips.com>

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

This patch implements .set_trips for device tree thermal zones.
As the hardware-tracked trip points is supported by thermal core patch[0].

patch[0]
"thermal: Add support for hardware-tracked trip points".

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>
Reviewed-by: Javi Merino <javi.merino@arm.com>

---

Changes in v5: None
Changes in v4:
- as the Javi comments, %s/implemnets/implements.

Changes in v3:
- as the Javi comments on https://patchwork.kernel.org/patch/9001311/.
- add the select if they set the option for devicetree.

Changes in v2:
- add the commit in patch[v2 2/5].

 drivers/thermal/of-thermal.c | 19 +++++++++++++++++++
 include/linux/thermal.h      |  4 ++++
 2 files changed, 23 insertions(+)

diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c
index b8e509c..2d2a06f 100644
--- a/drivers/thermal/of-thermal.c
+++ b/drivers/thermal/of-thermal.c
@@ -101,6 +101,17 @@ static int of_thermal_get_temp(struct thermal_zone_device *tz,
 	return data->ops->get_temp(data->sensor_data, temp);
 }
 
+static int of_thermal_set_trips(struct thermal_zone_device *tz,
+				int low, int high)
+{
+	struct __thermal_zone *data = tz->devdata;
+
+	if (!data->ops || !data->ops->set_trips)
+		return -EINVAL;
+
+	return data->ops->set_trips(data->sensor_data, low, high);
+}
+
 /**
  * of_thermal_get_ntrips - function to export number of available trip
  *			   points.
@@ -427,6 +438,14 @@ thermal_zone_of_add_sensor(struct device_node *zone,
 
 	tzd->ops->get_temp = of_thermal_get_temp;
 	tzd->ops->get_trend = of_thermal_get_trend;
+
+	/*
+	 * The thermal zone core will calculate the window if they have set the
+	 * optional set_trips pointer.
+	 */
+	if (ops->set_trips)
+		tzd->ops->set_trips = of_thermal_set_trips;
+
 	tzd->ops->set_emul_temp = of_thermal_set_emul_temp;
 	mutex_unlock(&tzd->lock);
 
diff --git a/include/linux/thermal.h b/include/linux/thermal.h
index 780e69d..2440b8d 100644
--- a/include/linux/thermal.h
+++ b/include/linux/thermal.h
@@ -342,6 +342,9 @@ struct thermal_genl_event {
  *
  * Optional:
  * @get_trend: a pointer to a function that reads the sensor temperature trend.
+ * @set_trips: a pointer to a function that sets a temperature window. When
+ *	       this window is left the driver must inform the thermal core via
+ *	       thermal_zone_device_update.
  * @set_emul_temp: a pointer to a function that sets sensor emulated
  *		   temperature.
  * @set_trip_temp: a pointer to a function that sets the trip temperature on
@@ -350,6 +353,7 @@ struct thermal_genl_event {
 struct thermal_zone_of_device_ops {
 	int (*get_temp)(void *, int *);
 	int (*get_trend)(void *, long *);
+	int (*set_trips)(void *, int, int);
 	int (*set_emul_temp)(void *, int);
 	int (*set_trip_temp)(void *, int, int);
 };
-- 
1.9.1

  parent reply	other threads:[~2016-06-06 11:45 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-06 11:44 [PATCH v5 0/5] Thermal: Support for hardware-tracked trip points Caesar Wang
2016-06-06 11:44 ` Caesar Wang
2016-06-06 11:44 ` [PATCH v5 1/5] thermal: Add support " Caesar Wang
2016-06-06 12:47   ` Javi Merino
2016-06-22  3:15   ` Zhang Rui
2016-06-22  3:15     ` Zhang Rui
2016-07-02  1:39     ` Eduardo Valentin
2016-06-06 11:44 ` Caesar Wang [this message]
2016-06-06 11:44 ` [PATCH v5 3/5] thermal: streamline get_trend callbacks Caesar Wang
2016-06-07  6:14   ` Keerthy
2016-06-07  6:14     ` Keerthy
2016-06-07 12:44     ` Caesar Wang
2016-06-06 11:44 ` [PATCH v5 4/5] thermal: bang-bang governor: act on lower trip boundary Caesar Wang
2016-06-06 11:44   ` Caesar Wang
2016-06-06 11:44 ` [PATCH v5 5/5] thermal: rockchip: add the set_trips function Caesar Wang
2016-06-06 11:44   ` Caesar Wang
2016-06-07 13:01 ` [PATCH v5.1 3/5] thermal: streamline get_trend callbacks Caesar Wang
     [not found]   ` <1465304499-14284-1-git-send-email-wxt-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2016-06-08  3:39     ` Keerthy
     [not found]       ` <57579355.9000701-l0cyMroinI0@public.gmane.org>
2016-06-08  3:39         ` Keerthy
     [not found] ` <57689B82.3000902@gmail.com>
2016-06-22  3:25   ` [PATCH v5 0/5] Thermal: Support for hardware-tracked trip points Zhang Rui
2016-06-22  3:25     ` Zhang Rui
2016-06-22 11:19     ` Caesar Wang
2016-06-22 11:19       ` Caesar Wang
2016-06-22 11:19       ` Caesar Wang

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=1465213489-14898-3-git-send-email-wxt@rock-chips.com \
    --to=wxt@rock-chips.com \
    --cc=briannorris@google.com \
    --cc=cf@rock-chips.com \
    --cc=dianders@chromium.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=edubezval@gmail.com \
    --cc=heiko@sntech.de \
    --cc=huangtao@rock-chips.com \
    --cc=javi.merino@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=peter@piie.net \
    --cc=rui.zhang@intel.com \
    --cc=s.hauer@pengutronix.de \
    --cc=smbarber@google.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.