mirror of
https://github.com/torvalds/linux.git
synced 2024-10-31 17:21:49 +00:00
b21dcafea3
The ->smp_init_cpus() function is called very early during boot, at a point where dynamic I/O mappings are not yet possible. However, in the Armada 370/XP implementation of this function, we have to get the number of CPUs. We used to do that by accessing a hardware register, which requires relying on a static I/O mapping set up by ->map_io(). Not only this requires hardcoding a virtual address, but it also prevents us from removing the static I/O mapping. So this commit changes the way used to get the number of CPUs: we now use the Device Tree, which is a representation of the hardware, and provides us the number of available CPUs. This is also more accurate, because it potentially allows to boot the Linux kernel on only a number of CPUs given by the Device Tree, instead of unconditionally on all CPUs. As a consequence, the coherency_get_cpu_count() function becomes no longer used, so we remove it. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
21 lines
543 B
C
21 lines
543 B
C
/*
|
|
* arch/arm/mach-mvebu/include/mach/coherency.h
|
|
*
|
|
*
|
|
* Coherency fabric (Aurora) support for Armada 370 and XP platforms.
|
|
*
|
|
* Copyright (C) 2012 Marvell
|
|
*
|
|
* This file is licensed under the terms of the GNU General Public
|
|
* License version 2. This program is licensed "as is" without any
|
|
* warranty of any kind, whether express or implied.
|
|
*/
|
|
|
|
#ifndef __MACH_370_XP_COHERENCY_H
|
|
#define __MACH_370_XP_COHERENCY_H
|
|
|
|
int set_cpu_coherent(int cpu_id, int smp_group_id);
|
|
int coherency_init(void);
|
|
|
|
#endif /* __MACH_370_XP_COHERENCY_H */
|