Re: [PATCH V2] PM / OPP: 'UNKNOWN' status of opp-table->shared
From: Rafael J. Wysocki
Date: Thu Jun 16 2016 - 09:52:21 EST
On Thu, Jun 16, 2016 at 3:33 PM, Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote:
> dev_pm_opp_get_sharing_cpus() returns 0 even in the case where the OPP
> core doesn't know if the table is shared or not. It is working for most
> of the platforms, as the OPP table was never created and we returned
> -ENODEV then.
>
> But in case of one of the platforms (Jetson TK1) at least, the situation
> is a bit different. The OPP table is created (somehow) before
> dev_pm_opp_get_sharing_cpus() is called and so we returned 0. The caller
> of this routine treated that as 'CPUs don't share OPPs' and that had bad
> consequences on performance.
>
> Fix this by creating a converting 'shared_opp' to an enum.
> dev_pm_opp_get_sharing_cpus() returns -EINVAL now in case the status in
> access-unknown, so that the caller can handle it accordingly (cpufreq-dt
> considers that as 'all CPUs share the table').
>
> Fixes: 6f707daa3833 ("PM / OPP: Add dev_pm_opp_get_sharing_cpus()")
> Reported-and-tested-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
> Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
I've queued it up, but I rewrote the changelog.
Please check in bleeding-edge.
Thanks!