diff options
-rw-r--r-- | drivers/acpi/tables/tbutils.c | 24 | ||||
-rw-r--r-- | drivers/acpi/utilities/utdebug.c | 4 | ||||
-rw-r--r-- | drivers/acpi/utilities/utmisc.c | 6 | ||||
-rw-r--r-- | include/acpi/acconfig.h | 2 | ||||
-rw-r--r-- | include/acpi/acnames.h | 13 |
5 files changed, 30 insertions, 19 deletions
diff --git a/drivers/acpi/tables/tbutils.c b/drivers/acpi/tables/tbutils.c index 5bcafebb9ddf..4b2fbb592f49 100644 --- a/drivers/acpi/tables/tbutils.c +++ b/drivers/acpi/tables/tbutils.c | |||
@@ -80,14 +80,24 @@ acpi_status acpi_tb_is_table_installed(struct acpi_table_desc *new_table_desc) | |||
80 | /* Examine all installed tables of this type */ | 80 | /* Examine all installed tables of this type */ |
81 | 81 | ||
82 | while (table_desc) { | 82 | while (table_desc) { |
83 | /* Compare Revision and oem_table_id */ | 83 | /* |
84 | 84 | * If the table lengths match, perform a full bytewise compare. This | |
85 | * means that we will allow tables with duplicate oem_table_id(s), as | ||
86 | * long as the tables are different in some way. | ||
87 | * | ||
88 | * Checking if the table has been loaded into the namespace means that | ||
89 | * we don't check for duplicate tables during the initial installation | ||
90 | * of tables within the RSDT/XSDT. | ||
91 | */ | ||
85 | if ((table_desc->loaded_into_namespace) && | 92 | if ((table_desc->loaded_into_namespace) && |
86 | (table_desc->pointer->revision == | 93 | (table_desc->pointer->length == |
87 | new_table_desc->pointer->revision) && | 94 | new_table_desc->pointer->length) |
88 | (!ACPI_MEMCMP(table_desc->pointer->oem_table_id, | 95 | && |
89 | new_table_desc->pointer->oem_table_id, 8))) { | 96 | (!ACPI_MEMCMP |
90 | /* This table is already installed */ | 97 | ((const char *)table_desc->pointer, |
98 | (const char *)new_table_desc->pointer, | ||
99 | (acpi_size) new_table_desc->pointer->length))) { | ||
100 | /* Match: this table is already installed */ | ||
91 | 101 | ||
92 | ACPI_DEBUG_PRINT((ACPI_DB_TABLES, | 102 | ACPI_DEBUG_PRINT((ACPI_DB_TABLES, |
93 | "Table [%4.4s] already installed: Rev %X oem_table_id [%8.8s]\n", | 103 | "Table [%4.4s] already installed: Rev %X oem_table_id [%8.8s]\n", |
diff --git a/drivers/acpi/utilities/utdebug.c b/drivers/acpi/utilities/utdebug.c index 081a778aba88..d80e92639932 100644 --- a/drivers/acpi/utilities/utdebug.c +++ b/drivers/acpi/utilities/utdebug.c | |||
@@ -122,13 +122,13 @@ static const char *acpi_ut_trim_function_name(const char *function_name) | |||
122 | 122 | ||
123 | /* All Function names are longer than 4 chars, check is safe */ | 123 | /* All Function names are longer than 4 chars, check is safe */ |
124 | 124 | ||
125 | if (*(ACPI_CAST_PTR(u32, function_name)) == ACPI_FUNCTION_PREFIX1) { | 125 | if (*(ACPI_CAST_PTR(u32, function_name)) == ACPI_PREFIX_MIXED) { |
126 | /* This is the case where the original source has not been modified */ | 126 | /* This is the case where the original source has not been modified */ |
127 | 127 | ||
128 | return (function_name + 4); | 128 | return (function_name + 4); |
129 | } | 129 | } |
130 | 130 | ||
131 | if (*(ACPI_CAST_PTR(u32, function_name)) == ACPI_FUNCTION_PREFIX2) { | 131 | if (*(ACPI_CAST_PTR(u32, function_name)) == ACPI_PREFIX_LOWER) { |
132 | /* This is the case where the source has been 'linuxized' */ | 132 | /* This is the case where the source has been 'linuxized' */ |
133 | 133 | ||
134 | return (function_name + 5); | 134 | return (function_name + 5); |
diff --git a/drivers/acpi/utilities/utmisc.c b/drivers/acpi/utilities/utmisc.c index 474fe7cb6c09..f0275025b718 100644 --- a/drivers/acpi/utilities/utmisc.c +++ b/drivers/acpi/utilities/utmisc.c | |||
@@ -78,6 +78,10 @@ acpi_status acpi_ut_allocate_owner_id(acpi_owner_id * owner_id) | |||
78 | 78 | ||
79 | for (i = 0; i < 32; i++) { | 79 | for (i = 0; i < 32; i++) { |
80 | if (!(acpi_gbl_owner_id_mask & (1 << i))) { | 80 | if (!(acpi_gbl_owner_id_mask & (1 << i))) { |
81 | ACPI_DEBUG_PRINT((ACPI_DB_VALUES, | ||
82 | "Current owner_id mask: %8.8X New ID: %2.2X\n", | ||
83 | acpi_gbl_owner_id_mask, (i + 1))); | ||
84 | |||
81 | acpi_gbl_owner_id_mask |= (1 << i); | 85 | acpi_gbl_owner_id_mask |= (1 << i); |
82 | *owner_id = (acpi_owner_id) (i + 1); | 86 | *owner_id = (acpi_owner_id) (i + 1); |
83 | goto exit; | 87 | goto exit; |
@@ -119,7 +123,7 @@ void acpi_ut_release_owner_id(acpi_owner_id * owner_id_ptr) | |||
119 | acpi_owner_id owner_id = *owner_id_ptr; | 123 | acpi_owner_id owner_id = *owner_id_ptr; |
120 | acpi_status status; | 124 | acpi_status status; |
121 | 125 | ||
122 | ACPI_FUNCTION_TRACE("ut_release_owner_id"); | 126 | ACPI_FUNCTION_TRACE_U32("ut_release_owner_id", owner_id); |
123 | 127 | ||
124 | /* Always clear the input owner_id (zero is an invalid ID) */ | 128 | /* Always clear the input owner_id (zero is an invalid ID) */ |
125 | 129 | ||
diff --git a/include/acpi/acconfig.h b/include/acpi/acconfig.h index f3810cc5d48e..73c43a39663b 100644 --- a/include/acpi/acconfig.h +++ b/include/acpi/acconfig.h | |||
@@ -63,7 +63,7 @@ | |||
63 | 63 | ||
64 | /* Version string */ | 64 | /* Version string */ |
65 | 65 | ||
66 | #define ACPI_CA_VERSION 0x20050729 | 66 | #define ACPI_CA_VERSION 0x20050815 |
67 | 67 | ||
68 | /* | 68 | /* |
69 | * OS name, used for the _OS object. The _OS object is essentially obsolete, | 69 | * OS name, used for the _OS object. The _OS object is essentially obsolete, |
diff --git a/include/acpi/acnames.h b/include/acpi/acnames.h index 79152fbc8f8c..4f9063f3e951 100644 --- a/include/acpi/acnames.h +++ b/include/acpi/acnames.h | |||
@@ -71,16 +71,13 @@ | |||
71 | 71 | ||
72 | /* Definitions of the predefined namespace names */ | 72 | /* Definitions of the predefined namespace names */ |
73 | 73 | ||
74 | #define ACPI_UNKNOWN_NAME (u32) 0x3F3F3F3F /* Unknown name is "????" */ | 74 | #define ACPI_UNKNOWN_NAME (u32) 0x3F3F3F3F /* Unknown name is "????" */ |
75 | #define ACPI_ROOT_NAME (u32) 0x5F5F5F5C /* Root name is "\___" */ | 75 | #define ACPI_ROOT_NAME (u32) 0x5F5F5F5C /* Root name is "\___" */ |
76 | #define ACPI_SYS_BUS_NAME (u32) 0x5F53425F /* Sys bus name is "_SB_" */ | 76 | |
77 | #define ACPI_PREFIX_MIXED (u32) 0x69706341 /* "Acpi" */ | ||
78 | #define ACPI_PREFIX_LOWER (u32) 0x69706361 /* "acpi" */ | ||
77 | 79 | ||
78 | #define ACPI_NS_ROOT_PATH "\\" | 80 | #define ACPI_NS_ROOT_PATH "\\" |
79 | #define ACPI_NS_SYSTEM_BUS "_SB_" | 81 | #define ACPI_NS_SYSTEM_BUS "_SB_" |
80 | 82 | ||
81 | /*! [Begin] no source code translation (not handled by acpisrc) */ | ||
82 | #define ACPI_FUNCTION_PREFIX1 'ipcA' | ||
83 | #define ACPI_FUNCTION_PREFIX2 'ipca' | ||
84 | /*! [End] no source code translation !*/ | ||
85 | |||
86 | #endif /* __ACNAMES_H__ */ | 83 | #endif /* __ACNAMES_H__ */ |