/**
* acpi_map_gic_cpu_interface - generates a logical cpu number
* and map to MPIDR represented by GICC structure
- * @mpidr: CPU's hardware id to register, MPIDR represented in MADT
- * @enabled: this cpu is enabled or not
- *
- * Returns the logical cpu number which maps to MPIDR
*/
-static int __init
+static void __init
acpi_map_gic_cpu_interface(struct acpi_madt_generic_interrupt *processor)
{
int i;
if (mpidr == INVALID_HWID) {
pr_info("Skip MADT cpu entry with invalid MPIDR\n");
- return -EINVAL;
+ return;
}
total_cpus++;
if (!enabled)
- return -EINVAL;
+ return;
if (enabled_cpus >= NR_CPUS) {
pr_warn("NR_CPUS limit of %d reached, Processor %d/0x%llx ignored.\n",
NR_CPUS, total_cpus, mpidr);
- return -EINVAL;
+ return;
}
/* Check if GICC structure of boot CPU is available in the MADT */
if (bootcpu_valid) {
pr_err("Firmware bug, duplicate CPU MPIDR: 0x%llx in MADT\n",
mpidr);
- return -EINVAL;
+ return;
}
bootcpu_valid = true;
if (cpu_logical_map(i) == mpidr) {
pr_err("Firmware bug, duplicate CPU MPIDR: 0x%llx in MADT\n",
mpidr);
- return -EINVAL;
+ return;
}
}
if (!acpi_psci_present())
- return -EOPNOTSUPP;
+ return;
cpu_ops[enabled_cpus] = cpu_get_ops("psci");
/* CPU 0 was already initialized */
if (enabled_cpus) {
if (!cpu_ops[enabled_cpus])
- return -EINVAL;
+ return;
if (cpu_ops[enabled_cpus]->cpu_init(NULL, enabled_cpus))
- return -EOPNOTSUPP;
+ return;
/* map the logical cpu id to cpu MPIDR */
cpu_logical_map(enabled_cpus) = mpidr;
}
enabled_cpus++;
- return enabled_cpus;
}
static int __init