thermal: trip: Split thermal_zone_device_set_mode()
BugLink: https://bugs.launchpad.net/bugs/2083196 [ Upstream commit e5f98896efb3b6350cb6f1c241394966dcbcf240 ] Pull a wrapper around thermal zone .change_mode() callback out of thermal_zone_device_set_mode() because it will be used elsewhere subsequently. No intentional functional impact. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Link: https://patch.msgid.link/2206793.irdbgypaU6@rjwysocki.net Stable-dep-of: f7c1b0e4ae47 ("thermal: core: Back off when polling thermal zones on errors") Signed-off-by: Sasha Levin <sashal@kernel.org> [portias: Change tz->ops.change_mode to tz->ops->change_mode] Signed-off-by: Portia Stephens <portia.stephens@canonical.com> Signed-off-by: Roxana Nicolescu <roxana.nicolescu@canonical.com>
This commit is contained in:
committed by
Mehmet Basaran
parent
bfbf9c0335
commit
f5c7e54713
@@ -271,6 +271,22 @@ static int __init thermal_register_governors(void)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int __thermal_zone_device_set_mode(struct thermal_zone_device *tz,
|
||||
enum thermal_device_mode mode)
|
||||
{
|
||||
if (tz->ops->change_mode) {
|
||||
int ret;
|
||||
|
||||
ret = tz->ops->change_mode(tz, mode);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
tz->mode = mode;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Zone update section: main control loop applied to each zone while monitoring
|
||||
*
|
||||
@@ -483,7 +499,7 @@ void __thermal_zone_device_update(struct thermal_zone_device *tz,
|
||||
static int thermal_zone_device_set_mode(struct thermal_zone_device *tz,
|
||||
enum thermal_device_mode mode)
|
||||
{
|
||||
int ret = 0;
|
||||
int ret;
|
||||
|
||||
mutex_lock(&tz->lock);
|
||||
|
||||
@@ -491,14 +507,15 @@ static int thermal_zone_device_set_mode(struct thermal_zone_device *tz,
|
||||
if (mode == tz->mode) {
|
||||
mutex_unlock(&tz->lock);
|
||||
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (tz->ops->change_mode)
|
||||
ret = tz->ops->change_mode(tz, mode);
|
||||
ret = __thermal_zone_device_set_mode(tz, mode);
|
||||
if (ret) {
|
||||
mutex_unlock(&tz->lock);
|
||||
|
||||
if (!ret)
|
||||
tz->mode = mode;
|
||||
return ret;
|
||||
}
|
||||
|
||||
__thermal_zone_device_update(tz, THERMAL_EVENT_UNSPECIFIED);
|
||||
|
||||
@@ -509,7 +526,7 @@ static int thermal_zone_device_set_mode(struct thermal_zone_device *tz,
|
||||
else
|
||||
thermal_notify_tz_disable(tz);
|
||||
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int thermal_zone_device_enable(struct thermal_zone_device *tz)
|
||||
|
||||
Reference in New Issue
Block a user