Revert "ACPI / processor: Make it possible to get APIC ID via GIC"
authorHanjun Guo <hanjun.guo@linaro.org>
Wed, 26 Mar 2014 00:36:23 +0000 (08:36 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 26 Mar 2014 15:30:34 +0000 (16:30 +0100)
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>
drivers/acpi/processor_core.c

index f1dd404..4d91b32 100644 (file)
@@ -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: