OSDN Git Service

thermal/drivers/of-thermal: Make of_thermal_destroy_zones static
authorDaniel Lezcano <daniel.lezcano@linaro.org>
Thu, 19 Dec 2019 22:21:52 +0000 (23:21 +0100)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Mon, 27 Jan 2020 09:24:32 +0000 (10:24 +0100)
The function of_thermal_destroy_zones() is only used internally by the
of_parse_thermal_zones() for rollbacking in case of error.

Make it static and tag it as an __init function.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20191219222154.16100-1-daniel.lezcano@linaro.org
drivers/thermal/of-thermal.c
drivers/thermal/thermal_core.h

index 5235aed..bb6c036 100644 (file)
@@ -999,6 +999,38 @@ static inline void of_thermal_free_zone(struct __thermal_zone *tz)
 }
 
 /**
+ * of_thermal_destroy_zones - remove all zones parsed and allocated resources
+ *
+ * Finds all zones parsed and added to the thermal framework and remove them
+ * from the system, together with their resources.
+ *
+ */
+static __init void of_thermal_destroy_zones(void)
+{
+       struct device_node *np, *child;
+
+       np = of_find_node_by_name(NULL, "thermal-zones");
+       if (!np) {
+               pr_debug("unable to find thermal zones\n");
+               return;
+       }
+
+       for_each_available_child_of_node(np, child) {
+               struct thermal_zone_device *zone;
+
+               zone = thermal_zone_get_zone_by_name(child->name);
+               if (IS_ERR(zone))
+                       continue;
+
+               thermal_zone_device_unregister(zone);
+               kfree(zone->tzp);
+               kfree(zone->ops);
+               of_thermal_free_zone(zone->devdata);
+       }
+       of_node_put(np);
+}
+
+/**
  * of_parse_thermal_zones - parse device tree thermal data
  *
  * Initialization function that can be called by machine initialization
@@ -1087,35 +1119,3 @@ exit_free:
 
        return -ENOMEM;
 }
-
-/**
- * of_thermal_destroy_zones - remove all zones parsed and allocated resources
- *
- * Finds all zones parsed and added to the thermal framework and remove them
- * from the system, together with their resources.
- *
- */
-void of_thermal_destroy_zones(void)
-{
-       struct device_node *np, *child;
-
-       np = of_find_node_by_name(NULL, "thermal-zones");
-       if (!np) {
-               pr_debug("unable to find thermal zones\n");
-               return;
-       }
-
-       for_each_available_child_of_node(np, child) {
-               struct thermal_zone_device *zone;
-
-               zone = thermal_zone_get_zone_by_name(child->name);
-               if (IS_ERR(zone))
-                       continue;
-
-               thermal_zone_device_unregister(zone);
-               kfree(zone->tzp);
-               kfree(zone->ops);
-               of_thermal_free_zone(zone->devdata);
-       }
-       of_node_put(np);
-}
index 207b0cd..a9bf00e 100644 (file)
@@ -92,14 +92,12 @@ thermal_cooling_device_stats_update(struct thermal_cooling_device *cdev,
 /* device tree support */
 #ifdef CONFIG_THERMAL_OF
 int of_parse_thermal_zones(void);
-void of_thermal_destroy_zones(void);
 int of_thermal_get_ntrips(struct thermal_zone_device *);
 bool of_thermal_is_trip_valid(struct thermal_zone_device *, int);
 const struct thermal_trip *
 of_thermal_get_trip_points(struct thermal_zone_device *);
 #else
 static inline int of_parse_thermal_zones(void) { return 0; }
-static inline void of_thermal_destroy_zones(void) { }
 static inline int of_thermal_get_ntrips(struct thermal_zone_device *tz)
 {
        return 0;