aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/processor_core.c
diff options
context:
space:
mode:
authorHanjun Guo <hanjun.guo@linaro.org>2014-03-25 20:36:23 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2014-03-26 11:30:34 -0400
commit3e9eac50cdcac71a74ca4a8cb587799f474ca62d (patch)
tree8274fed8949264170869c00e34bf95a7424e03f8 /drivers/acpi/processor_core.c
parent38953d3945aedf8e198b75ff09b22e369f14566f (diff)
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/processor_core.c')
-rw-r--r--drivers/acpi/processor_core.c27
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,
71 return 0; 71 return 0;
72} 72}
73 73
74static int map_gic_id(struct acpi_subtable_header *entry,
75 int device_declaration, u32 acpi_id, int *apic_id)
76{
77 struct acpi_madt_generic_interrupt *gic =
78 (struct acpi_madt_generic_interrupt *)entry;
79
80 if (!(gic->flags & ACPI_MADT_ENABLED))
81 return -ENODEV;
82
83 /*
84 * In the GIC interrupt model, logical processors are
85 * required to have a Processor Device object in the DSDT,
86 * so we should check device_declaration here
87 */
88 if (device_declaration && (gic->uid == acpi_id)) {
89 *apic_id = gic->gic_id;
90 return 0;
91 }
92
93 return -EINVAL;
94}
95
96static int map_madt_entry(int type, u32 acpi_id) 74static int map_madt_entry(int type, u32 acpi_id)
97{ 75{
98 unsigned long madt_end, entry; 76 unsigned long madt_end, entry;
@@ -128,9 +106,6 @@ static int map_madt_entry(int type, u32 acpi_id)
128 } else if (header->type == ACPI_MADT_TYPE_LOCAL_SAPIC) { 106 } else if (header->type == ACPI_MADT_TYPE_LOCAL_SAPIC) {
129 if (!map_lsapic_id(header, type, acpi_id, &apic_id)) 107 if (!map_lsapic_id(header, type, acpi_id, &apic_id))
130 break; 108 break;
131 } else if (header->type == ACPI_MADT_TYPE_GENERIC_INTERRUPT) {
132 if (!map_gic_id(header, type, acpi_id, &apic_id))
133 break;
134 } 109 }
135 entry += header->length; 110 entry += header->length;
136 } 111 }
@@ -161,8 +136,6 @@ static int map_mat_entry(acpi_handle handle, int type, u32 acpi_id)
161 map_lapic_id(header, acpi_id, &apic_id); 136 map_lapic_id(header, acpi_id, &apic_id);
162 } else if (header->type == ACPI_MADT_TYPE_LOCAL_SAPIC) { 137 } else if (header->type == ACPI_MADT_TYPE_LOCAL_SAPIC) {
163 map_lsapic_id(header, type, acpi_id, &apic_id); 138 map_lsapic_id(header, type, acpi_id, &apic_id);
164 } else if (header->type == ACPI_MADT_TYPE_GENERIC_INTERRUPT) {
165 map_gic_id(header, type, acpi_id, &apic_id);
166 } 139 }
167 140
168exit: 141exit: