soc: samsung: exynos-asv: Update Energy Model after adjusting voltage
When the voltage for OPPs is adjusted there is a need to also update Energy Model framework. The EM data contains power values which depend on voltage values. The EM structure is used for thermal (IPA governor) and in scheduler task placement (EAS) so it should reflect the real HW model as best as possible to operate properly. Based on data on Exynos5422 ASV tables the maximum power difference might be ~29%. An Odroid-XU4 (with a random sample SoC in this chip lottery) showed power difference for some OPPs ~20%. Therefore, it's worth to update the EM. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com> Signed-off-by: Lukasz Luba <lukasz.luba@arm.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
cf61d53b02
commit
a5bb5e0877
@ -11,6 +11,7 @@
|
||||
|
||||
#include <linux/cpu.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/energy_model.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/pm_opp.h>
|
||||
@ -97,9 +98,16 @@ static int exynos_asv_update_opps(struct exynos_asv *asv)
|
||||
last_opp_table = opp_table;
|
||||
|
||||
ret = exynos_asv_update_cpu_opps(asv, cpu);
|
||||
if (ret < 0)
|
||||
if (!ret) {
|
||||
/*
|
||||
* Update EM power values since OPP
|
||||
* voltage values may have changed.
|
||||
*/
|
||||
em_dev_update_chip_binning(cpu);
|
||||
} else {
|
||||
dev_err(asv->dev, "Couldn't udate OPPs for cpu%d\n",
|
||||
cpuid);
|
||||
}
|
||||
}
|
||||
|
||||
dev_pm_opp_put_opp_table(opp_table);
|
||||
|
Loading…
Reference in New Issue
Block a user