Lines Matching refs:cluster
100 struct k3_r5f_cluster *cluster; member
124 return core == core->cluster->cores[0]; in is_primary_core()
129 struct k3_r5f_cluster *cluster = core->cluster; in k3_r5f_proc_request() local
132 if (cluster->mode == CLUSTER_MODE_LOCKSTEP) { in k3_r5f_proc_request()
134 ret = ti_sci_proc_request(&cluster->cores[i]->tsp); in k3_r5f_proc_request()
146 ti_sci_proc_release(&cluster->cores[i]->tsp); in k3_r5f_proc_request()
154 struct k3_r5f_cluster *cluster = core->cluster; in k3_r5f_proc_release() local
157 if (cluster->mode == CLUSTER_MODE_LOCKSTEP) in k3_r5f_proc_release()
159 ti_sci_proc_release(&cluster->cores[i]->tsp); in k3_r5f_proc_release()
164 static int k3_r5f_lockstep_release(struct k3_r5f_cluster *cluster) in k3_r5f_lockstep_release() argument
171 ret = ti_sci_proc_power_domain_on(&cluster->cores[c]->tsp); in k3_r5f_lockstep_release()
178 ret = reset_deassert(&cluster->cores[c]->reset); in k3_r5f_lockstep_release()
187 reset_assert(&cluster->cores[c]->reset); in k3_r5f_lockstep_release()
193 ti_sci_proc_power_domain_off(&cluster->cores[c]->tsp); in k3_r5f_lockstep_release()
227 struct k3_r5f_cluster *cluster = core->cluster; in k3_r5f_prepare() local
232 if (cluster->mode == CLUSTER_MODE_LOCKSTEP) in k3_r5f_prepare()
233 ret = k3_r5f_lockstep_release(cluster); in k3_r5f_prepare()
246 struct k3_r5f_cluster *cluster = core->cluster; in k3_r5f_core_sanity_check() local
255 if (cluster->mode == CLUSTER_MODE_LOCKSTEP && !cluster->cores[1]) { in k3_r5f_core_sanity_check()
261 if (cluster->mode == CLUSTER_MODE_LOCKSTEP && !is_primary_core(core)) { in k3_r5f_core_sanity_check()
268 if (cluster->mode == CLUSTER_MODE_SPLIT && !is_primary_core(core)) { in k3_r5f_core_sanity_check()
269 if (!core->cluster->cores[0]->in_use) { in k3_r5f_core_sanity_check()
387 struct k3_r5f_cluster *cluster = core->cluster; in k3_r5f_start() local
400 if (cluster->mode == CLUSTER_MODE_LOCKSTEP) { in k3_r5f_start()
403 ret = k3_r5f_core_run(cluster->cores[c]); in k3_r5f_start()
426 k3_r5f_core_halt(cluster->cores[c]); in k3_r5f_start()
450 static int k3_r5f_lockstep_reset(struct k3_r5f_cluster *cluster) in k3_r5f_lockstep_reset() argument
457 if (reset_assert(&cluster->cores[c]->reset)) in k3_r5f_lockstep_reset()
462 if (ti_sci_proc_power_domain_off(&cluster->cores[c]->tsp)) in k3_r5f_lockstep_reset()
471 struct k3_r5f_cluster *cluster = core->cluster; in k3_r5f_unprepare() local
476 if (cluster->mode == CLUSTER_MODE_LOCKSTEP) { in k3_r5f_unprepare()
478 ret = k3_r5f_lockstep_reset(cluster); in k3_r5f_unprepare()
493 struct k3_r5f_cluster *cluster = core->cluster; in k3_r5f_stop() local
504 if (cluster->mode == CLUSTER_MODE_LOCKSTEP) { in k3_r5f_stop()
507 k3_r5f_core_halt(cluster->cores[c]); in k3_r5f_stop()
580 struct k3_r5f_cluster *cluster = core->cluster; in k3_r5f_rproc_configure() local
602 if (cluster->mode && is_primary_core(core) && !lockstep_permitted) { in k3_r5f_rproc_configure()
612 if (cluster->mode == CLUSTER_MODE_LOCKSTEP) in k3_r5f_rproc_configure()
757 struct k3_r5f_cluster *cluster = core->cluster; in k3_r5f_core_adjust_tcm_sizes() local
759 if (cluster->mode == CLUSTER_MODE_LOCKSTEP) in k3_r5f_core_adjust_tcm_sizes()
765 if (core == cluster->cores[0]) { in k3_r5f_core_adjust_tcm_sizes()
782 struct k3_r5f_cluster *cluster = dev_get_priv(dev->parent); in k3_r5f_probe() local
794 core->cluster = cluster; in k3_r5f_probe()
796 if (!cluster->cores[0]) in k3_r5f_probe()
797 cluster->cores[0] = core; in k3_r5f_probe()
799 cluster->cores[1] = core; in k3_r5f_probe()
874 struct k3_r5f_cluster *cluster = dev_get_priv(dev); in k3_r5f_cluster_probe() local
878 cluster->mode = dev_read_u32_default(dev, "ti,cluster-mode", in k3_r5f_cluster_probe()
887 __func__, cluster->mode ? "lockstep" : "split"); in k3_r5f_cluster_probe()