Lines Matching +full:cluster +full:- +full:index
1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * arch/arm/common/mcpm_head.S -- kernel entry point for multi-cluster PM
6 * Copyright: (C) 2012-2013 Linaro Limited
8 * Refer to Documentation/arch/arm/cluster-pm-race-avoidance.rst
18 .arch armv7-a
28 1903: .asciz " cluster"
56 ubfx r10, r0, #8, #8 @ r10 = cluster
58 mla r4, r3, r10, r9 @ r4 = canonical CPU index
88 mla r8, r0, r10, r8 @ r8 = sync cluster base
96 @ At this point, the cluster cannot unexpectedly enter the GOING_DOWN
100 mla r11, r0, r10, r11 @ r11 = cluster first man lock
106 bne mcpm_setup_wait @ wait for cluster setup if so
109 cmp r0, #CLUSTER_UP @ cluster already up?
110 bne mcpm_setup @ if not, set up the cluster
120 @ Signal that the cluster is being brought up:
125 @ Any CPU trying to take the cluster into CLUSTER_GOING_DOWN from this
128 @ Wait for any previously-pending cluster teardown operations to abort
140 @ If the outbound gave up before teardown started, skip cluster setup:
145 @ power_up_setup is now responsible for setting up the cluster:
148 mov r0, #1 @ second (cluster) affinity level
157 @ Leave the cluster setup critical section:
168 @ In the contended case, non-first men wait here for cluster setup
178 @ If a platform-specific CPU setup hook is needed, it is
205 3: .word mcpm_entry_early_pokes - .
206 .word mcpm_entry_vectors - 3b
207 .word mcpm_power_up_setup_phys - 3b
208 .word mcpm_sync - 3b
209 .word first_man_locks - 3b