Re: [PATCH v7 2/3] scmi-cpufreq: Get opp_shared_cpus from opp-v2 for EM
From: Nicola Mazzucato <hidden>
Date: 2021-02-18 15:24:12
Also in:
linux-pm, lkml
Hi Viresh, On 2/18/21 11:00 AM, Viresh Kumar wrote:
On 15-02-21, 07:51, Nicola Mazzucato wrote:quoted
+ /* + * Add OPPs only on those CPUs for which we haven't already done so. + */ nr_opp = dev_pm_opp_get_opp_count(cpu_dev);Please add a more detailed comment here explaining why you expect OPPs to be present here in advance. i.e. you _may_ have policy per CPU even though OPP core says OPPs are shared.. It is not straight forward to catch otherwise.
Sure, I'll put more details, thanks.
quoted
if (nr_opp <= 0) { - dev_err(cpu_dev, "%s: No OPPs for this device: %d\n", - __func__, ret); - - ret = -ENODEV; - goto out_free_priv; + ret = handle->perf_ops->device_opps_add(handle, cpu_dev); + if (ret) { + dev_warn(cpu_dev, "failed to add opps to the device\n"); + goto out_free_cpumask; + } + + nr_opp = dev_pm_opp_get_opp_count(cpu_dev); + if (nr_opp <= 0) { + dev_err(cpu_dev, "%s: No OPPs for this device: %d\n", + __func__, ret); + + ret = -ENODEV; + goto out_free_opp; + } + + ret = dev_pm_opp_set_sharing_cpus(cpu_dev, opp_shared_cpus); + if (ret) { + dev_err(cpu_dev, "%s: failed to mark OPPs as shared: %d\n", + __func__, ret); + + goto out_free_opp; + } + + power_scale_mw = handle->perf_ops->power_scale_mw_get(handle); + em_dev_register_perf_domain(cpu_dev, nr_opp, &em_cb, + opp_shared_cpus, power_scale_mw); }
_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel