Patch "thermal/of: support thermal zones w/o trips subnode" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    thermal/of: support thermal zones w/o trips subnode

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     thermal-of-support-thermal-zones-w-o-trips-subnode.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 0e6e6eddab03d3b4802a626b65dd36fcc1453f4f
Author: Icenowy Zheng <uwu@xxxxxxxxxx>
Date:   Fri Oct 18 15:31:36 2024 +0800

    thermal/of: support thermal zones w/o trips subnode
    
    [ Upstream commit 725f31f300e300a9d94976bd8f1db6e746f95f63 ]
    
    Although the current device tree binding of thermal zones require the
    trips subnode, the binding in kernel v5.15 does not require it, and many
    device trees shipped with the kernel, for example,
    allwinner/sun50i-a64.dtsi and mediatek/mt8183-kukui.dtsi in ARM64, still
    comply to the old binding and contain no trips subnode.
    
    Allow the code to successfully register thermal zones w/o trips subnode
    for DT binding compatibility now.
    
    Furtherly, the inconsistency between DTs and bindings should be resolved
    by either adding empty trips subnode or dropping the trips subnode
    requirement.
    
    Fixes: d0c75fa2c17f ("thermal/of: Initialize trip points separately")
    Signed-off-by: Icenowy Zheng <uwu@xxxxxxxxxx>
    [wenst@xxxxxxxxxxxx: Reworked logic and kernel log messages]
    Signed-off-by: Chen-Yu Tsai <wenst@xxxxxxxxxxxx>
    Reviewed-by: Rafael J. Wysocki <rafael@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20241018073139.1268995-1-wenst@xxxxxxxxxxxx
    Signed-off-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c
index d8dfcd49695d3..4e5f86c214561 100644
--- a/drivers/thermal/thermal_of.c
+++ b/drivers/thermal/thermal_of.c
@@ -126,18 +126,15 @@ static struct thermal_trip *thermal_of_trips_init(struct device_node *np, int *n
 	struct device_node *trips;
 	int ret, count;
 
+	*ntrips = 0;
+	
 	trips = of_get_child_by_name(np, "trips");
-	if (!trips) {
-		pr_err("Failed to find 'trips' node\n");
-		return ERR_PTR(-EINVAL);
-	}
+	if (!trips)
+		return NULL;
 
 	count = of_get_child_count(trips);
-	if (!count) {
-		pr_err("No trip point defined\n");
-		ret = -EINVAL;
-		goto out_of_node_put;
-	}
+	if (!count)
+		return NULL;
 
 	tt = kzalloc(sizeof(*tt) * count, GFP_KERNEL);
 	if (!tt) {
@@ -160,7 +157,6 @@ static struct thermal_trip *thermal_of_trips_init(struct device_node *np, int *n
 
 out_kfree:
 	kfree(tt);
-	*ntrips = 0;
 out_of_node_put:
 	of_node_put(trips);
 
@@ -498,11 +494,14 @@ static struct thermal_zone_device *thermal_of_zone_register(struct device_node *
 
 	trips = thermal_of_trips_init(np, &ntrips);
 	if (IS_ERR(trips)) {
-		pr_err("Failed to find trip points for %pOFn id=%d\n", sensor, id);
+		pr_err("Failed to parse trip points for %pOFn id=%d\n", sensor, id);
 		ret = PTR_ERR(trips);
 		goto out_kfree_of_ops;
 	}
 
+	if (!trips)
+		pr_info("No trip points found for %pOFn id=%d\n", sensor, id);
+
 	ret = thermal_of_monitor_init(np, &delay, &pdelay);
 	if (ret) {
 		pr_err("Failed to initialize monitoring delays from %pOFn\n", np);




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux