Lines Matching refs:cluster

70 static bool hip04_cluster_is_down(unsigned int cluster)  in hip04_cluster_is_down()  argument
75 if (hip04_cpu_table[cluster][i]) in hip04_cluster_is_down()
80 static void hip04_set_snoop_filter(unsigned int cluster, unsigned int on) in hip04_set_snoop_filter() argument
88 data |= 1 << cluster; in hip04_set_snoop_filter()
90 data &= ~(1 << cluster); in hip04_set_snoop_filter()
97 static int hip04_mcpm_power_up(unsigned int cpu, unsigned int cluster) in hip04_mcpm_power_up() argument
104 if (cluster >= HIP04_MAX_CLUSTERS || cpu >= HIP04_MAX_CPUS_PER_CLUSTER) in hip04_mcpm_power_up()
109 if (hip04_cpu_table[cluster][cpu]) in hip04_mcpm_power_up()
112 sys_dreq = sysctrl + SC_CPU_RESET_DREQ(cluster); in hip04_mcpm_power_up()
113 sys_status = sysctrl + SC_CPU_RESET_STATUS(cluster); in hip04_mcpm_power_up()
114 if (hip04_cluster_is_down(cluster)) { in hip04_mcpm_power_up()
135 hip04_cpu_table[cluster][cpu]++; in hip04_mcpm_power_up()
143 unsigned int mpidr, cpu, cluster; in hip04_mcpm_power_down() local
148 cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1); in hip04_mcpm_power_down()
150 __mcpm_cpu_going_down(cpu, cluster); in hip04_mcpm_power_down()
153 BUG_ON(__mcpm_cluster_state(cluster) != CLUSTER_UP); in hip04_mcpm_power_down()
154 hip04_cpu_table[cluster][cpu]--; in hip04_mcpm_power_down()
155 if (hip04_cpu_table[cluster][cpu] == 1) { in hip04_mcpm_power_down()
158 } else if (hip04_cpu_table[cluster][cpu] > 1) { in hip04_mcpm_power_down()
159 pr_err("Cluster %d CPU%d boots multiple times\n", cluster, cpu); in hip04_mcpm_power_down()
163 last_man = hip04_cluster_is_down(cluster); in hip04_mcpm_power_down()
164 if (last_man && __mcpm_outbound_enter_critical(cpu, cluster)) { in hip04_mcpm_power_down()
173 hip04_set_snoop_filter(cluster, 0); in hip04_mcpm_power_down()
174 __mcpm_outbound_leave_critical(cluster, CLUSTER_DOWN); in hip04_mcpm_power_down()
180 __mcpm_cpu_down(cpu, cluster); in hip04_mcpm_power_down()
186 static int hip04_mcpm_wait_for_powerdown(unsigned int cpu, unsigned int cluster) in hip04_mcpm_wait_for_powerdown() argument
191 BUG_ON(cluster >= HIP04_MAX_CLUSTERS || in hip04_mcpm_wait_for_powerdown()
197 if (hip04_cpu_table[cluster][cpu]) { in hip04_mcpm_wait_for_powerdown()
202 data = readl_relaxed(sysctrl + SC_CPU_RESET_STATUS(cluster)); in hip04_mcpm_wait_for_powerdown()
214 writel_relaxed(data, sysctrl + SC_CPU_RESET_REQ(cluster)); in hip04_mcpm_wait_for_powerdown()
217 data = readl_relaxed(sysctrl + SC_CPU_RESET_STATUS(cluster)); in hip04_mcpm_wait_for_powerdown()
232 unsigned int mpidr, cpu, cluster; in hip04_mcpm_powered_up() local
236 cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1); in hip04_mcpm_powered_up()
239 if (!hip04_cpu_table[cluster][cpu]) in hip04_mcpm_powered_up()
240 hip04_cpu_table[cluster][cpu] = 1; in hip04_mcpm_powered_up()
285 unsigned int mpidr, cpu, cluster; in hip04_cpu_table_init() local
289 cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1); in hip04_cpu_table_init()
291 if (cluster >= HIP04_MAX_CLUSTERS || in hip04_cpu_table_init()
296 hip04_set_snoop_filter(cluster, 1); in hip04_cpu_table_init()
297 hip04_cpu_table[cluster][cpu] = 1; in hip04_cpu_table_init()