From 3e9eac50cdcac71a74ca4a8cb587799f474ca62d Mon Sep 17 00:00:00 2001 From: Hanjun Guo Date: Wed, 26 Mar 2014 08:36:23 +0800 Subject: [PATCH] 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 [rjw: Changelog] Signed-off-by: Rafael J. Wysocki --- drivers/acpi/processor_core.c | 27 --------------------------- 1 file changed, 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: -- 2.20.1