lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220426221523.3056696-13-daniel.lezcano@linexp.org>
Date:   Wed, 27 Apr 2022 00:15:20 +0200
From:   Daniel Lezcano <daniel.lezcano@...exp.org>
To:     rafael@...nel.org, daniel.lezcano@...aro.org
Cc:     khilman@...libre.com, abailon@...libre.com,
        linux-pm@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH 12/15] thermal/core: Register with the trip points

As we added the thermal trip points structure in the thermal zone,
let's extend the thermal zone register function to have the thermal
trip structures as a parameter and store it in the 'trips' field of
the thermal zone structure.

Cc: Alexandre Bailon <abailon@...libre.com>
Cc: Kevin Hilman <khilman@...libre.com>
Cc; Eduardo Valentin <eduval@...zon.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@...exp.org>
---
 drivers/thermal/thermal_core.c | 17 +++++++++++++++--
 include/linux/thermal.h        |  6 ++++++
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
index 79cb9e0a7229..822f97bc471f 100644
--- a/drivers/thermal/thermal_core.c
+++ b/drivers/thermal/thermal_core.c
@@ -1166,8 +1166,9 @@ static void thermal_set_delay_jiffies(unsigned long *delay_jiffies, int delay_ms
 }
 
 /**
- * thermal_zone_register() - register a new thermal zone device
+ * thermal_zone_register_with_trips() - register a new thermal zone device
  * @type:	the thermal zone device type
+ * @trips:	a pointer to an array of thermal trips
  * @ntrips:	the number of trip points the thermal zone support
  * @mask:	a bit string indicating the writeablility of trip points
  * @devdata:	private device data
@@ -1190,7 +1191,8 @@ static void thermal_set_delay_jiffies(unsigned long *delay_jiffies, int delay_ms
  * IS_ERR*() helpers.
  */
 struct thermal_zone *
-thermal_zone_register(const char *type, int ntrips, int mask,
+thermal_zone_register_with_trips(const char *type,
+				 struct thermal_trip *trips, int ntrips, int mask,
 			     void *devdata, struct thermal_sensor_ops *ops,
 			     struct thermal_zone_params *tzp, int passive_delay,
 			     int polling_delay)
@@ -1255,6 +1257,7 @@ thermal_zone_register(const char *type, int ntrips, int mask,
 	tz->device.class = &thermal_class;
 	tz->devdata = devdata;
 	tz->ntrips = ntrips;
+	tz->trips = trips;
 
 	thermal_set_delay_jiffies(&tz->passive_delay_jiffies, passive_delay);
 	thermal_set_delay_jiffies(&tz->polling_delay_jiffies, polling_delay);
@@ -1332,6 +1335,16 @@ thermal_zone_register(const char *type, int ntrips, int mask,
 }
 EXPORT_SYMBOL_GPL(thermal_zone_register);
 
+struct thermal_zone *thermal_zone_register(const char *type, int ntrips, int mask,
+					   void *devdata, struct thermal_sensor_ops *ops,
+					   struct thermal_zone_params *tzp, int passive_delay,
+					   int polling_delay)
+{
+	return thermal_zone_register_with_trips(type, NULL, ntrips, mask,
+						devdata, ops, tzp,
+						passive_delay, polling_delay);
+}
+
 /**
  * thermal_zone_unregister - removes the registered thermal zone device
  * @tz: the thermal zone device to remove
diff --git a/include/linux/thermal.h b/include/linux/thermal.h
index 9c75afff517a..0c3b549601d3 100644
--- a/include/linux/thermal.h
+++ b/include/linux/thermal.h
@@ -381,6 +381,12 @@ void devm_thermal_zone_of_sensor_unregister(struct device *dev,
 struct thermal_zone *thermal_zone_register(const char *, int, int,
 		void *, struct thermal_sensor_ops *,
 		struct thermal_zone_params *, int, int);
+
+struct thermal_zone *
+thermal_zone_register_with_trips(const char *, struct thermal_trip *, int, int,
+				 void *, struct thermal_sensor_ops *,
+				 struct thermal_zone_params *, int, int);
+
 void thermal_zone_unregister(struct thermal_zone *);
 
 int thermal_zone_bind_cooling_device(struct thermal_zone *, int,
-- 
2.25.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ