diff options
author | Rick Yiu <rickyiu@google.com> | 2023-07-06 15:11:09 +0000 |
---|---|---|
committer | Rick Yiu <rickyiu@google.com> | 2023-07-14 03:17:31 +0000 |
commit | aba0624476bdf2937d93aef07611aecfa031c826 (patch) | |
tree | 83b881884ef63499f56f8278deef1cace960c3e8 | |
parent | 2581cd236713f4598bc5e9b972c17ac52acfa7cd (diff) | |
download | gs-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.c | 6 |
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; } } |