mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-28 16:56:26 +00:00
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:
parent
6d5537d40c
commit
43bac1026f
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user