summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRick Yiu <rickyiu@google.com>2023-07-06 15:11:09 +0000
committerRick Yiu <rickyiu@google.com>2023-07-14 03:17:31 +0000
commitaba0624476bdf2937d93aef07611aecfa031c826 (patch)
tree83b881884ef63499f56f8278deef1cace960c3e8
parent2581cd236713f4598bc5e9b972c17ac52acfa7cd (diff)
downloadgs-aba0624476bdf2937d93aef07611aecfa031c826.tar.gz
vh: pixel_em: Scale cost value of energy table
By scaling cost value of energy table, the resutls of energy computation are more differentiable for each candidate. This also aligns upstream implementation. Bug: 290863200 Change-Id: If1de148ed742a4c3af8c54e9182e8950cead05c9 Signed-off-by: Rick Yiu <rickyiu@google.com>
-rw-r--r--drivers/soc/google/vh/kernel/pixel_em/pixel_em.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/soc/google/vh/kernel/pixel_em/pixel_em.c b/drivers/soc/google/vh/kernel/pixel_em/pixel_em.c
index a1a128f5a..cfb382065 100644
--- a/drivers/soc/google/vh/kernel/pixel_em/pixel_em.c
+++ b/drivers/soc/google/vh/kernel/pixel_em/pixel_em.c
@@ -204,7 +204,8 @@ static bool update_em_entry(struct pixel_em_profile *profile,
if (cluster->opps[opp_id].freq == freq) {
cluster->opps[opp_id].capacity = cap;
cluster->opps[opp_id].power = power;
- cluster->opps[opp_id].cost = (max_freq * power) / freq;
+ cluster->opps[opp_id].cost = (max_freq * em_scale_power(power))
+ / freq;
return true;
}
}
@@ -237,7 +238,8 @@ static bool update_idle_em_entry(struct pixel_idle_em *idle_em,
for (opp_id = 0; opp_id < cluster->num_opps; opp_id++) {
if (cluster->opps[opp_id].freq == freq) {
cluster->opps[opp_id].power = power;
- cluster->opps[opp_id].cost = (max_freq * power) / freq;
+ cluster->opps[opp_id].cost = (max_freq * em_scale_power(power))
+ / freq;
return true;
}
}