Lines Matching defs:cluster

58 /* SPC CPU/cluster reset statue */
79 /* TC2 static dual-cluster configuration */
105 * A15s cluster identifier
119 static inline bool cluster_is_a15(u32 cluster)
121 return cluster == info->a15_clusid;
154 * @cluster: mpidr[15:8] bitfield describing cluster affinity level
158 void ve_spc_cpu_wakeup_irq(u32 cluster, u32 cpu, bool set)
162 if (cluster >= MAX_CLUSTERS)
167 if (!cluster_is_a15(cluster))
183 * @cluster: mpidr[15:8] bitfield describing cluster affinity level
187 void ve_spc_set_resume_addr(u32 cluster, u32 cpu, u32 addr)
191 if (cluster >= MAX_CLUSTERS)
194 if (cluster_is_a15(cluster))
205 * Function to enable/disable cluster powerdown. Not protected by locking
209 * @cluster: mpidr[15:8] bitfield describing cluster affinity level
212 void ve_spc_powerdown(u32 cluster, bool enable)
216 if (cluster >= MAX_CLUSTERS)
219 pwdrn_reg = cluster_is_a15(cluster) ? A15_PWRDN_EN : A7_PWRDN_EN;
223 static u32 standbywfi_cpu_mask(u32 cpu, u32 cluster)
225 return cluster_is_a15(cluster) ?
231 * ve_spc_cpu_in_wfi(u32 cpu, u32 cluster)
233 * @cpu: mpidr[7:0] bitfield describing CPU affinity level within cluster
234 * @cluster: mpidr[15:8] bitfield describing cluster affinity level
242 int ve_spc_cpu_in_wfi(u32 cpu, u32 cluster)
245 u32 mask = standbywfi_cpu_mask(cpu, cluster);
247 if (cluster >= MAX_CLUSTERS)
258 static int ve_spc_get_performance(int cluster, u32 *freq)
260 struct ve_spc_opp *opps = info->opps[cluster];
264 perf_cfg_reg = cluster_is_a15(cluster) ? PERF_LVL_A15 : PERF_LVL_A7;
267 if (perf >= info->num_opps[cluster])
277 static int ve_spc_round_performance(int cluster, u32 freq)
279 int idx, max_opp = info->num_opps[cluster];
280 struct ve_spc_opp *opps = info->opps[cluster];
300 static int ve_spc_find_performance_index(int cluster, u32 freq)
302 int idx, max_opp = info->num_opps[cluster];
303 struct ve_spc_opp *opps = info->opps[cluster];
322 static int ve_spc_set_performance(int cluster, u32 freq)
327 if (cluster_is_a15(cluster)) {
335 perf = ve_spc_find_performance_index(cluster, freq);
401 static int ve_spc_populate_opps(uint32_t cluster)
410 info->opps[cluster] = opps;
412 off = cluster_is_a15(cluster) ? A15_PERFVAL_BASE : A7_PERFVAL_BASE;
422 info->num_opps[cluster] = idx;
429 int cluster;
433 cluster = topology_physical_package_id(cpu_dev->id);
434 cluster = cluster < 0 ? 0 : cluster;
436 max_opp = info->num_opps[cluster];
437 opps = info->opps[cluster];
480 * Multi-cluster systems may need this data when non-coherent, during
481 * cluster power-up/power-down. Make sure driver info reaches main
492 int cluster;
502 if (ve_spc_get_performance(spc->cluster, &freq))
513 return ve_spc_round_performance(spc->cluster, drate);
521 return ve_spc_set_performance(spc->cluster, rate / 1000);
540 spc->cluster = topology_physical_package_id(cpu_dev->id);
542 spc->cluster = spc->cluster < 0 ? 0 : spc->cluster;
554 int cpu, cluster;
582 cluster = topology_physical_package_id(cpu_dev->id);
583 if (cluster < 0 || init_opp_table[cluster])
592 init_opp_table[cluster] = true;