mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
Merge branch 'acpica'
* acpica: ACPICA: Update version to 20140724. ACPICA: ACPI 5.1: Update for PCCT table changes. ACPICA/ARM: ACPI 5.1: Update for GTDT table changes. ACPICA/ARM: ACPI 5.1: Update for MADT changes. ACPICA/ARM: ACPI 5.1: Update for FADT changes. ACPICA: ACPI 5.1: Support for the _CCA predifined name. ACPICA: ACPI 5.1: New notify value for System Affinity Update. ACPICA: ACPI 5.1: Support for the _DSD predefined name. ACPICA: Debug object: Add current value of Timer() to debug line prefix. ACPICA: acpihelp: Add UUID support, restructure some existing files. ACPICA: Utilities: Fix local printf issue. ACPICA: Tables: Update for DMAR table changes. ACPICA: Remove some extraneous printf arguments. ACPICA: Update for comments/formatting. No functional changes. ACPICA: Disassembler: Add support for the ToUUID opererator (macro). ACPICA: Remove a redundant cast to acpi_size for ACPI_OFFSET() macro. ACPICA: Work around an ancient GCC bug.
This commit is contained in:
commit
8b80c0f187
21 changed files with 468 additions and 104 deletions
|
|
@ -84,7 +84,7 @@ void *dmar_alloc_dev_scope(void *start, void *end, int *cnt)
|
|||
*cnt = 0;
|
||||
while (start < end) {
|
||||
scope = start;
|
||||
if (scope->entry_type == ACPI_DMAR_SCOPE_TYPE_ACPI ||
|
||||
if (scope->entry_type == ACPI_DMAR_SCOPE_TYPE_NAMESPACE ||
|
||||
scope->entry_type == ACPI_DMAR_SCOPE_TYPE_ENDPOINT ||
|
||||
scope->entry_type == ACPI_DMAR_SCOPE_TYPE_BRIDGE)
|
||||
(*cnt)++;
|
||||
|
|
@ -380,7 +380,7 @@ static int __init dmar_parse_one_andd(struct acpi_dmar_header *header)
|
|||
struct acpi_dmar_andd *andd = (void *)header;
|
||||
|
||||
/* Check for NUL termination within the designated length */
|
||||
if (strnlen(andd->object_name, header->length - 8) == header->length - 8) {
|
||||
if (strnlen(andd->device_name, header->length - 8) == header->length - 8) {
|
||||
WARN_TAINT(1, TAINT_FIRMWARE_WORKAROUND,
|
||||
"Your BIOS is broken; ANDD object name is not NUL-terminated\n"
|
||||
"BIOS vendor: %s; Ver: %s; Product Version: %s\n",
|
||||
|
|
@ -390,7 +390,7 @@ static int __init dmar_parse_one_andd(struct acpi_dmar_header *header)
|
|||
return -EINVAL;
|
||||
}
|
||||
pr_info("ANDD device: %x name: %s\n", andd->device_number,
|
||||
andd->object_name);
|
||||
andd->device_name);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -448,17 +448,17 @@ dmar_table_print_dmar_entry(struct acpi_dmar_header *header)
|
|||
(unsigned long long)rmrr->base_address,
|
||||
(unsigned long long)rmrr->end_address);
|
||||
break;
|
||||
case ACPI_DMAR_TYPE_ATSR:
|
||||
case ACPI_DMAR_TYPE_ROOT_ATS:
|
||||
atsr = container_of(header, struct acpi_dmar_atsr, header);
|
||||
pr_info("ATSR flags: %#x\n", atsr->flags);
|
||||
break;
|
||||
case ACPI_DMAR_HARDWARE_AFFINITY:
|
||||
case ACPI_DMAR_TYPE_HARDWARE_AFFINITY:
|
||||
rhsa = container_of(header, struct acpi_dmar_rhsa, header);
|
||||
pr_info("RHSA base: %#016Lx proximity domain: %#x\n",
|
||||
(unsigned long long)rhsa->base_address,
|
||||
rhsa->proximity_domain);
|
||||
break;
|
||||
case ACPI_DMAR_TYPE_ANDD:
|
||||
case ACPI_DMAR_TYPE_NAMESPACE:
|
||||
/* We don't print this here because we need to sanity-check
|
||||
it first. So print it in dmar_parse_one_andd() instead. */
|
||||
break;
|
||||
|
|
@ -539,15 +539,15 @@ parse_dmar_table(void)
|
|||
case ACPI_DMAR_TYPE_RESERVED_MEMORY:
|
||||
ret = dmar_parse_one_rmrr(entry_header);
|
||||
break;
|
||||
case ACPI_DMAR_TYPE_ATSR:
|
||||
case ACPI_DMAR_TYPE_ROOT_ATS:
|
||||
ret = dmar_parse_one_atsr(entry_header);
|
||||
break;
|
||||
case ACPI_DMAR_HARDWARE_AFFINITY:
|
||||
case ACPI_DMAR_TYPE_HARDWARE_AFFINITY:
|
||||
#ifdef CONFIG_ACPI_NUMA
|
||||
ret = dmar_parse_one_rhsa(entry_header);
|
||||
#endif
|
||||
break;
|
||||
case ACPI_DMAR_TYPE_ANDD:
|
||||
case ACPI_DMAR_TYPE_NAMESPACE:
|
||||
ret = dmar_parse_one_andd(entry_header);
|
||||
break;
|
||||
default:
|
||||
|
|
@ -631,7 +631,7 @@ static void __init dmar_acpi_insert_dev_scope(u8 device_number,
|
|||
for (scope = (void *)(drhd + 1);
|
||||
(unsigned long)scope < ((unsigned long)drhd) + drhd->header.length;
|
||||
scope = ((void *)scope) + scope->length) {
|
||||
if (scope->entry_type != ACPI_DMAR_SCOPE_TYPE_ACPI)
|
||||
if (scope->entry_type != ACPI_DMAR_SCOPE_TYPE_NAMESPACE)
|
||||
continue;
|
||||
if (scope->enumeration_id != device_number)
|
||||
continue;
|
||||
|
|
@ -666,21 +666,21 @@ static int __init dmar_acpi_dev_scope_init(void)
|
|||
for (andd = (void *)dmar_tbl + sizeof(struct acpi_table_dmar);
|
||||
((unsigned long)andd) < ((unsigned long)dmar_tbl) + dmar_tbl->length;
|
||||
andd = ((void *)andd) + andd->header.length) {
|
||||
if (andd->header.type == ACPI_DMAR_TYPE_ANDD) {
|
||||
if (andd->header.type == ACPI_DMAR_TYPE_NAMESPACE) {
|
||||
acpi_handle h;
|
||||
struct acpi_device *adev;
|
||||
|
||||
if (!ACPI_SUCCESS(acpi_get_handle(ACPI_ROOT_OBJECT,
|
||||
andd->object_name,
|
||||
andd->device_name,
|
||||
&h))) {
|
||||
pr_err("Failed to find handle for ACPI object %s\n",
|
||||
andd->object_name);
|
||||
andd->device_name);
|
||||
continue;
|
||||
}
|
||||
acpi_bus_get_device(h, &adev);
|
||||
if (!adev) {
|
||||
pr_err("Failed to get device for ACPI object %s\n",
|
||||
andd->object_name);
|
||||
andd->device_name);
|
||||
continue;
|
||||
}
|
||||
dmar_acpi_insert_dev_scope(andd->device_number, adev);
|
||||
|
|
|
|||
Loading…
Reference in a new issue