Skip to content

Commit

Permalink
thermal/core: Move set_trip_temp ops to the sysfs code
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Daniel Lezcano authored and dlezcano committed Aug 17, 2022
1 parent 7ea98f7 commit 9326167
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 24 deletions.
23 changes: 0 additions & 23 deletions drivers/thermal/thermal_of.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down Expand Up @@ -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,
Expand Down
5 changes: 4 additions & 1 deletion drivers/thermal/thermal_sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand Down

0 comments on commit 9326167

Please sign in to comment.