diff options
author | Hanjun Guo <hanjun.guo@linaro.org> | 2014-03-26 08:36:23 +0800 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-03-26 16:30:34 +0100 |
commit | 3e9eac50cdcac71a74ca4a8cb587799f474ca62d (patch) | |
tree | 8274fed8949264170869c00e34bf95a7424e03f8 /drivers/acpi | |
parent | 38953d3945aedf8e198b75ff09b22e369f14566f (diff) | |
download | blackbird-op-linux-3e9eac50cdcac71a74ca4a8cb587799f474ca62d.tar.gz blackbird-op-linux-3e9eac50cdcac71a74ca4a8cb587799f474ca62d.zip |
Revert "ACPI / processor: Make it possible to get APIC ID via GIC"
Revert commit df86f5df79d8 (ACPI / processor: Make it possible to get
APIC ID via GIC).
APIC ID refers the hardware ID of the CPU, which means MPIDR on
ARM/ARM64, but in ACPI 5.0, GIC ID feild in GIC structure have
no explicit definition and may not refer to the MPIDR.
Commit df86f5df79d8 assumed that gic->gic_id as MPIDR which may not be
the case, so revert it until the explicit definition of GIC structure
is ready.
Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
[rjw: Changelog]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/processor_core.c | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c index f1dd404463aa..4d91b32423a9 100644 --- a/drivers/acpi/processor_core.c +++ b/drivers/acpi/processor_core.c @@ -71,28 +71,6 @@ static int map_lsapic_id(struct acpi_subtable_header *entry, return 0; } -static int map_gic_id(struct acpi_subtable_header *entry, - int device_declaration, u32 acpi_id, int *apic_id) -{ - struct acpi_madt_generic_interrupt *gic = - (struct acpi_madt_generic_interrupt *)entry; - - if (!(gic->flags & ACPI_MADT_ENABLED)) - return -ENODEV; - - /* - * In the GIC interrupt model, logical processors are - * required to have a Processor Device object in the DSDT, - * so we should check device_declaration here - */ - if (device_declaration && (gic->uid == acpi_id)) { - *apic_id = gic->gic_id; - return 0; - } - - return -EINVAL; -} - static int map_madt_entry(int type, u32 acpi_id) { unsigned long madt_end, entry; @@ -128,9 +106,6 @@ static int map_madt_entry(int type, u32 acpi_id) } else if (header->type == ACPI_MADT_TYPE_LOCAL_SAPIC) { if (!map_lsapic_id(header, type, acpi_id, &apic_id)) break; - } else if (header->type == ACPI_MADT_TYPE_GENERIC_INTERRUPT) { - if (!map_gic_id(header, type, acpi_id, &apic_id)) - break; } entry += header->length; } @@ -161,8 +136,6 @@ static int map_mat_entry(acpi_handle handle, int type, u32 acpi_id) map_lapic_id(header, acpi_id, &apic_id); } else if (header->type == ACPI_MADT_TYPE_LOCAL_SAPIC) { map_lsapic_id(header, type, acpi_id, &apic_id); - } else if (header->type == ACPI_MADT_TYPE_GENERIC_INTERRUPT) { - map_gic_id(header, type, acpi_id, &apic_id); } exit: |