Re: [RESEND][PATCH v2 4/4] soc: samsung: exynos-asv: Update Energy Model after adjusting voltage

From: Lukasz Luba
Date: Wed Mar 27 2024 - 10:48:46 EST




On 3/27/24 12:56, Dietmar Eggemann wrote:
On 26/03/2024 21:12, Lukasz Luba wrote:
Hi Dietmar,

On 3/26/24 11:20, Dietmar Eggemann wrote:
On 22/03/2024 12:08, Lukasz Luba wrote:

[...]

@@ -97,9 +98,17 @@ 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) {
+                /*
+                 * When the voltage for OPPs successfully
+                 * changed, update the EM power values to
+                 * reflect the reality and not use stale data

At this point, can we really say that the voltage has changed?

   exynos_asv_update_cpu_opps()

     ...
     ret = dev_pm_opp_adjust_voltage()
     if (!ret)
       em_dev_update_chip_binning()
     ...

dev_pm_opp_adjust_voltage() also returns 0 when the voltage value stays
the same?

[...]

The comment for the dev_pm_opp_adjust_voltage() says that it
returns 0 if no modification was done or modification was
successful. So I cannot distinguish in that driver code, but
also there is no additional need to do it IMO (even framework
doesn't do this).

Precisely. That's why the added comment in exynos_asv_update_opps():
"When the voltage for OPPs successfully __changed__, ..." is somehow
misleading IMHO.


I got your point. Let me re-phrase that comment to reflect this
OPP function return properly.