Lines Matching defs:cluster

50 /* SPC CPU/cluster reset statue */
71 /* TC2 static dual-cluster configuration */
97 * A15s cluster identifier
111 static inline bool cluster_is_a15(u32 cluster)
113 return cluster == info->a15_clusid;
142 * @cluster: mpidr[15:8] bitfield describing cluster affinity level
150 void ve_spc_cpu_wakeup_irq(u32 cluster, u32 cpu, bool set)
154 if (cluster >= MAX_CLUSTERS)
159 if (!cluster_is_a15(cluster))
175 * @cluster: mpidr[15:8] bitfield describing cluster affinity level
179 void ve_spc_set_resume_addr(u32 cluster, u32 cpu, u32 addr)
183 if (cluster >= MAX_CLUSTERS)
186 if (cluster_is_a15(cluster))
195 * ve_spc_powerdown() - enables/disables cluster powerdown
197 * @cluster: mpidr[15:8] bitfield describing cluster affinity level
200 * Function to enable/disable cluster powerdown. Not protected by locking
204 void ve_spc_powerdown(u32 cluster, bool enable)
208 if (cluster >= MAX_CLUSTERS)
211 pwdrn_reg = cluster_is_a15(cluster) ? A15_PWRDN_EN : A7_PWRDN_EN;
215 static u32 standbywfi_cpu_mask(u32 cpu, u32 cluster)
217 return cluster_is_a15(cluster) ?
225 * @cpu: mpidr[7:0] bitfield describing CPU affinity level within cluster
226 * @cluster: mpidr[15:8] bitfield describing cluster affinity level
234 int ve_spc_cpu_in_wfi(u32 cpu, u32 cluster)
237 u32 mask = standbywfi_cpu_mask(cpu, cluster);
239 if (cluster >= MAX_CLUSTERS)
250 static int ve_spc_get_performance(int cluster, u32 *freq)
252 struct ve_spc_opp *opps = info->opps[cluster];
256 perf_cfg_reg = cluster_is_a15(cluster) ? PERF_LVL_A15 : PERF_LVL_A7;
259 if (perf >= info->num_opps[cluster])
269 static int ve_spc_round_performance(int cluster, u32 freq)
271 int idx, max_opp = info->num_opps[cluster];
272 struct ve_spc_opp *opps = info->opps[cluster];
292 static int ve_spc_find_performance_index(int cluster, u32 freq)
294 int idx, max_opp = info->num_opps[cluster];
295 struct ve_spc_opp *opps = info->opps[cluster];
314 static int ve_spc_set_performance(int cluster, u32 freq)
319 if (cluster_is_a15(cluster)) {
327 perf = ve_spc_find_performance_index(cluster, freq);
393 static int ve_spc_populate_opps(uint32_t cluster)
402 info->opps[cluster] = opps;
404 off = cluster_is_a15(cluster) ? A15_PERFVAL_BASE : A7_PERFVAL_BASE;
414 info->num_opps[cluster] = idx;
421 int cluster;
425 cluster = topology_physical_package_id(cpu_dev->id);
426 cluster = cluster < 0 ? 0 : cluster;
428 max_opp = info->num_opps[cluster];
429 opps = info->opps[cluster];
472 * Multi-cluster systems may need this data when non-coherent, during
473 * cluster power-up/power-down. Make sure driver info reaches main
484 int cluster;
494 if (ve_spc_get_performance(spc->cluster, &freq))
505 return ve_spc_round_performance(spc->cluster, drate);
513 return ve_spc_set_performance(spc->cluster, rate / 1000);
532 spc->cluster = topology_physical_package_id(cpu_dev->id);
534 spc->cluster = spc->cluster < 0 ? 0 : spc->cluster;
546 int cpu, cluster;
574 cluster = topology_physical_package_id(cpu_dev->id);
575 if (cluster < 0 || init_opp_table[cluster])
584 init_opp_table[cluster] = true;