ARM: vexpress: remove redundant vexpress_dt_cpus_num to get cpu count
arm_dt_init_cpu_maps parses the device tree, validates and sets the cpu_possible_mask appropriately. It is unnecessary to do another DT parse to get the number of cpus, use num_possible_cpus instead. This patch also removes setting cpu_present_mask as platforms should only re-initialize it in smp_prepare_cpus() if present != possible. Signed-off-by: Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com> Signed-off-by: Pawel Moll <pawel.moll@arm.com>
This commit is contained in:
parent
220e2a8d22
commit
dcdea6295d
|
@ -77,39 +77,13 @@ void __init vexpress_dt_smp_map_io(void)
|
|||
WARN_ON(of_scan_flat_dt(vexpress_dt_find_scu, NULL));
|
||||
}
|
||||
|
||||
static int __init vexpress_dt_cpus_num(unsigned long node, const char *uname,
|
||||
int depth, void *data)
|
||||
{
|
||||
static int prev_depth = -1;
|
||||
static int nr_cpus = -1;
|
||||
|
||||
if (prev_depth > depth && nr_cpus > 0)
|
||||
return nr_cpus;
|
||||
|
||||
if (nr_cpus < 0 && strcmp(uname, "cpus") == 0)
|
||||
nr_cpus = 0;
|
||||
|
||||
if (nr_cpus >= 0) {
|
||||
const char *device_type = of_get_flat_dt_prop(node,
|
||||
"device_type", NULL);
|
||||
|
||||
if (device_type && strcmp(device_type, "cpu") == 0)
|
||||
nr_cpus++;
|
||||
}
|
||||
|
||||
prev_depth = depth;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void __init vexpress_dt_smp_init_cpus(void)
|
||||
{
|
||||
int ncores = 0, i;
|
||||
|
||||
switch (vexpress_dt_scu) {
|
||||
case GENERIC_SCU:
|
||||
ncores = of_scan_flat_dt(vexpress_dt_cpus_num, NULL);
|
||||
break;
|
||||
return;
|
||||
case CORTEX_A9_SCU:
|
||||
ncores = scu_get_core_count(vexpress_dt_cortex_a9_scu_base);
|
||||
break;
|
||||
|
@ -133,12 +107,9 @@ static void __init vexpress_dt_smp_init_cpus(void)
|
|||
|
||||
static void __init vexpress_dt_smp_prepare_cpus(unsigned int max_cpus)
|
||||
{
|
||||
int i;
|
||||
|
||||
switch (vexpress_dt_scu) {
|
||||
case GENERIC_SCU:
|
||||
for (i = 0; i < max_cpus; i++)
|
||||
set_cpu_present(i, true);
|
||||
break;
|
||||
case CORTEX_A9_SCU:
|
||||
scu_enable(vexpress_dt_cortex_a9_scu_base);
|
||||
|
|
Loading…
Reference in New Issue