thermal: core: Relocate thermal zone initialization routine

Move thermal_zone_device_init() along with thermal_zone_device_check()
closer to the callers of the former, where they fit better together.

No functional impact.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
Link: https://patch.msgid.link/1906685.CQOukoFCf9@rjwysocki.net
This commit is contained in:
Rafael J. Wysocki 2024-10-16 13:36:03 +02:00
parent 6d5537d40c
commit 43bac1026f

View File

@ -429,14 +429,6 @@ static void move_trip_to_sorted_list(struct thermal_trip_desc *td,
list_add(&td->list_node, list);
}
static void thermal_zone_device_check(struct work_struct *work)
{
struct thermal_zone_device *tz = container_of(work, struct
thermal_zone_device,
poll_queue.work);
thermal_zone_device_update(tz, THERMAL_EVENT_UNSPECIFIED);
}
static void move_to_trips_high(struct thermal_zone_device *tz,
struct thermal_trip_desc *td)
{
@ -458,39 +450,6 @@ static void move_to_trips_invalid(struct thermal_zone_device *tz,
list_move(&td->list_node, &tz->trips_invalid);
}
static void thermal_zone_device_init(struct thermal_zone_device *tz)
{
struct thermal_trip_desc *td, *next;
INIT_DELAYED_WORK(&tz->poll_queue, thermal_zone_device_check);
tz->temperature = THERMAL_TEMP_INIT;
tz->passive = 0;
tz->prev_low_trip = -INT_MAX;
tz->prev_high_trip = INT_MAX;
for_each_trip_desc(tz, td) {
struct thermal_instance *instance;
list_for_each_entry(instance, &td->thermal_instances, trip_node)
instance->initialized = false;
}
/*
* At this point, all valid trips need to be moved to trips_high so that
* mitigation can be started if the zone temperature is above them.
*/
list_for_each_entry_safe(td, next, &tz->trips_invalid, list_node) {
if (td->trip.temperature != THERMAL_TEMP_INVALID)
move_to_trips_high(tz, td);
}
/* The trips_reached list may not be empty during system resume. */
list_for_each_entry_safe(td, next, &tz->trips_reached, list_node) {
if (td->trip.temperature == THERMAL_TEMP_INVALID)
move_to_trips_invalid(tz, td);
else
move_to_trips_high(tz, td);
}
}
static void thermal_governor_trip_crossed(struct thermal_governor *governor,
struct thermal_zone_device *tz,
const struct thermal_trip *trip,
@ -1426,6 +1385,47 @@ int thermal_zone_get_crit_temp(struct thermal_zone_device *tz, int *temp)
}
EXPORT_SYMBOL_GPL(thermal_zone_get_crit_temp);
static void thermal_zone_device_check(struct work_struct *work)
{
struct thermal_zone_device *tz = container_of(work, struct
thermal_zone_device,
poll_queue.work);
thermal_zone_device_update(tz, THERMAL_EVENT_UNSPECIFIED);
}
static void thermal_zone_device_init(struct thermal_zone_device *tz)
{
struct thermal_trip_desc *td, *next;
INIT_DELAYED_WORK(&tz->poll_queue, thermal_zone_device_check);
tz->temperature = THERMAL_TEMP_INIT;
tz->passive = 0;
tz->prev_low_trip = -INT_MAX;
tz->prev_high_trip = INT_MAX;
for_each_trip_desc(tz, td) {
struct thermal_instance *instance;
list_for_each_entry(instance, &td->thermal_instances, trip_node)
instance->initialized = false;
}
/*
* At this point, all valid trips need to be moved to trips_high so that
* mitigation can be started if the zone temperature is above them.
*/
list_for_each_entry_safe(td, next, &tz->trips_invalid, list_node) {
if (td->trip.temperature != THERMAL_TEMP_INVALID)
move_to_trips_high(tz, td);
}
/* The trips_reached list may not be empty during system resume. */
list_for_each_entry_safe(td, next, &tz->trips_reached, list_node) {
if (td->trip.temperature == THERMAL_TEMP_INVALID)
move_to_trips_invalid(tz, td);
else
move_to_trips_high(tz, td);
}
}
static int thermal_zone_init_governor(struct thermal_zone_device *tz)
{
struct thermal_governor *governor;