mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-22 23:13:01 +02:00
irqchip/mips-gic: Support multi-cluster in for_each_online_cpu_gic()
Use CM's GCR_CL_REDIRECT register to access registers in remote clusters, so that users of gic_with_each_online_cpu() gains support for multi-cluster without further changes. 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 <arikalo@gmail.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Tested-by: Serge Semin <fancer.lancer@gmail.com> Tested-by: Gregory CLEMENT <gregory.clement@bootlin.com> Link: https://lore.kernel.org/all/20241028175935.51250-3-arikalo@gmail.com
This commit is contained in:
parent
496461050b
commit
d9e2ed610a
|
@ -88,6 +88,12 @@ static int __gic_with_next_online_cpu(int prev)
|
|||
return cpu;
|
||||
}
|
||||
|
||||
static inline void gic_unlock_cluster(void)
|
||||
{
|
||||
if (mips_cps_multicluster_cpus())
|
||||
mips_cm_unlock_other();
|
||||
}
|
||||
|
||||
/**
|
||||
* for_each_online_cpu_gic() - Iterate over online CPUs, access local registers
|
||||
* @cpu: An integer variable to hold the current CPU number
|
||||
|
@ -102,6 +108,7 @@ static int __gic_with_next_online_cpu(int prev)
|
|||
guard(raw_spinlock_irqsave)(gic_lock); \
|
||||
for ((cpu) = __gic_with_next_online_cpu(-1); \
|
||||
(cpu) < nr_cpu_ids; \
|
||||
gic_unlock_cluster(), \
|
||||
(cpu) = __gic_with_next_online_cpu(cpu))
|
||||
|
||||
static void gic_clear_pcpu_masks(unsigned int intr)
|
||||
|
|
Loading…
Reference in New Issue
Block a user