thermal: power_allocator: round the division when divvying up power
authorJavi Merino <javi.merino@arm.com>
Sat, 2 May 2015 09:15:24 +0000 (10:15 +0100)
committerEduardo Valentin <edubezval@gmail.com>
Tue, 12 May 2015 01:57:44 +0000 (18:57 -0700)
commitea54cac9065112724f3432e0574ba3e346fd695d
tree1d8fab906d5d50ee2ebf374ac480b1559fdfd077
parent488c7455d74ce0c354ea833c7fbbb6ba0a2330e9
thermal: power_allocator: round the division when divvying up power

In situations where there is an uneven number of cooling devices, the
division of power among them can lead to a milliwatt being dropped on
the floor due to rounding errors.  This doesn't sound like a lot, but
some devices only grant the lowest cooling device state for their
maximum power.  So for instance, if the granted_power is the maximum
power and all devices are getting their maximum power, one would get
max_power - 1, making it choose cooling device state 1, instead of 0.

Round the division to make the calculation more accurate.

Cc: Zhang Rui <rui.zhang@intel.com>
Cc: Eduardo Valentin <edubezval@gmail.com>
Signed-off-by: Javi Merino <javi.merino@arm.com>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
drivers/thermal/power_allocator.c