Lines Matching defs:cluster
48 static int tc2_pm_cpu_powerup(unsigned int cpu, unsigned int cluster)
50 pr_debug("%s: cpu %u cluster %u\n", __func__, cpu, cluster);
51 if (cluster >= TC2_CLUSTERS || cpu >= tc2_nr_cpus[cluster])
53 ve_spc_set_resume_addr(cluster, cpu,
55 ve_spc_cpu_wakeup_irq(cluster, cpu, true);
59 static int tc2_pm_cluster_powerup(unsigned int cluster)
61 pr_debug("%s: cluster %u\n", __func__, cluster);
62 if (cluster >= TC2_CLUSTERS)
64 ve_spc_powerdown(cluster, false);
68 static void tc2_pm_cpu_powerdown_prepare(unsigned int cpu, unsigned int cluster)
70 pr_debug("%s: cpu %u cluster %u\n", __func__, cpu, cluster);
71 BUG_ON(cluster >= TC2_CLUSTERS || cpu >= TC2_MAX_CPUS_PER_CLUSTER);
72 ve_spc_cpu_wakeup_irq(cluster, cpu, true);
83 static void tc2_pm_cluster_powerdown_prepare(unsigned int cluster)
85 pr_debug("%s: cluster %u\n", __func__, cluster);
86 BUG_ON(cluster >= TC2_CLUSTERS);
87 ve_spc_powerdown(cluster, true);
114 static int tc2_core_in_reset(unsigned int cpu, unsigned int cluster)
116 u32 mask = cluster ?
126 static int tc2_pm_wait_for_powerdown(unsigned int cpu, unsigned int cluster)
130 pr_debug("%s: cpu %u cluster %u\n", __func__, cpu, cluster);
131 BUG_ON(cluster >= TC2_CLUSTERS || cpu >= TC2_MAX_CPUS_PER_CLUSTER);
134 pr_debug("%s(cpu=%u, cluster=%u): RESET_CTRL = 0x%08X\n",
135 __func__, cpu, cluster,
140 * controller may put the cluster in reset and
146 if (tc2_core_in_reset(cpu, cluster) ||
147 ve_spc_cpu_in_wfi(cpu, cluster))
157 static void tc2_pm_cpu_suspend_prepare(unsigned int cpu, unsigned int cluster)
159 ve_spc_set_resume_addr(cluster, cpu, __pa_symbol(mcpm_entry_point));
162 static void tc2_pm_cpu_is_up(unsigned int cpu, unsigned int cluster)
164 pr_debug("%s: cpu %u cluster %u\n", __func__, cpu, cluster);
165 BUG_ON(cluster >= TC2_CLUSTERS || cpu >= TC2_MAX_CPUS_PER_CLUSTER);
166 ve_spc_cpu_wakeup_irq(cluster, cpu, false);
167 ve_spc_set_resume_addr(cluster, cpu, 0);
170 static void tc2_pm_cluster_is_up(unsigned int cluster)
172 pr_debug("%s: cluster %u\n", __func__, cluster);
173 BUG_ON(cluster >= TC2_CLUSTERS);
174 ve_spc_powerdown(cluster, false);
192 * Enable cluster-level coherency, in preparation for turning on the MMU.
204 unsigned int mpidr, cpu, cluster;
212 * cluster ids and number of CPUs really available in clusters.
246 cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1);
247 pr_debug("%s: cpu %u cluster %u\n", __func__, cpu, cluster);
248 if (cluster >= TC2_CLUSTERS || cpu >= tc2_nr_cpus[cluster]) {