thermal/core: Move set_trip_temp ops to the sysfs code
authorDaniel Lezcano <daniel.lezcano@linexp.org>
Thu, 4 Aug 2022 22:43:48 +0000 (00:43 +0200)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Wed, 17 Aug 2022 12:09:39 +0000 (14:09 +0200)
Given the trip points can be set in the thermal zone structure, there
is no need of a specific OF function to do that. Move the code in the
place where it is generic, in the sysfs set_trip_temp storing
function.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linexp.org>
Link: https://lore.kernel.org/r/20220804224349.1926752-33-daniel.lezcano@linexp.org
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
drivers/thermal/thermal_of.c
drivers/thermal/thermal_sysfs.c

index a17087c9295da4060f25a6b54e009a391ec14bc9..1dd6b71bdbddb57aa638b8488f530bd19a83e2bd 100644 (file)
@@ -288,28 +288,6 @@ static int of_thermal_get_trip_temp(struct thermal_zone_device *tz, int trip,
        return 0;
 }
 
-static int of_thermal_set_trip_temp(struct thermal_zone_device *tz, int trip,
-                                   int temp)
-{
-       struct __thermal_zone *data = tz->devdata;
-
-       if (trip >= tz->num_trips || trip < 0)
-               return -EDOM;
-
-       if (data->ops && data->ops->set_trip_temp) {
-               int ret;
-
-               ret = data->ops->set_trip_temp(data->sensor_data, trip, temp);
-               if (ret)
-                       return ret;
-       }
-
-       /* thermal framework should take care of data->mask & (1 << trip) */
-       tz->trips[trip].temperature = temp;
-
-       return 0;
-}
-
 static int of_thermal_get_trip_hyst(struct thermal_zone_device *tz, int trip,
                                    int *hyst)
 {
@@ -350,7 +328,6 @@ static int of_thermal_get_crit_temp(struct thermal_zone_device *tz,
 static struct thermal_zone_device_ops of_thermal_ops = {
        .get_trip_type = of_thermal_get_trip_type,
        .get_trip_temp = of_thermal_get_trip_temp,
-       .set_trip_temp = of_thermal_set_trip_temp,
        .get_trip_hyst = of_thermal_get_trip_hyst,
        .set_trip_hyst = of_thermal_set_trip_hyst,
        .get_crit_temp = of_thermal_get_crit_temp,
index 3a8d6e747c255dd639100762b2f8c5ecdcd3650b..0f8201060c38ada351f1d3939fc2472e3e955b13 100644 (file)
@@ -115,7 +115,7 @@ trip_point_temp_store(struct device *dev, struct device_attribute *attr,
        int temperature, hyst = 0;
        enum thermal_trip_type type;
 
-       if (!tz->ops->set_trip_temp)
+       if (!tz->ops->set_trip_temp && !tz->trips)
                return -EPERM;
 
        if (sscanf(attr->attr.name, "trip_point_%d_temp", &trip) != 1)
@@ -128,6 +128,9 @@ trip_point_temp_store(struct device *dev, struct device_attribute *attr,
        if (ret)
                return ret;
 
+       if (tz->trips)
+               tz->trips[trip].temperature = temperature;
+
        if (tz->ops->get_trip_hyst) {
                ret = tz->ops->get_trip_hyst(tz, trip, &hyst);
                if (ret)