MIPS: CPS: Add a couple of multi-cluster utility functions
authorPaul Burton <paulburton@kernel.org>
Sat, 11 May 2024 10:43:28 +0000 (12:43 +0200)
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>
Tue, 9 Jul 2024 08:48:17 +0000 (10:48 +0200)
commit36675ac2a759c6dc99e3155fd6b9ebcc75ef8a45
tree91bb4bca909a9f3d7380d977869c5771cfe4b3f8
parent89c7f5078935872cf47a713a645affb5037be694
MIPS: CPS: Add a couple of multi-cluster utility functions

This patch introduces a couple of utility functions which help later
patches with introducing support for multi-cluster systems.

 - mips_cps_multicluster_cpus() allows its caller to determine whether
   the system includes CPUs spread across multiple clusters. This is
   useful because in some cases behaviour can be more optimal taking
   this knowledge into account. The means by which we check this is
   dependent upon the way we probe CPUs & assign their numbers, so
   keeping this knowledge confined here in arch/mips/ seems appropriate.

 - mips_cps_first_online_in_cluster() allows its caller to determine
   whether it is running upon the first CPU online within its cluster.
   This information is useful in cases where some cluster-wide
   configuration may need to occur, but should not be repeated if
   another CPU in the cluster is already online. Similarly to the above
   this is determined based upon knowledge of CPU numbering so it makes
   sense to keep that knowledge in arch/mips/. The function is defined
   in mips-cm.c rather than in asm/mips-cps.h in order to allow us to
   use asm/cpu-info.h & linux/smp.h without encountering an include
   nightmare.

Signed-off-by: Paul Burton <paulburton@kernel.org>
Signed-off-by: Chao-ying Fu <cfu@wavecomp.com>
Signed-off-by: Dragan Mladjenovic <dragan.mladjenovic@syrmia.com>
Signed-off-by: Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
arch/mips/include/asm/mips-cps.h
arch/mips/kernel/mips-cm.c