]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
cpufreq: tegra186: Share policy per cluster
authorAaron Kling <luceoscutum@gmail.com>
Mon, 10 Mar 2025 05:28:48 +0000 (00:28 -0500)
committerViresh Kumar <viresh.kumar@linaro.org>
Mon, 10 Mar 2025 05:50:05 +0000 (11:20 +0530)
This functionally brings tegra186 in line with tegra210 and tegra194,
sharing a cpufreq policy between all cores in a cluster.

Reviewed-by: Sumit Gupta <sumitg@nvidia.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
drivers/cpufreq/tegra186-cpufreq.c

index b54a77be54e6b049ee09ae28ca3be1b6804aa1d4..cbabb726c6645d2e5f1857a47e5643c8552d1933 100644 (file)
@@ -73,11 +73,18 @@ static int tegra186_cpufreq_init(struct cpufreq_policy *policy)
 {
        struct tegra186_cpufreq_data *data = cpufreq_get_driver_data();
        unsigned int cluster = data->cpus[policy->cpu].bpmp_cluster_id;
+       u32 cpu;
 
        policy->freq_table = data->clusters[cluster].table;
        policy->cpuinfo.transition_latency = 300 * 1000;
        policy->driver_data = NULL;
 
+       /* set same policy for all cpus in a cluster */
+       for (cpu = 0; cpu < ARRAY_SIZE(tegra186_cpus); cpu++) {
+               if (data->cpus[cpu].bpmp_cluster_id == cluster)
+                       cpumask_set_cpu(cpu, policy->cpus);
+       }
+
        return 0;
 }