diff options
author | Hanjun Guo <hanjun.guo@linaro.org> | 2014-03-25 20:36:23 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-03-26 11:30:34 -0400 |
commit | 3e9eac50cdcac71a74ca4a8cb587799f474ca62d (patch) | |
tree | 8274fed8949264170869c00e34bf95a7424e03f8 /drivers/acpi/processor_core.c | |
parent | 38953d3945aedf8e198b75ff09b22e369f14566f (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.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, | |||
71 | return 0; | 71 | return 0; |
72 | } | 72 | } |
73 | 73 | ||
74 | static 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 | |||
96 | static int map_madt_entry(int type, u32 acpi_id) | 74 | static 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 | ||
168 | exit: | 141 | exit: |