Skip to content

Commit

Permalink
thermal/of: Use thermal trips stored in the thermal zone
Browse files Browse the repository at this point in the history
Now that we have the thermal trip stored in the thermal zone in a
generic way, we can rely on them and remove one indirection we found
in the thermal_of code and do one more step forward the removal of the
duplicated structures.

Cc: Alexandre Bailon <abailon@baylibre.com>
Cc: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linexp.org>
Link: https://lore.kernel.org/r/20220722200007.1839356-10-daniel.lezcano@linexp.org
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
  • Loading branch information
Daniel Lezcano authored and Daniel Lezcano committed Jul 28, 2022
1 parent fae11de commit 14ccb5e
Showing 1 changed file with 16 additions and 37 deletions.
53 changes: 16 additions & 37 deletions drivers/thermal/thermal_of.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,12 +118,7 @@ static int of_thermal_set_trips(struct thermal_zone_device *tz,
*/
int of_thermal_get_ntrips(struct thermal_zone_device *tz)
{
struct __thermal_zone *data = tz->devdata;

if (!data || IS_ERR(data))
return -ENODEV;

return data->ntrips;
return tz->num_trips;
}
EXPORT_SYMBOL_GPL(of_thermal_get_ntrips);

Expand All @@ -139,9 +134,7 @@ EXPORT_SYMBOL_GPL(of_thermal_get_ntrips);
*/
bool of_thermal_is_trip_valid(struct thermal_zone_device *tz, int trip)
{
struct __thermal_zone *data = tz->devdata;

if (!data || trip >= data->ntrips || trip < 0)
if (trip >= tz->num_trips || trip < 0)
return false;

return true;
Expand All @@ -161,12 +154,7 @@ EXPORT_SYMBOL_GPL(of_thermal_is_trip_valid);
const struct thermal_trip *
of_thermal_get_trip_points(struct thermal_zone_device *tz)
{
struct __thermal_zone *data = tz->devdata;

if (!data)
return NULL;

return data->trips;
return tz->trips;
}
EXPORT_SYMBOL_GPL(of_thermal_get_trip_points);

Expand Down Expand Up @@ -281,25 +269,21 @@ static int of_thermal_unbind(struct thermal_zone_device *thermal,
static int of_thermal_get_trip_type(struct thermal_zone_device *tz, int trip,
enum thermal_trip_type *type)
{
struct __thermal_zone *data = tz->devdata;

if (trip >= data->ntrips || trip < 0)
if (trip >= tz->num_trips || trip < 0)
return -EDOM;

*type = data->trips[trip].type;
*type = tz->trips[trip].type;

return 0;
}

static int of_thermal_get_trip_temp(struct thermal_zone_device *tz, int trip,
int *temp)
{
struct __thermal_zone *data = tz->devdata;

if (trip >= data->ntrips || trip < 0)
if (trip >= tz->num_trips || trip < 0)
return -EDOM;

*temp = data->trips[trip].temperature;
*temp = tz->trips[trip].temperature;

return 0;
}
Expand All @@ -309,7 +293,7 @@ static int of_thermal_set_trip_temp(struct thermal_zone_device *tz, int trip,
{
struct __thermal_zone *data = tz->devdata;

if (trip >= data->ntrips || trip < 0)
if (trip >= tz->num_trips || trip < 0)
return -EDOM;

if (data->ops && data->ops->set_trip_temp) {
Expand All @@ -321,47 +305,42 @@ static int of_thermal_set_trip_temp(struct thermal_zone_device *tz, int trip,
}

/* thermal framework should take care of data->mask & (1 << trip) */
data->trips[trip].temperature = temp;
tz->trips[trip].temperature = temp;

return 0;
}

static int of_thermal_get_trip_hyst(struct thermal_zone_device *tz, int trip,
int *hyst)
{
struct __thermal_zone *data = tz->devdata;

if (trip >= data->ntrips || trip < 0)
if (trip >= tz->num_trips || trip < 0)
return -EDOM;

*hyst = data->trips[trip].hysteresis;
*hyst = tz->trips[trip].hysteresis;

return 0;
}

static int of_thermal_set_trip_hyst(struct thermal_zone_device *tz, int trip,
int hyst)
{
struct __thermal_zone *data = tz->devdata;

if (trip >= data->ntrips || trip < 0)
if (trip >= tz->num_trips || trip < 0)
return -EDOM;

/* thermal framework should take care of data->mask & (1 << trip) */
data->trips[trip].hysteresis = hyst;
tz->trips[trip].hysteresis = hyst;

return 0;
}

static int of_thermal_get_crit_temp(struct thermal_zone_device *tz,
int *temp)
{
struct __thermal_zone *data = tz->devdata;
int i;

for (i = 0; i < data->ntrips; i++)
if (data->trips[i].type == THERMAL_TRIP_CRITICAL) {
*temp = data->trips[i].temperature;
for (i = 0; i < tz->num_trips; i++)
if (tz->trips[i].type == THERMAL_TRIP_CRITICAL) {
*temp = tz->trips[i].temperature;
return 0;
}

Expand Down

0 comments on commit 14ccb5e

Please sign in to comment.