summaryrefslogtreecommitdiffstats
path: root/drivers/thermal
diff options
context:
space:
mode:
authorJavi Merino <javi.merino@arm.com>2015-09-14 14:23:54 +0100
committerZhang Rui <rui.zhang@intel.com>2015-09-20 15:37:16 +0800
commit97584d1838b7e2545c3b10aacef3327fcaa9531b (patch)
treec32bf60af310ccdf0f4a49d4235e6f49bd2a4512 /drivers/thermal
parentf5cbb182586ea36c6ad0e90e3534d18a5e9af094 (diff)
downloadlinux-97584d1838b7e2545c3b10aacef3327fcaa9531b.tar.gz
linux-97584d1838b7e2545c3b10aacef3327fcaa9531b.tar.bz2
linux-97584d1838b7e2545c3b10aacef3327fcaa9531b.zip
thermal: power_allocator: exit early if there are no cooling devices
Don't waste cycles in the power allocator governor's throttle function if there are no cooling devices and exit early. This commit doesn't change any functionality, but should provide better performance for the odd case of a thermal zone with trip points but without cooling devices. Cc: Zhang Rui <rui.zhang@intel.com> Cc: Eduardo Valentin <edubezval@gmail.com> Reviewed-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Javi Merino <javi.merino@arm.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
Diffstat (limited to 'drivers/thermal')
-rw-r--r--drivers/thermal/power_allocator.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/thermal/power_allocator.c b/drivers/thermal/power_allocator.c
index 718363f5be40..7ff96270c933 100644
--- a/drivers/thermal/power_allocator.c
+++ b/drivers/thermal/power_allocator.c
@@ -346,6 +346,11 @@ static int allocate_power(struct thermal_zone_device *tz,
}
}
+ if (!num_actors) {
+ ret = -ENODEV;
+ goto unlock;
+ }
+
/*
* We need to allocate five arrays of the same size:
* req_power, max_power, granted_power, extra_actor_power and