Commit 0614755d authored by Daniel Lezcano's avatar Daniel Lezcano Committed by Daniel Lezcano

thermal/sysfs: Always expose hysteresis attributes

Instead of avoiding to expose the hysteresis attributes of a thermal
zone when its get_trip_hyst() operation is not defined, which is
confusing, expose them always and use the default
thermal_zone_get_trip() function returning 0 hysteresis when that
operation is not present.

The hysteresis of 0 is perfectly valid, so this change should not
introduce any backwards compatibility issues.
Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
Acked-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://lore.kernel.org/r/20221003092602.1323944-3-daniel.lezcano@linaro.org
parent 7c3d5c20
...@@ -477,7 +477,6 @@ static int create_trip_attrs(struct thermal_zone_device *tz, int mask) ...@@ -477,7 +477,6 @@ static int create_trip_attrs(struct thermal_zone_device *tz, int mask)
return -ENOMEM; return -ENOMEM;
} }
if (tz->ops->get_trip_hyst) {
tz->trip_hyst_attrs = kcalloc(tz->num_trips, tz->trip_hyst_attrs = kcalloc(tz->num_trips,
sizeof(*tz->trip_hyst_attrs), sizeof(*tz->trip_hyst_attrs),
GFP_KERNEL); GFP_KERNEL);
...@@ -486,13 +485,11 @@ static int create_trip_attrs(struct thermal_zone_device *tz, int mask) ...@@ -486,13 +485,11 @@ static int create_trip_attrs(struct thermal_zone_device *tz, int mask)
kfree(tz->trip_temp_attrs); kfree(tz->trip_temp_attrs);
return -ENOMEM; return -ENOMEM;
} }
}
attrs = kcalloc(tz->num_trips * 3 + 1, sizeof(*attrs), GFP_KERNEL); attrs = kcalloc(tz->num_trips * 3 + 1, sizeof(*attrs), GFP_KERNEL);
if (!attrs) { if (!attrs) {
kfree(tz->trip_type_attrs); kfree(tz->trip_type_attrs);
kfree(tz->trip_temp_attrs); kfree(tz->trip_temp_attrs);
if (tz->ops->get_trip_hyst)
kfree(tz->trip_hyst_attrs); kfree(tz->trip_hyst_attrs);
return -ENOMEM; return -ENOMEM;
} }
...@@ -526,9 +523,6 @@ static int create_trip_attrs(struct thermal_zone_device *tz, int mask) ...@@ -526,9 +523,6 @@ static int create_trip_attrs(struct thermal_zone_device *tz, int mask)
} }
attrs[indx + tz->num_trips] = &tz->trip_temp_attrs[indx].attr.attr; attrs[indx + tz->num_trips] = &tz->trip_temp_attrs[indx].attr.attr;
/* create Optional trip hyst attribute */
if (!tz->ops->get_trip_hyst)
continue;
snprintf(tz->trip_hyst_attrs[indx].name, THERMAL_NAME_LENGTH, snprintf(tz->trip_hyst_attrs[indx].name, THERMAL_NAME_LENGTH,
"trip_point_%d_hyst", indx); "trip_point_%d_hyst", indx);
...@@ -565,7 +559,6 @@ static void destroy_trip_attrs(struct thermal_zone_device *tz) ...@@ -565,7 +559,6 @@ static void destroy_trip_attrs(struct thermal_zone_device *tz)
kfree(tz->trip_type_attrs); kfree(tz->trip_type_attrs);
kfree(tz->trip_temp_attrs); kfree(tz->trip_temp_attrs);
if (tz->ops->get_trip_hyst)
kfree(tz->trip_hyst_attrs); kfree(tz->trip_hyst_attrs);
kfree(tz->trips_attribute_group.attrs); kfree(tz->trips_attribute_group.attrs);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment