[<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