forked from luck/tmp_suning_uos_patched
MIPS: smp-cps: use CPC core-other locking
The core which the CPC core-other region relates to is based upon the core-local core-other addressing register. As its name suggests this register is shared between all VPEs within a core, and if there is a possibility that multiple VPEs within a core will attempt to access another core simultaneously then locking is required. This wasn't previously a problem with the only user being cpu0 during boot, but will be an issue once hotplug is implemented & may race with other users such as cpuidle. Signed-off-by: Paul Burton <paul.burton@imgtec.com>
This commit is contained in:
parent
0f4d3d1155
commit
dd9233d047
|
@ -161,11 +161,10 @@ static void boot_core(unsigned core)
|
|||
write_gcr_access(access);
|
||||
|
||||
if (mips_cpc_present()) {
|
||||
/* Select the appropriate core */
|
||||
write_cpc_cl_other(core << CPC_Cx_OTHER_CORENUM_SHF);
|
||||
|
||||
/* Reset the core */
|
||||
mips_cpc_lock_other(core);
|
||||
write_cpc_co_cmd(CPC_Cx_CMD_RESET);
|
||||
mips_cpc_unlock_other();
|
||||
} else {
|
||||
/* Take the core out of reset */
|
||||
write_gcr_co_reset_release(0);
|
||||
|
|
Loading…
Reference in New Issue
Block a user