diff mbox

ACPI / processor: Make it possible to get local x2apic id via _MAT

Message ID 1406604470-4800-1-git-send-email-hanjun.guo@linaro.org (mailing list archive)
State Accepted, archived
Headers show

Commit Message

Hanjun Guo July 29, 2014, 3:27 a.m. UTC
Logical processors with APIC ID values of 255 and greater are
required to have a Processor Device object and must convey the
processor's APIC information to OSPM using the Processor Local
X2APIC structure, but not until ACPI 5.1, X2APIC structure was
not supported in _MAT method.

_MAT is needed for CPU hotplug and system with more than 255
CPUs will definitely need X2APIC structure, so add its support
in map_mat_entry() to make it possible to get local x2apic id
via _MAT based on ACPI 5.1.

Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
---
 drivers/acpi/processor_core.c |    2 ++
 1 file changed, 2 insertions(+)

Comments

Rafael J. Wysocki July 31, 2014, 10:33 p.m. UTC | #1
On Tuesday, July 29, 2014 11:27:50 AM Hanjun Guo wrote:
> Logical processors with APIC ID values of 255 and greater are
> required to have a Processor Device object and must convey the
> processor's APIC information to OSPM using the Processor Local
> X2APIC structure, but not until ACPI 5.1, X2APIC structure was
> not supported in _MAT method.
> 
> _MAT is needed for CPU hotplug and system with more than 255
> CPUs will definitely need X2APIC structure, so add its support
> in map_mat_entry() to make it possible to get local x2apic id
> via _MAT based on ACPI 5.1.
> 
> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>

Applied, thanks!

> ---
>  drivers/acpi/processor_core.c |    2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
> index 00f48d1..e32321c 100644
> --- a/drivers/acpi/processor_core.c
> +++ b/drivers/acpi/processor_core.c
> @@ -129,6 +129,8 @@ 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_LOCAL_X2APIC) {
> +		map_x2apic_id(header, type, acpi_id, &apic_id);
>  	}
>  
>  exit:
>
diff mbox

Patch

diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
index 00f48d1..e32321c 100644
--- a/drivers/acpi/processor_core.c
+++ b/drivers/acpi/processor_core.c
@@ -129,6 +129,8 @@  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_LOCAL_X2APIC) {
+		map_x2apic_id(header, type, acpi_id, &apic_id);
 	}
 
 exit: