Commit 96b8b436 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

thermal: core: Rework and rename __for_each_thermal_trip()



Rework the currently unused __for_each_thermal_trip() to pass original
pointers to struct thermal_trip objects to the callback, so it can be
used for updating trip data (e.g. temperatures), rename it to
for_each_thermal_trip() and make it available to modular drivers.

Suggested-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 68b77785
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -54,10 +54,6 @@ int for_each_thermal_cooling_device(int (*cb)(struct thermal_cooling_device *,
int for_each_thermal_governor(int (*cb)(struct thermal_governor *, void *),
			      void *thermal_governor);

int __for_each_thermal_trip(struct thermal_zone_device *,
			    int (*cb)(struct thermal_trip *, void *),
			    void *);

struct thermal_zone_device *thermal_zone_get_by_id(int id);

struct thermal_attr {
+8 −10
Original line number Diff line number Diff line
@@ -9,28 +9,26 @@
 */
#include "thermal_core.h"

int __for_each_thermal_trip(struct thermal_zone_device *tz,
int for_each_thermal_trip(struct thermal_zone_device *tz,
			  int (*cb)(struct thermal_trip *, void *),
			  void *data)
{
	int i, ret;
	struct thermal_trip trip;

	lockdep_assert_held(&tz->lock);

	for (i = 0; i < tz->num_trips; i++) {
	if (!tz->trips)
		return -ENODATA;

		ret = __thermal_zone_get_trip(tz, i, &trip);
		if (ret)
			return ret;

		ret = cb(&trip, data);
	for (i = 0; i < tz->num_trips; i++) {
		ret = cb(&tz->trips[i], data);
		if (ret)
			return ret;
	}

	return 0;
}
EXPORT_SYMBOL_GPL(for_each_thermal_trip);

int thermal_zone_get_num_trips(struct thermal_zone_device *tz)
{
+3 −0
Original line number Diff line number Diff line
@@ -289,6 +289,9 @@ int thermal_zone_get_trip(struct thermal_zone_device *tz, int trip_id,
int thermal_zone_set_trip(struct thermal_zone_device *tz, int trip_id,
			  const struct thermal_trip *trip);

int for_each_thermal_trip(struct thermal_zone_device *tz,
			  int (*cb)(struct thermal_trip *, void *),
			  void *data);
int thermal_zone_get_num_trips(struct thermal_zone_device *tz);

int thermal_zone_get_crit_temp(struct thermal_zone_device *tz, int *temp);