On 22-05-18, 10:59, ilia...@codeaurora.org wrote:
> OK, I think I found out the way. Would this be correct?
> -----------------------------------------------------------------------------------------------
> extern struct cpu_topology cpu_topology[NR_CPUS];
> 
> static struct device *qcom_cpufreq_kryo_get_cluster_lead(int cluster)
> {
>       unsigned cpu;
> 
>       for_each_possible_cpu(cpu) {
>               if ((cluster == cpu_topology[cpu].cluster_id) &&
>                       (0 == cpu_topology[cpu].core_id))
>                       return get_cpu_device(cpu);
>       }
> 
>       return NULL;
> }

Okay, this is what you should do IMHO.

for_each_possible_cpu(cpu) {
        cpu_dev = xxx..
        ret = dev_pm_opp_set_supported_hw(cpu_dev, xxx, xxx);
        if (ret && ret != -EBUSY)
                error-out.
}

This would require a trivial patch for the OPP core to not throw an
error message with -EBUSY. I can do that separately.

-- 
viresh

Reply via email to