From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: daniel.lezcano@linaro.org, rafael@kernel.org
Cc: rui.zhang@intel.com, amitk@kernel.org,
linux-pm@vger.kernel.org (open list:THERMAL),
linux-kernel@vger.kernel.org (open list)
Subject: [PATCH v1 09/11] thermal/core: Add a linked device parameter
Date: Tue, 7 Mar 2023 14:37:33 +0100 [thread overview]
Message-ID: <20230307133735.90772-10-daniel.lezcano@linaro.org> (raw)
In-Reply-To: <20230307133735.90772-1-daniel.lezcano@linaro.org>
Some drivers want to create a link from the thermal zone to the device
sysfs entry and vice versa. That is the case of the APCI driver.
Having a backpointer from the device to the thermal zone sounds akward
as we can have the same device instantiating multiple thermal zones so
there will be a conflict while creating the second link with the same
name. Moreover, the userspace has enough information to build the
dependency from the thermal zone device link without having this cyclic
link from the device to thermal zone.
Anyway, everything in its time.
This change allows to create a these cyclic links tz <-> device as
ACPI does and will allow to remove the code in the ACPI driver.
The limitation of this change is there can be only a 1:1 relationship
between the device and the thermal zone, otherwise the 'thermal_zone'
link name will conflict with the previous link with the same name.
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
drivers/thermal/thermal_core.c | 16 ++++++++++++++++
include/linux/thermal.h | 7 +++++++
2 files changed, 23 insertions(+)
diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
index cec72c6673a5..ca91189bc441 100644
--- a/drivers/thermal/thermal_core.c
+++ b/drivers/thermal/thermal_core.c
@@ -1340,6 +1340,18 @@ thermal_zone_device_register_with_trips(const char *type, struct thermal_trip *t
list_add_tail(&tz->node, &thermal_tz_list);
mutex_unlock(&thermal_list_lock);
+ if (tzp && tzp->linked_dev) {
+ result = sysfs_create_link(&tzp->linked_dev->kobj,
+ &tz->device.kobj, "thermal_zone");
+ if (result)
+ goto out_list_del;
+
+ result = sysfs_create_link(&tz->device.kobj,
+ &tzp->linked_dev->kobj, "device");
+ if (result)
+ goto out_del_link;
+ }
+
/* Bind cooling devices for this zone */
bind_tz(tz);
@@ -1354,6 +1366,10 @@ thermal_zone_device_register_with_trips(const char *type, struct thermal_trip *t
return tz;
+out_del_link:
+ sysfs_remove_link(&tz->device.kobj, "thermal_zone");
+out_list_del:
+ list_del(&tz->node);
unregister:
device_del(&tz->device);
release_device:
diff --git a/include/linux/thermal.h b/include/linux/thermal.h
index 8cdf94cdc5ff..f60d7edf1e5d 100644
--- a/include/linux/thermal.h
+++ b/include/linux/thermal.h
@@ -256,6 +256,13 @@ struct thermal_zone_params {
int num_tbps; /* Number of tbp entries */
struct thermal_bind_params *tbp;
+ /*
+ * @linked_dev: Add a cross link from the device to the
+ * thermal zone and vice versa. They will be named
+ * respectively 'device' and 'thermal_zone'
+ */
+ struct device *linked_dev;
+
/*
* Sustainable power (heat) that this thermal zone can dissipate in
* mW
--
2.34.1
next prev parent reply other threads:[~2023-03-07 13:38 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20230307133735.90772-1-daniel.lezcano@linaro.org>
2023-03-07 13:37 ` [PATCH v1 01/11] thermal/core: Relocate the traces definition in thermal directory Daniel Lezcano
2023-03-07 15:51 ` Steven Rostedt
2023-03-07 13:37 ` [PATCH v1 02/11] thermal/drivers/intel_pch_thermal: Use thermal driver device to write a trace Daniel Lezcano
2023-03-07 13:37 ` [PATCH v1 03/11] thermal/drivers/intel_menlow: Remove add_one_attribute Daniel Lezcano
2023-03-13 10:55 ` Daniel Lezcano
2023-03-13 12:26 ` Rafael J. Wysocki
2023-03-13 12:35 ` Daniel Lezcano
2023-03-17 18:18 ` Rafael J. Wysocki
2023-04-04 18:12 ` Daniel Lezcano
2023-04-04 18:14 ` Rafael J. Wysocki
2023-03-07 13:37 ` [PATCH v1 04/11] thermal/drivers/db8500: Use driver dev instead of tz->device Daniel Lezcano
2023-03-07 20:52 ` Linus Walleij
2023-03-07 13:37 ` [PATCH v1 05/11] thermal/drivers/stm: Don't set no_hwmon to false Daniel Lezcano
2023-03-07 13:37 ` [PATCH v1 06/11] thermal/drivers/ti: Use fixed update interval Daniel Lezcano
2023-03-07 13:47 ` J, KEERTHY
2023-03-07 15:30 ` Gole, Dhruva
2023-03-07 13:37 ` [PATCH v1 07/11] thermal/drivers/bcm2835: Remove buggy call to thermal_of_zone_unregister Daniel Lezcano
2023-03-07 13:37 ` [PATCH v1 08/11] thermal/of: Unexport unused OF functions Daniel Lezcano
2023-03-07 13:37 ` Daniel Lezcano [this message]
2023-03-27 16:16 ` [PATCH v1 09/11] thermal/core: Add a linked device parameter Rafael J. Wysocki
2023-04-04 19:01 ` Daniel Lezcano
2023-04-14 18:43 ` Rafael J. Wysocki
2023-03-07 13:37 ` [PATCH v1 10/11] thermal/core: Alloc-copy-free the thermal zone parameters structure Daniel Lezcano
2023-03-15 12:54 ` kernel test robot
2023-03-18 9:07 ` Dan Carpenter
2023-03-07 13:37 ` [PATCH v1 11/11] thermal/acpi: Use the thermal zone parameter to specify the device link Daniel Lezcano
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=20230307133735.90772-10-daniel.lezcano@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=amitk@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=rafael@kernel.org \
--cc=rui.zhang@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®