forked from Minki/linux
Merge back ACPICA changes for v5.2.
This commit is contained in:
commit
f456277ee1
@ -276,7 +276,7 @@ static unsigned long get_acpi_srat_table(void)
|
|||||||
if (acpi_table) {
|
if (acpi_table) {
|
||||||
header = (struct acpi_table_header *)acpi_table;
|
header = (struct acpi_table_header *)acpi_table;
|
||||||
|
|
||||||
if (ACPI_COMPARE_NAME(header->signature, ACPI_SIG_SRAT))
|
if (ACPI_COMPARE_NAMESEG(header->signature, ACPI_SIG_SRAT))
|
||||||
return acpi_table;
|
return acpi_table;
|
||||||
}
|
}
|
||||||
entry += size;
|
entry += size;
|
||||||
|
@ -109,7 +109,7 @@ static ssize_t acpi_table_signature_show(struct config_item *cfg, char *str)
|
|||||||
if (!h)
|
if (!h)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
return sprintf(str, "%.*s\n", ACPI_NAME_SIZE, h->signature);
|
return sprintf(str, "%.*s\n", ACPI_NAMESEG_SIZE, h->signature);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t acpi_table_length_show(struct config_item *cfg, char *str)
|
static ssize_t acpi_table_length_show(struct config_item *cfg, char *str)
|
||||||
@ -170,7 +170,7 @@ static ssize_t acpi_table_asl_compiler_id_show(struct config_item *cfg,
|
|||||||
if (!h)
|
if (!h)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
return sprintf(str, "%.*s\n", ACPI_NAME_SIZE, h->asl_compiler_id);
|
return sprintf(str, "%.*s\n", ACPI_NAMESEG_SIZE, h->asl_compiler_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t acpi_table_asl_compiler_revision_show(struct config_item *cfg,
|
static ssize_t acpi_table_asl_compiler_revision_show(struct config_item *cfg,
|
||||||
|
@ -293,7 +293,7 @@ acpi_status (*acpi_internal_method) (struct acpi_walk_state * walk_state);
|
|||||||
* expected_return_btypes - Allowed type(s) for the return value
|
* expected_return_btypes - Allowed type(s) for the return value
|
||||||
*/
|
*/
|
||||||
struct acpi_name_info {
|
struct acpi_name_info {
|
||||||
char name[ACPI_NAME_SIZE];
|
char name[ACPI_NAMESEG_SIZE];
|
||||||
u16 argument_list;
|
u16 argument_list;
|
||||||
u8 expected_btypes;
|
u8 expected_btypes;
|
||||||
};
|
};
|
||||||
@ -370,7 +370,7 @@ typedef acpi_status (*acpi_object_converter) (struct acpi_namespace_node *
|
|||||||
converted_object);
|
converted_object);
|
||||||
|
|
||||||
struct acpi_simple_repair_info {
|
struct acpi_simple_repair_info {
|
||||||
char name[ACPI_NAME_SIZE];
|
char name[ACPI_NAMESEG_SIZE];
|
||||||
u32 unexpected_btypes;
|
u32 unexpected_btypes;
|
||||||
u32 package_index;
|
u32 package_index;
|
||||||
acpi_object_converter object_converter;
|
acpi_object_converter object_converter;
|
||||||
|
@ -453,7 +453,7 @@ acpi_db_execute(char *name, char **args, acpi_object_type *types, u32 flags)
|
|||||||
|
|
||||||
/* Dump a _PLD buffer if present */
|
/* Dump a _PLD buffer if present */
|
||||||
|
|
||||||
if (ACPI_COMPARE_NAME
|
if (ACPI_COMPARE_NAMESEG
|
||||||
((ACPI_CAST_PTR
|
((ACPI_CAST_PTR
|
||||||
(struct acpi_namespace_node,
|
(struct acpi_namespace_node,
|
||||||
acpi_gbl_db_method_info.method)->name.ascii),
|
acpi_gbl_db_method_info.method)->name.ascii),
|
||||||
|
@ -354,7 +354,7 @@ acpi_status acpi_db_find_name_in_namespace(char *name_arg)
|
|||||||
char acpi_name[5] = "____";
|
char acpi_name[5] = "____";
|
||||||
char *acpi_name_ptr = acpi_name;
|
char *acpi_name_ptr = acpi_name;
|
||||||
|
|
||||||
if (strlen(name_arg) > ACPI_NAME_SIZE) {
|
if (strlen(name_arg) > ACPI_NAMESEG_SIZE) {
|
||||||
acpi_os_printf("Name must be no longer than 4 characters\n");
|
acpi_os_printf("Name must be no longer than 4 characters\n");
|
||||||
return (AE_OK);
|
return (AE_OK);
|
||||||
}
|
}
|
||||||
|
@ -200,7 +200,7 @@ acpi_ds_initialize_objects(u32 table_index,
|
|||||||
|
|
||||||
/* DSDT is always the first AML table */
|
/* DSDT is always the first AML table */
|
||||||
|
|
||||||
if (ACPI_COMPARE_NAME(table->signature, ACPI_SIG_DSDT)) {
|
if (ACPI_COMPARE_NAMESEG(table->signature, ACPI_SIG_DSDT)) {
|
||||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_INIT,
|
ACPI_DEBUG_PRINT_RAW((ACPI_DB_INIT,
|
||||||
"\nInitializing Namespace objects:\n"));
|
"\nInitializing Namespace objects:\n"));
|
||||||
}
|
}
|
||||||
|
@ -292,7 +292,7 @@ acpi_ev_match_gpe_method(acpi_handle obj_handle,
|
|||||||
acpi_status status;
|
acpi_status status;
|
||||||
u32 gpe_number;
|
u32 gpe_number;
|
||||||
u8 temp_gpe_number;
|
u8 temp_gpe_number;
|
||||||
char name[ACPI_NAME_SIZE + 1];
|
char name[ACPI_NAMESEG_SIZE + 1];
|
||||||
u8 type;
|
u8 type;
|
||||||
|
|
||||||
ACPI_FUNCTION_TRACE(ev_match_gpe_method);
|
ACPI_FUNCTION_TRACE(ev_match_gpe_method);
|
||||||
@ -310,7 +310,7 @@ acpi_ev_match_gpe_method(acpi_handle obj_handle,
|
|||||||
* 1) Extract the method name and null terminate it
|
* 1) Extract the method name and null terminate it
|
||||||
*/
|
*/
|
||||||
ACPI_MOVE_32_TO_32(name, &method_node->name.integer);
|
ACPI_MOVE_32_TO_32(name, &method_node->name.integer);
|
||||||
name[ACPI_NAME_SIZE] = 0;
|
name[ACPI_NAMESEG_SIZE] = 0;
|
||||||
|
|
||||||
/* 2) Name must begin with an underscore */
|
/* 2) Name must begin with an underscore */
|
||||||
|
|
||||||
|
@ -53,10 +53,10 @@ static char *acpi_ex_allocate_name_string(u32 prefix_count, u32 num_name_segs)
|
|||||||
|
|
||||||
/* Special case for root */
|
/* Special case for root */
|
||||||
|
|
||||||
size_needed = 1 + (ACPI_NAME_SIZE * num_name_segs) + 2 + 1;
|
size_needed = 1 + (ACPI_NAMESEG_SIZE * num_name_segs) + 2 + 1;
|
||||||
} else {
|
} else {
|
||||||
size_needed =
|
size_needed =
|
||||||
prefix_count + (ACPI_NAME_SIZE * num_name_segs) + 2 + 1;
|
prefix_count + (ACPI_NAMESEG_SIZE * num_name_segs) + 2 + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -141,7 +141,7 @@ static acpi_status acpi_ex_name_segment(u8 ** in_aml_address, char *name_string)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (index = 0;
|
for (index = 0;
|
||||||
(index < ACPI_NAME_SIZE)
|
(index < ACPI_NAMESEG_SIZE)
|
||||||
&& (acpi_ut_valid_name_char(*aml_address, 0)); index++) {
|
&& (acpi_ut_valid_name_char(*aml_address, 0)); index++) {
|
||||||
char_buf[index] = *aml_address++;
|
char_buf[index] = *aml_address++;
|
||||||
}
|
}
|
||||||
|
@ -683,7 +683,7 @@ acpi_ns_lookup(union acpi_generic_state *scope_info,
|
|||||||
|
|
||||||
/* Point to next name segment and make this node current */
|
/* Point to next name segment and make this node current */
|
||||||
|
|
||||||
path += ACPI_NAME_SIZE;
|
path += ACPI_NAMESEG_SIZE;
|
||||||
current_node = this_node;
|
current_node = this_node;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,6 +74,10 @@ void acpi_ns_delete_node(struct acpi_namespace_node *node)
|
|||||||
|
|
||||||
ACPI_FUNCTION_NAME(ns_delete_node);
|
ACPI_FUNCTION_NAME(ns_delete_node);
|
||||||
|
|
||||||
|
if (!node) {
|
||||||
|
return_VOID;
|
||||||
|
}
|
||||||
|
|
||||||
/* Detach an object if there is one */
|
/* Detach an object if there is one */
|
||||||
|
|
||||||
acpi_ns_detach_object(node);
|
acpi_ns_detach_object(node);
|
||||||
|
@ -70,7 +70,7 @@ void acpi_ns_print_pathname(u32 num_segments, const char *pathname)
|
|||||||
acpi_os_printf("?");
|
acpi_os_printf("?");
|
||||||
}
|
}
|
||||||
|
|
||||||
pathname += ACPI_NAME_SIZE;
|
pathname += ACPI_NAMESEG_SIZE;
|
||||||
num_segments--;
|
num_segments--;
|
||||||
if (num_segments) {
|
if (num_segments) {
|
||||||
acpi_os_printf(".");
|
acpi_os_printf(".");
|
||||||
|
@ -478,7 +478,7 @@ acpi_ns_find_ini_methods(acpi_handle obj_handle,
|
|||||||
|
|
||||||
/* We are only looking for methods named _INI */
|
/* We are only looking for methods named _INI */
|
||||||
|
|
||||||
if (!ACPI_COMPARE_NAME(node->name.ascii, METHOD_NAME__INI)) {
|
if (!ACPI_COMPARE_NAMESEG(node->name.ascii, METHOD_NAME__INI)) {
|
||||||
return (AE_OK);
|
return (AE_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -641,7 +641,7 @@ acpi_ns_init_one_device(acpi_handle obj_handle,
|
|||||||
* Note: We know there is an _INI within this subtree, but it may not be
|
* Note: We know there is an _INI within this subtree, but it may not be
|
||||||
* under this particular device, it may be lower in the branch.
|
* under this particular device, it may be lower in the branch.
|
||||||
*/
|
*/
|
||||||
if (!ACPI_COMPARE_NAME(device_node->name.ascii, "_SB_") ||
|
if (!ACPI_COMPARE_NAMESEG(device_node->name.ascii, "_SB_") ||
|
||||||
device_node->parent != acpi_gbl_root_node) {
|
device_node->parent != acpi_gbl_root_node) {
|
||||||
ACPI_DEBUG_EXEC(acpi_ut_display_init_pathname
|
ACPI_DEBUG_EXEC(acpi_ut_display_init_pathname
|
||||||
(ACPI_TYPE_METHOD, device_node,
|
(ACPI_TYPE_METHOD, device_node,
|
||||||
|
@ -108,8 +108,8 @@ acpi_ns_handle_to_name(acpi_handle target_handle, struct acpi_buffer *buffer)
|
|||||||
/* Just copy the ACPI name from the Node and zero terminate it */
|
/* Just copy the ACPI name from the Node and zero terminate it */
|
||||||
|
|
||||||
node_name = acpi_ut_get_node_name(node);
|
node_name = acpi_ut_get_node_name(node);
|
||||||
ACPI_MOVE_NAME(buffer->pointer, node_name);
|
ACPI_COPY_NAMESEG(buffer->pointer, node_name);
|
||||||
((char *)buffer->pointer)[ACPI_NAME_SIZE] = 0;
|
((char *)buffer->pointer)[ACPI_NAMESEG_SIZE] = 0;
|
||||||
|
|
||||||
ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "%4.4s\n", (char *)buffer->pointer));
|
ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "%4.4s\n", (char *)buffer->pointer));
|
||||||
return_ACPI_STATUS(AE_OK);
|
return_ACPI_STATUS(AE_OK);
|
||||||
@ -198,7 +198,7 @@ acpi_ns_build_normalized_path(struct acpi_namespace_node *node,
|
|||||||
char *full_path, u32 path_size, u8 no_trailing)
|
char *full_path, u32 path_size, u8 no_trailing)
|
||||||
{
|
{
|
||||||
u32 length = 0, i;
|
u32 length = 0, i;
|
||||||
char name[ACPI_NAME_SIZE];
|
char name[ACPI_NAMESEG_SIZE];
|
||||||
u8 do_no_trailing;
|
u8 do_no_trailing;
|
||||||
char c, *left, *right;
|
char c, *left, *right;
|
||||||
struct acpi_namespace_node *next_node;
|
struct acpi_namespace_node *next_node;
|
||||||
@ -446,7 +446,7 @@ static void acpi_ns_normalize_pathname(char *original_path)
|
|||||||
|
|
||||||
/* Do one nameseg at a time */
|
/* Do one nameseg at a time */
|
||||||
|
|
||||||
for (i = 0; (i < ACPI_NAME_SIZE) && *input_path; i++) {
|
for (i = 0; (i < ACPI_NAMESEG_SIZE) && *input_path; i++) {
|
||||||
if ((i == 0) || (*input_path != '_')) { /* First char is allowed to be underscore */
|
if ((i == 0) || (*input_path != '_')) { /* First char is allowed to be underscore */
|
||||||
*new_path = *input_path;
|
*new_path = *input_path;
|
||||||
new_path++;
|
new_path++;
|
||||||
|
@ -203,7 +203,7 @@ acpi_ns_one_complete_parse(u32 pass_number,
|
|||||||
|
|
||||||
/* Found OSDT table, enable the namespace override feature */
|
/* Found OSDT table, enable the namespace override feature */
|
||||||
|
|
||||||
if (ACPI_COMPARE_NAME(table->signature, ACPI_SIG_OSDT) &&
|
if (ACPI_COMPARE_NAMESEG(table->signature, ACPI_SIG_OSDT) &&
|
||||||
pass_number == ACPI_IMODE_LOAD_PASS1) {
|
pass_number == ACPI_IMODE_LOAD_PASS1) {
|
||||||
walk_state->namespace_override = TRUE;
|
walk_state->namespace_override = TRUE;
|
||||||
}
|
}
|
||||||
|
@ -316,7 +316,7 @@ static const struct acpi_simple_repair_info *acpi_ns_match_simple_repair(struct
|
|||||||
|
|
||||||
this_name = acpi_object_repair_info;
|
this_name = acpi_object_repair_info;
|
||||||
while (this_name->object_converter) {
|
while (this_name->object_converter) {
|
||||||
if (ACPI_COMPARE_NAME(node->name.ascii, this_name->name)) {
|
if (ACPI_COMPARE_NAMESEG(node->name.ascii, this_name->name)) {
|
||||||
|
|
||||||
/* Check if we can actually repair this name/type combination */
|
/* Check if we can actually repair this name/type combination */
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ acpi_status (*acpi_repair_function) (struct acpi_evaluate_info * info,
|
|||||||
return_object_ptr);
|
return_object_ptr);
|
||||||
|
|
||||||
typedef struct acpi_repair_info {
|
typedef struct acpi_repair_info {
|
||||||
char name[ACPI_NAME_SIZE];
|
char name[ACPI_NAMESEG_SIZE];
|
||||||
acpi_repair_function repair_function;
|
acpi_repair_function repair_function;
|
||||||
|
|
||||||
} acpi_repair_info;
|
} acpi_repair_info;
|
||||||
@ -188,7 +188,7 @@ static const struct acpi_repair_info *acpi_ns_match_complex_repair(struct
|
|||||||
|
|
||||||
this_name = acpi_ns_repairable_names;
|
this_name = acpi_ns_repairable_names;
|
||||||
while (this_name->repair_function) {
|
while (this_name->repair_function) {
|
||||||
if (ACPI_COMPARE_NAME(node->name.ascii, this_name->name)) {
|
if (ACPI_COMPARE_NAMESEG(node->name.ascii, this_name->name)) {
|
||||||
return (this_name);
|
return (this_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ void acpi_ns_get_internal_name_length(struct acpi_namestring_info *info)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
info->length = (ACPI_NAME_SIZE * info->num_segments) +
|
info->length = (ACPI_NAMESEG_SIZE * info->num_segments) +
|
||||||
4 + info->num_carats;
|
4 + info->num_carats;
|
||||||
|
|
||||||
info->next_external_char = next_external_char;
|
info->next_external_char = next_external_char;
|
||||||
@ -249,7 +249,7 @@ acpi_status acpi_ns_build_internal_name(struct acpi_namestring_info *info)
|
|||||||
/* Build the name (minus path separators) */
|
/* Build the name (minus path separators) */
|
||||||
|
|
||||||
for (; num_segments; num_segments--) {
|
for (; num_segments; num_segments--) {
|
||||||
for (i = 0; i < ACPI_NAME_SIZE; i++) {
|
for (i = 0; i < ACPI_NAMESEG_SIZE; i++) {
|
||||||
if (ACPI_IS_PATH_SEPARATOR(*external_name) ||
|
if (ACPI_IS_PATH_SEPARATOR(*external_name) ||
|
||||||
(*external_name == 0)) {
|
(*external_name == 0)) {
|
||||||
|
|
||||||
@ -274,7 +274,7 @@ acpi_status acpi_ns_build_internal_name(struct acpi_namestring_info *info)
|
|||||||
/* Move on the next segment */
|
/* Move on the next segment */
|
||||||
|
|
||||||
external_name++;
|
external_name++;
|
||||||
result += ACPI_NAME_SIZE;
|
result += ACPI_NAMESEG_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Terminate the string */
|
/* Terminate the string */
|
||||||
@ -489,12 +489,12 @@ acpi_ns_externalize_name(u32 internal_name_length,
|
|||||||
|
|
||||||
/* Copy and validate the 4-char name segment */
|
/* Copy and validate the 4-char name segment */
|
||||||
|
|
||||||
ACPI_MOVE_NAME(&(*converted_name)[j],
|
ACPI_COPY_NAMESEG(&(*converted_name)[j],
|
||||||
&internal_name[names_index]);
|
&internal_name[names_index]);
|
||||||
acpi_ut_repair_name(&(*converted_name)[j]);
|
acpi_ut_repair_name(&(*converted_name)[j]);
|
||||||
|
|
||||||
j += ACPI_NAME_SIZE;
|
j += ACPI_NAMESEG_SIZE;
|
||||||
names_index += ACPI_NAME_SIZE;
|
names_index += ACPI_NAMESEG_SIZE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -495,8 +495,8 @@ acpi_status acpi_install_method(u8 *buffer)
|
|||||||
|
|
||||||
/* Table must be a DSDT or SSDT */
|
/* Table must be a DSDT or SSDT */
|
||||||
|
|
||||||
if (!ACPI_COMPARE_NAME(table->signature, ACPI_SIG_DSDT) &&
|
if (!ACPI_COMPARE_NAMESEG(table->signature, ACPI_SIG_DSDT) &&
|
||||||
!ACPI_COMPARE_NAME(table->signature, ACPI_SIG_SSDT)) {
|
!ACPI_COMPARE_NAMESEG(table->signature, ACPI_SIG_SSDT)) {
|
||||||
return (AE_BAD_HEADER);
|
return (AE_BAD_HEADER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -150,21 +150,21 @@ char *acpi_ps_get_next_namestring(struct acpi_parse_state *parser_state)
|
|||||||
|
|
||||||
/* Two name segments */
|
/* Two name segments */
|
||||||
|
|
||||||
end += 1 + (2 * ACPI_NAME_SIZE);
|
end += 1 + (2 * ACPI_NAMESEG_SIZE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AML_MULTI_NAME_PREFIX:
|
case AML_MULTI_NAME_PREFIX:
|
||||||
|
|
||||||
/* Multiple name segments, 4 chars each, count in next byte */
|
/* Multiple name segments, 4 chars each, count in next byte */
|
||||||
|
|
||||||
end += 2 + (*(end + 1) * ACPI_NAME_SIZE);
|
end += 2 + (*(end + 1) * ACPI_NAMESEG_SIZE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
||||||
/* Single name segment */
|
/* Single name segment */
|
||||||
|
|
||||||
end += ACPI_NAME_SIZE;
|
end += ACPI_NAMESEG_SIZE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -522,7 +522,7 @@ static union acpi_parse_object *acpi_ps_get_next_field(struct acpi_parse_state
|
|||||||
|
|
||||||
ACPI_MOVE_32_TO_32(&name, parser_state->aml);
|
ACPI_MOVE_32_TO_32(&name, parser_state->aml);
|
||||||
acpi_ps_set_name(field, name);
|
acpi_ps_set_name(field, name);
|
||||||
parser_state->aml += ACPI_NAME_SIZE;
|
parser_state->aml += ACPI_NAMESEG_SIZE;
|
||||||
|
|
||||||
ASL_CV_CAPTURE_COMMENTS_ONLY(parser_state);
|
ASL_CV_CAPTURE_COMMENTS_ONLY(parser_state);
|
||||||
|
|
||||||
|
@ -603,10 +603,10 @@ acpi_walk_resources(acpi_handle device_handle,
|
|||||||
/* Parameter validation */
|
/* Parameter validation */
|
||||||
|
|
||||||
if (!device_handle || !user_function || !name ||
|
if (!device_handle || !user_function || !name ||
|
||||||
(!ACPI_COMPARE_NAME(name, METHOD_NAME__CRS) &&
|
(!ACPI_COMPARE_NAMESEG(name, METHOD_NAME__CRS) &&
|
||||||
!ACPI_COMPARE_NAME(name, METHOD_NAME__PRS) &&
|
!ACPI_COMPARE_NAMESEG(name, METHOD_NAME__PRS) &&
|
||||||
!ACPI_COMPARE_NAME(name, METHOD_NAME__AEI) &&
|
!ACPI_COMPARE_NAMESEG(name, METHOD_NAME__AEI) &&
|
||||||
!ACPI_COMPARE_NAME(name, METHOD_NAME__DMA))) {
|
!ACPI_COMPARE_NAMESEG(name, METHOD_NAME__DMA))) {
|
||||||
return_ACPI_STATUS(AE_BAD_PARAMETER);
|
return_ACPI_STATUS(AE_BAD_PARAMETER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -480,7 +480,8 @@ acpi_tb_verify_temp_table(struct acpi_table_desc *table_desc,
|
|||||||
|
|
||||||
/* If a particular signature is expected (DSDT/FACS), it must match */
|
/* If a particular signature is expected (DSDT/FACS), it must match */
|
||||||
|
|
||||||
if (signature && !ACPI_COMPARE_NAME(&table_desc->signature, signature)) {
|
if (signature &&
|
||||||
|
!ACPI_COMPARE_NAMESEG(&table_desc->signature, signature)) {
|
||||||
ACPI_BIOS_ERROR((AE_INFO,
|
ACPI_BIOS_ERROR((AE_INFO,
|
||||||
"Invalid signature 0x%X for ACPI table, expected [%s]",
|
"Invalid signature 0x%X for ACPI table, expected [%s]",
|
||||||
table_desc->signature.integer, signature));
|
table_desc->signature.integer, signature));
|
||||||
|
@ -56,7 +56,7 @@ acpi_tb_find_table(char *signature,
|
|||||||
/* Normalize the input strings */
|
/* Normalize the input strings */
|
||||||
|
|
||||||
memset(&header, 0, sizeof(struct acpi_table_header));
|
memset(&header, 0, sizeof(struct acpi_table_header));
|
||||||
ACPI_MOVE_NAME(header.signature, signature);
|
ACPI_COPY_NAMESEG(header.signature, signature);
|
||||||
strncpy(header.oem_id, oem_id, ACPI_OEM_ID_SIZE);
|
strncpy(header.oem_id, oem_id, ACPI_OEM_ID_SIZE);
|
||||||
strncpy(header.oem_table_id, oem_table_id, ACPI_OEM_TABLE_ID_SIZE);
|
strncpy(header.oem_table_id, oem_table_id, ACPI_OEM_TABLE_ID_SIZE);
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ acpi_tb_find_table(char *signature,
|
|||||||
(void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES);
|
(void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES);
|
||||||
for (i = 0; i < acpi_gbl_root_table_list.current_table_count; ++i) {
|
for (i = 0; i < acpi_gbl_root_table_list.current_table_count; ++i) {
|
||||||
if (memcmp(&(acpi_gbl_root_table_list.tables[i].signature),
|
if (memcmp(&(acpi_gbl_root_table_list.tables[i].signature),
|
||||||
header.signature, ACPI_NAME_SIZE)) {
|
header.signature, ACPI_NAMESEG_SIZE)) {
|
||||||
|
|
||||||
/* Not the requested table */
|
/* Not the requested table */
|
||||||
|
|
||||||
@ -94,14 +94,14 @@ acpi_tb_find_table(char *signature,
|
|||||||
|
|
||||||
if (!memcmp
|
if (!memcmp
|
||||||
(acpi_gbl_root_table_list.tables[i].pointer->signature,
|
(acpi_gbl_root_table_list.tables[i].pointer->signature,
|
||||||
header.signature, ACPI_NAME_SIZE) && (!oem_id[0]
|
header.signature, ACPI_NAMESEG_SIZE) && (!oem_id[0]
|
||||||
||
|
||
|
||||||
!memcmp
|
!memcmp
|
||||||
(acpi_gbl_root_table_list.
|
(acpi_gbl_root_table_list.
|
||||||
tables[i].pointer->
|
tables[i].
|
||||||
oem_id,
|
pointer->oem_id,
|
||||||
header.oem_id,
|
header.oem_id,
|
||||||
ACPI_OEM_ID_SIZE))
|
ACPI_OEM_ID_SIZE))
|
||||||
&& (!oem_table_id[0]
|
&& (!oem_table_id[0]
|
||||||
|| !memcmp(acpi_gbl_root_table_list.tables[i].pointer->
|
|| !memcmp(acpi_gbl_root_table_list.tables[i].pointer->
|
||||||
oem_table_id, header.oem_table_id,
|
oem_table_id, header.oem_table_id,
|
||||||
|
@ -120,7 +120,7 @@ acpi_tb_install_standard_table(acpi_physical_address address,
|
|||||||
*/
|
*/
|
||||||
if (!reload &&
|
if (!reload &&
|
||||||
acpi_gbl_disable_ssdt_table_install &&
|
acpi_gbl_disable_ssdt_table_install &&
|
||||||
ACPI_COMPARE_NAME(&new_table_desc.signature, ACPI_SIG_SSDT)) {
|
ACPI_COMPARE_NAMESEG(&new_table_desc.signature, ACPI_SIG_SSDT)) {
|
||||||
ACPI_INFO(("Ignoring installation of %4.4s at %8.8X%8.8X",
|
ACPI_INFO(("Ignoring installation of %4.4s at %8.8X%8.8X",
|
||||||
new_table_desc.signature.ascii,
|
new_table_desc.signature.ascii,
|
||||||
ACPI_FORMAT_UINT64(address)));
|
ACPI_FORMAT_UINT64(address)));
|
||||||
|
@ -69,10 +69,10 @@ acpi_tb_cleanup_table_header(struct acpi_table_header *out_header,
|
|||||||
|
|
||||||
memcpy(out_header, header, sizeof(struct acpi_table_header));
|
memcpy(out_header, header, sizeof(struct acpi_table_header));
|
||||||
|
|
||||||
acpi_tb_fix_string(out_header->signature, ACPI_NAME_SIZE);
|
acpi_tb_fix_string(out_header->signature, ACPI_NAMESEG_SIZE);
|
||||||
acpi_tb_fix_string(out_header->oem_id, ACPI_OEM_ID_SIZE);
|
acpi_tb_fix_string(out_header->oem_id, ACPI_OEM_ID_SIZE);
|
||||||
acpi_tb_fix_string(out_header->oem_table_id, ACPI_OEM_TABLE_ID_SIZE);
|
acpi_tb_fix_string(out_header->oem_table_id, ACPI_OEM_TABLE_ID_SIZE);
|
||||||
acpi_tb_fix_string(out_header->asl_compiler_id, ACPI_NAME_SIZE);
|
acpi_tb_fix_string(out_header->asl_compiler_id, ACPI_NAMESEG_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
@ -94,7 +94,7 @@ acpi_tb_print_table_header(acpi_physical_address address,
|
|||||||
{
|
{
|
||||||
struct acpi_table_header local_header;
|
struct acpi_table_header local_header;
|
||||||
|
|
||||||
if (ACPI_COMPARE_NAME(header->signature, ACPI_SIG_FACS)) {
|
if (ACPI_COMPARE_NAMESEG(header->signature, ACPI_SIG_FACS)) {
|
||||||
|
|
||||||
/* FACS only has signature and length fields */
|
/* FACS only has signature and length fields */
|
||||||
|
|
||||||
@ -158,8 +158,8 @@ acpi_status acpi_tb_verify_checksum(struct acpi_table_header *table, u32 length)
|
|||||||
* They are the odd tables, have no standard ACPI header and no checksum
|
* They are the odd tables, have no standard ACPI header and no checksum
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (ACPI_COMPARE_NAME(table->signature, ACPI_SIG_S3PT) ||
|
if (ACPI_COMPARE_NAMESEG(table->signature, ACPI_SIG_S3PT) ||
|
||||||
ACPI_COMPARE_NAME(table->signature, ACPI_SIG_FACS)) {
|
ACPI_COMPARE_NAMESEG(table->signature, ACPI_SIG_FACS)) {
|
||||||
return (AE_OK);
|
return (AE_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -332,9 +332,9 @@ acpi_tb_parse_root_table(acpi_physical_address rsdp_address)
|
|||||||
&table_index);
|
&table_index);
|
||||||
|
|
||||||
if (ACPI_SUCCESS(status) &&
|
if (ACPI_SUCCESS(status) &&
|
||||||
ACPI_COMPARE_NAME(&acpi_gbl_root_table_list.
|
ACPI_COMPARE_NAMESEG(&acpi_gbl_root_table_list.
|
||||||
tables[table_index].signature,
|
tables[table_index].signature,
|
||||||
ACPI_SIG_FADT)) {
|
ACPI_SIG_FADT)) {
|
||||||
acpi_gbl_fadt_index = table_index;
|
acpi_gbl_fadt_index = table_index;
|
||||||
acpi_tb_parse_fadt();
|
acpi_tb_parse_fadt();
|
||||||
}
|
}
|
||||||
|
@ -230,7 +230,7 @@ acpi_get_table_header(char *signature,
|
|||||||
|
|
||||||
for (i = 0, j = 0; i < acpi_gbl_root_table_list.current_table_count;
|
for (i = 0, j = 0; i < acpi_gbl_root_table_list.current_table_count;
|
||||||
i++) {
|
i++) {
|
||||||
if (!ACPI_COMPARE_NAME
|
if (!ACPI_COMPARE_NAMESEG
|
||||||
(&(acpi_gbl_root_table_list.tables[i].signature),
|
(&(acpi_gbl_root_table_list.tables[i].signature),
|
||||||
signature)) {
|
signature)) {
|
||||||
continue;
|
continue;
|
||||||
@ -323,7 +323,7 @@ acpi_get_table(char *signature,
|
|||||||
i++) {
|
i++) {
|
||||||
table_desc = &acpi_gbl_root_table_list.tables[i];
|
table_desc = &acpi_gbl_root_table_list.tables[i];
|
||||||
|
|
||||||
if (!ACPI_COMPARE_NAME(&table_desc->signature, signature)) {
|
if (!ACPI_COMPARE_NAMESEG(&table_desc->signature, signature)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ acpi_status acpi_tb_load_namespace(void)
|
|||||||
table = &acpi_gbl_root_table_list.tables[acpi_gbl_dsdt_index];
|
table = &acpi_gbl_root_table_list.tables[acpi_gbl_dsdt_index];
|
||||||
|
|
||||||
if (!acpi_gbl_root_table_list.current_table_count ||
|
if (!acpi_gbl_root_table_list.current_table_count ||
|
||||||
!ACPI_COMPARE_NAME(table->signature.ascii, ACPI_SIG_DSDT) ||
|
!ACPI_COMPARE_NAMESEG(table->signature.ascii, ACPI_SIG_DSDT) ||
|
||||||
ACPI_FAILURE(acpi_tb_validate_table(table))) {
|
ACPI_FAILURE(acpi_tb_validate_table(table))) {
|
||||||
status = AE_NO_ACPI_TABLES;
|
status = AE_NO_ACPI_TABLES;
|
||||||
goto unlock_and_exit;
|
goto unlock_and_exit;
|
||||||
@ -170,11 +170,12 @@ acpi_status acpi_tb_load_namespace(void)
|
|||||||
table = &acpi_gbl_root_table_list.tables[i];
|
table = &acpi_gbl_root_table_list.tables[i];
|
||||||
|
|
||||||
if (!table->address ||
|
if (!table->address ||
|
||||||
(!ACPI_COMPARE_NAME(table->signature.ascii, ACPI_SIG_SSDT)
|
(!ACPI_COMPARE_NAMESEG
|
||||||
&& !ACPI_COMPARE_NAME(table->signature.ascii,
|
(table->signature.ascii, ACPI_SIG_SSDT)
|
||||||
ACPI_SIG_PSDT)
|
&& !ACPI_COMPARE_NAMESEG(table->signature.ascii,
|
||||||
&& !ACPI_COMPARE_NAME(table->signature.ascii,
|
ACPI_SIG_PSDT)
|
||||||
ACPI_SIG_OSDT))
|
&& !ACPI_COMPARE_NAMESEG(table->signature.ascii,
|
||||||
|
ACPI_SIG_OSDT))
|
||||||
|| ACPI_FAILURE(acpi_tb_validate_table(table))) {
|
|| ACPI_FAILURE(acpi_tb_validate_table(table))) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -364,7 +365,7 @@ acpi_status acpi_unload_parent_table(acpi_handle object)
|
|||||||
* only these types can contain AML and thus are the only types
|
* only these types can contain AML and thus are the only types
|
||||||
* that can create namespace objects.
|
* that can create namespace objects.
|
||||||
*/
|
*/
|
||||||
if (ACPI_COMPARE_NAME
|
if (ACPI_COMPARE_NAMESEG
|
||||||
(acpi_gbl_root_table_list.tables[i].signature.ascii,
|
(acpi_gbl_root_table_list.tables[i].signature.ascii,
|
||||||
ACPI_SIG_DSDT)) {
|
ACPI_SIG_DSDT)) {
|
||||||
status = AE_TYPE;
|
status = AE_TYPE;
|
||||||
|
@ -30,7 +30,7 @@ u8 acpi_ut_valid_nameseg(char *name)
|
|||||||
|
|
||||||
/* Validate each character in the signature */
|
/* Validate each character in the signature */
|
||||||
|
|
||||||
for (i = 0; i < ACPI_NAME_SIZE; i++) {
|
for (i = 0; i < ACPI_NAMESEG_SIZE; i++) {
|
||||||
if (!acpi_ut_valid_name_char(name[i], i)) {
|
if (!acpi_ut_valid_name_char(name[i], i)) {
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
}
|
}
|
||||||
|
@ -78,7 +78,7 @@ const char *acpi_gbl_region_types[ACPI_NUM_PREDEFINED_REGIONS] = {
|
|||||||
"IPMI", /* 0x07 */
|
"IPMI", /* 0x07 */
|
||||||
"GeneralPurposeIo", /* 0x08 */
|
"GeneralPurposeIo", /* 0x08 */
|
||||||
"GenericSerialBus", /* 0x09 */
|
"GenericSerialBus", /* 0x09 */
|
||||||
"PCC" /* 0x0A */
|
"PlatformCommChannel" /* 0x0A */
|
||||||
};
|
};
|
||||||
|
|
||||||
const char *acpi_ut_get_region_name(u8 space_id)
|
const char *acpi_ut_get_region_name(u8 space_id)
|
||||||
@ -239,7 +239,7 @@ const char *acpi_ut_get_node_name(void *object)
|
|||||||
{
|
{
|
||||||
struct acpi_namespace_node *node = (struct acpi_namespace_node *)object;
|
struct acpi_namespace_node *node = (struct acpi_namespace_node *)object;
|
||||||
|
|
||||||
/* Must return a string of exactly 4 characters == ACPI_NAME_SIZE */
|
/* Must return a string of exactly 4 characters == ACPI_NAMESEG_SIZE */
|
||||||
|
|
||||||
if (!object) {
|
if (!object) {
|
||||||
return ("NULL");
|
return ("NULL");
|
||||||
|
@ -59,10 +59,10 @@ u8 acpi_ut_is_aml_table(struct acpi_table_header *table)
|
|||||||
|
|
||||||
/* These are the only tables that contain executable AML */
|
/* These are the only tables that contain executable AML */
|
||||||
|
|
||||||
if (ACPI_COMPARE_NAME(table->signature, ACPI_SIG_DSDT) ||
|
if (ACPI_COMPARE_NAMESEG(table->signature, ACPI_SIG_DSDT) ||
|
||||||
ACPI_COMPARE_NAME(table->signature, ACPI_SIG_PSDT) ||
|
ACPI_COMPARE_NAMESEG(table->signature, ACPI_SIG_PSDT) ||
|
||||||
ACPI_COMPARE_NAME(table->signature, ACPI_SIG_SSDT) ||
|
ACPI_COMPARE_NAMESEG(table->signature, ACPI_SIG_SSDT) ||
|
||||||
ACPI_COMPARE_NAME(table->signature, ACPI_SIG_OSDT) ||
|
ACPI_COMPARE_NAMESEG(table->signature, ACPI_SIG_OSDT) ||
|
||||||
ACPI_IS_OEM_SIG(table->signature)) {
|
ACPI_IS_OEM_SIG(table->signature)) {
|
||||||
return (TRUE);
|
return (TRUE);
|
||||||
}
|
}
|
||||||
|
@ -84,7 +84,7 @@ const union acpi_predefined_info *acpi_ut_match_predefined_method(char *name)
|
|||||||
|
|
||||||
this_name = acpi_gbl_predefined_methods;
|
this_name = acpi_gbl_predefined_methods;
|
||||||
while (this_name->info.name[0]) {
|
while (this_name->info.name[0]) {
|
||||||
if (ACPI_COMPARE_NAME(name, this_name->info.name)) {
|
if (ACPI_COMPARE_NAMESEG(name, this_name->info.name)) {
|
||||||
return (this_name);
|
return (this_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -201,7 +201,7 @@ const union acpi_predefined_info *acpi_ut_match_resource_name(char *name)
|
|||||||
|
|
||||||
this_name = acpi_gbl_resource_names;
|
this_name = acpi_gbl_resource_names;
|
||||||
while (this_name->info.name[0]) {
|
while (this_name->info.name[0]) {
|
||||||
if (ACPI_COMPARE_NAME(name, this_name->info.name)) {
|
if (ACPI_COMPARE_NAMESEG(name, this_name->info.name)) {
|
||||||
return (this_name);
|
return (this_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,15 +141,15 @@ void acpi_ut_repair_name(char *name)
|
|||||||
* Special case for the root node. This can happen if we get an
|
* Special case for the root node. This can happen if we get an
|
||||||
* error during the execution of module-level code.
|
* error during the execution of module-level code.
|
||||||
*/
|
*/
|
||||||
if (ACPI_COMPARE_NAME(name, ACPI_ROOT_PATHNAME)) {
|
if (ACPI_COMPARE_NAMESEG(name, ACPI_ROOT_PATHNAME)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ACPI_MOVE_NAME(&original_name, name);
|
ACPI_COPY_NAMESEG(&original_name, name);
|
||||||
|
|
||||||
/* Check each character in the name */
|
/* Check each character in the name */
|
||||||
|
|
||||||
for (i = 0; i < ACPI_NAME_SIZE; i++) {
|
for (i = 0; i < ACPI_NAMESEG_SIZE; i++) {
|
||||||
if (acpi_ut_valid_name_char(name[i], i)) {
|
if (acpi_ut_valid_name_char(name[i], i)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -2260,7 +2260,7 @@ int __init __acpi_probe_device_table(struct acpi_probe_entry *ap_head, int nr)
|
|||||||
|
|
||||||
mutex_lock(&acpi_probe_mutex);
|
mutex_lock(&acpi_probe_mutex);
|
||||||
for (ape = ap_head; nr; ape++, nr--) {
|
for (ape = ap_head; nr; ape++, nr--) {
|
||||||
if (ACPI_COMPARE_NAME(ACPI_SIG_MADT, ape->id)) {
|
if (ACPI_COMPARE_NAMESEG(ACPI_SIG_MADT, ape->id)) {
|
||||||
acpi_probe_count = 0;
|
acpi_probe_count = 0;
|
||||||
acpi_table_parse_madt(ape->type, acpi_match_madt, 0);
|
acpi_table_parse_madt(ape->type, acpi_match_madt, 0);
|
||||||
count += acpi_probe_count;
|
count += acpi_probe_count;
|
||||||
|
@ -327,9 +327,9 @@ static struct kobject *hotplug_kobj;
|
|||||||
|
|
||||||
struct acpi_table_attr {
|
struct acpi_table_attr {
|
||||||
struct bin_attribute attr;
|
struct bin_attribute attr;
|
||||||
char name[ACPI_NAME_SIZE];
|
char name[ACPI_NAMESEG_SIZE];
|
||||||
int instance;
|
int instance;
|
||||||
char filename[ACPI_NAME_SIZE+ACPI_INST_SIZE];
|
char filename[ACPI_NAMESEG_SIZE+ACPI_INST_SIZE];
|
||||||
struct list_head node;
|
struct list_head node;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -368,10 +368,10 @@ static int acpi_table_attr_init(struct kobject *tables_obj,
|
|||||||
char instance_str[ACPI_INST_SIZE];
|
char instance_str[ACPI_INST_SIZE];
|
||||||
|
|
||||||
sysfs_attr_init(&table_attr->attr.attr);
|
sysfs_attr_init(&table_attr->attr.attr);
|
||||||
ACPI_MOVE_NAME(table_attr->name, table_header->signature);
|
ACPI_COPY_NAMESEG(table_attr->name, table_header->signature);
|
||||||
|
|
||||||
list_for_each_entry(attr, &acpi_table_attr_list, node) {
|
list_for_each_entry(attr, &acpi_table_attr_list, node) {
|
||||||
if (ACPI_COMPARE_NAME(table_attr->name, attr->name))
|
if (ACPI_COMPARE_NAMESEG(table_attr->name, attr->name))
|
||||||
if (table_attr->instance < attr->instance)
|
if (table_attr->instance < attr->instance)
|
||||||
table_attr->instance = attr->instance;
|
table_attr->instance = attr->instance;
|
||||||
}
|
}
|
||||||
@ -382,8 +382,8 @@ static int acpi_table_attr_init(struct kobject *tables_obj,
|
|||||||
return -ERANGE;
|
return -ERANGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
ACPI_MOVE_NAME(table_attr->filename, table_header->signature);
|
ACPI_COPY_NAMESEG(table_attr->filename, table_header->signature);
|
||||||
table_attr->filename[ACPI_NAME_SIZE] = '\0';
|
table_attr->filename[ACPI_NAMESEG_SIZE] = '\0';
|
||||||
if (table_attr->instance > 1 || (table_attr->instance == 1 &&
|
if (table_attr->instance > 1 || (table_attr->instance == 1 &&
|
||||||
!acpi_get_table
|
!acpi_get_table
|
||||||
(table_header->signature, 2, &header))) {
|
(table_header->signature, 2, &header))) {
|
||||||
@ -484,7 +484,7 @@ static int acpi_table_data_init(struct acpi_table_header *th)
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < NUM_ACPI_DATA_OBJS; i++) {
|
for (i = 0; i < NUM_ACPI_DATA_OBJS; i++) {
|
||||||
if (ACPI_COMPARE_NAME(th->signature, acpi_data_objs[i].name)) {
|
if (ACPI_COMPARE_NAMESEG(th->signature, acpi_data_objs[i].name)) {
|
||||||
data_attr = kzalloc(sizeof(*data_attr), GFP_KERNEL);
|
data_attr = kzalloc(sizeof(*data_attr), GFP_KERNEL);
|
||||||
if (!data_attr)
|
if (!data_attr)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
@ -670,8 +670,8 @@ static void __init acpi_table_initrd_scan(void)
|
|||||||
table_length = table->length;
|
table_length = table->length;
|
||||||
|
|
||||||
/* Skip RSDT/XSDT which should only be used for override */
|
/* Skip RSDT/XSDT which should only be used for override */
|
||||||
if (ACPI_COMPARE_NAME(table->signature, ACPI_SIG_RSDT) ||
|
if (ACPI_COMPARE_NAMESEG(table->signature, ACPI_SIG_RSDT) ||
|
||||||
ACPI_COMPARE_NAME(table->signature, ACPI_SIG_XSDT)) {
|
ACPI_COMPARE_NAMESEG(table->signature, ACPI_SIG_XSDT)) {
|
||||||
acpi_os_unmap_memory(table, ACPI_HEADER_SIZE);
|
acpi_os_unmap_memory(table, ACPI_HEADER_SIZE);
|
||||||
goto next_table;
|
goto next_table;
|
||||||
}
|
}
|
||||||
|
@ -425,7 +425,7 @@ static ssize_t ibft_attr_show_acpitbl(void *data, int type, char *buf)
|
|||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case ISCSI_BOOT_ACPITBL_SIGNATURE:
|
case ISCSI_BOOT_ACPITBL_SIGNATURE:
|
||||||
str += sprintf_string(str, ACPI_NAME_SIZE,
|
str += sprintf_string(str, ACPI_NAMESEG_SIZE,
|
||||||
entry->header->header.signature);
|
entry->header->header.signature);
|
||||||
break;
|
break;
|
||||||
case ISCSI_BOOT_ACPITBL_OEM_ID:
|
case ISCSI_BOOT_ACPITBL_OEM_ID:
|
||||||
|
@ -230,7 +230,7 @@ static void get_single_name(acpi_handle handle, char *name)
|
|||||||
if (ACPI_FAILURE(acpi_get_name(handle, ACPI_SINGLE_NAME, &buffer)))
|
if (ACPI_FAILURE(acpi_get_name(handle, ACPI_SINGLE_NAME, &buffer)))
|
||||||
pr_warn("Failed to get device name from acpi handle\n");
|
pr_warn("Failed to get device name from acpi handle\n");
|
||||||
else {
|
else {
|
||||||
memcpy(name, buffer.pointer, ACPI_NAME_SIZE);
|
memcpy(name, buffer.pointer, ACPI_NAMESEG_SIZE);
|
||||||
kfree(buffer.pointer);
|
kfree(buffer.pointer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
/* Current ACPICA subsystem version in YYYYMMDD format */
|
/* Current ACPICA subsystem version in YYYYMMDD format */
|
||||||
|
|
||||||
#define ACPI_CA_VERSION 0x20190215
|
#define ACPI_CA_VERSION 0x20190405
|
||||||
|
|
||||||
#include <acpi/acconfig.h>
|
#include <acpi/acconfig.h>
|
||||||
#include <acpi/actypes.h>
|
#include <acpi/actypes.h>
|
||||||
|
@ -66,14 +66,14 @@
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
struct acpi_table_header {
|
struct acpi_table_header {
|
||||||
char signature[ACPI_NAME_SIZE]; /* ASCII table signature */
|
char signature[ACPI_NAMESEG_SIZE]; /* ASCII table signature */
|
||||||
u32 length; /* Length of table in bytes, including this header */
|
u32 length; /* Length of table in bytes, including this header */
|
||||||
u8 revision; /* ACPI Specification minor version number */
|
u8 revision; /* ACPI Specification minor version number */
|
||||||
u8 checksum; /* To make sum of entire table == 0 */
|
u8 checksum; /* To make sum of entire table == 0 */
|
||||||
char oem_id[ACPI_OEM_ID_SIZE]; /* ASCII OEM identification */
|
char oem_id[ACPI_OEM_ID_SIZE]; /* ASCII OEM identification */
|
||||||
char oem_table_id[ACPI_OEM_TABLE_ID_SIZE]; /* ASCII OEM table identification */
|
char oem_table_id[ACPI_OEM_TABLE_ID_SIZE]; /* ASCII OEM table identification */
|
||||||
u32 oem_revision; /* OEM revision number */
|
u32 oem_revision; /* OEM revision number */
|
||||||
char asl_compiler_id[ACPI_NAME_SIZE]; /* ASCII ASL compiler vendor ID */
|
char asl_compiler_id[ACPI_NAMESEG_SIZE]; /* ASCII ASL compiler vendor ID */
|
||||||
u32 asl_compiler_revision; /* ASL compiler version */
|
u32 asl_compiler_revision; /* ASL compiler version */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -375,7 +375,7 @@ typedef u64 acpi_physical_address;
|
|||||||
|
|
||||||
/* Names within the namespace are 4 bytes long */
|
/* Names within the namespace are 4 bytes long */
|
||||||
|
|
||||||
#define ACPI_NAME_SIZE 4
|
#define ACPI_NAMESEG_SIZE 4 /* Fixed by ACPI spec */
|
||||||
#define ACPI_PATH_SEGMENT_LENGTH 5 /* 4 chars for name + 1 char for separator */
|
#define ACPI_PATH_SEGMENT_LENGTH 5 /* 4 chars for name + 1 char for separator */
|
||||||
#define ACPI_PATH_SEPARATOR '.'
|
#define ACPI_PATH_SEPARATOR '.'
|
||||||
|
|
||||||
@ -515,11 +515,11 @@ typedef u64 acpi_integer;
|
|||||||
/* Optimizations for 4-character (32-bit) acpi_name manipulation */
|
/* Optimizations for 4-character (32-bit) acpi_name manipulation */
|
||||||
|
|
||||||
#ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
|
#ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
|
||||||
#define ACPI_COMPARE_NAME(a,b) (*ACPI_CAST_PTR (u32, (a)) == *ACPI_CAST_PTR (u32, (b)))
|
#define ACPI_COMPARE_NAMESEG(a,b) (*ACPI_CAST_PTR (u32, (a)) == *ACPI_CAST_PTR (u32, (b)))
|
||||||
#define ACPI_MOVE_NAME(dest,src) (*ACPI_CAST_PTR (u32, (dest)) = *ACPI_CAST_PTR (u32, (src)))
|
#define ACPI_COPY_NAMESEG(dest,src) (*ACPI_CAST_PTR (u32, (dest)) = *ACPI_CAST_PTR (u32, (src)))
|
||||||
#else
|
#else
|
||||||
#define ACPI_COMPARE_NAME(a,b) (!strncmp (ACPI_CAST_PTR (char, (a)), ACPI_CAST_PTR (char, (b)), ACPI_NAME_SIZE))
|
#define ACPI_COMPARE_NAMESEG(a,b) (!strncmp (ACPI_CAST_PTR (char, (a)), ACPI_CAST_PTR (char, (b)), ACPI_NAMESEG_SIZE))
|
||||||
#define ACPI_MOVE_NAME(dest,src) (strncpy (ACPI_CAST_PTR (char, (dest)), ACPI_CAST_PTR (char, (src)), ACPI_NAME_SIZE))
|
#define ACPI_COPY_NAMESEG(dest,src) (strncpy (ACPI_CAST_PTR (char, (dest)), ACPI_CAST_PTR (char, (src)), ACPI_NAMESEG_SIZE))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Support for the special RSDP signature (8 characters) */
|
/* Support for the special RSDP signature (8 characters) */
|
||||||
@ -529,7 +529,7 @@ typedef u64 acpi_integer;
|
|||||||
|
|
||||||
/* Support for OEMx signature (x can be any character) */
|
/* Support for OEMx signature (x can be any character) */
|
||||||
#define ACPI_IS_OEM_SIG(a) (!strncmp (ACPI_CAST_PTR (char, (a)), ACPI_OEM_NAME, 3) &&\
|
#define ACPI_IS_OEM_SIG(a) (!strncmp (ACPI_CAST_PTR (char, (a)), ACPI_OEM_NAME, 3) &&\
|
||||||
strnlen (a, ACPI_NAME_SIZE) == ACPI_NAME_SIZE)
|
strnlen (a, ACPI_NAMESEG_SIZE) == ACPI_NAMESEG_SIZE)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Algorithm to obtain access bit width.
|
* Algorithm to obtain access bit width.
|
||||||
|
@ -19,7 +19,7 @@ ACPI_MODULE_NAME("oslinuxtbl")
|
|||||||
typedef struct osl_table_info {
|
typedef struct osl_table_info {
|
||||||
struct osl_table_info *next;
|
struct osl_table_info *next;
|
||||||
u32 instance;
|
u32 instance;
|
||||||
char signature[ACPI_NAME_SIZE];
|
char signature[ACPI_NAMESEG_SIZE];
|
||||||
|
|
||||||
} osl_table_info;
|
} osl_table_info;
|
||||||
|
|
||||||
@ -286,14 +286,14 @@ static acpi_status osl_add_table_to_list(char *signature, u32 instance)
|
|||||||
return (AE_NO_MEMORY);
|
return (AE_NO_MEMORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
ACPI_MOVE_NAME(new_info->signature, signature);
|
ACPI_COPY_NAMESEG(new_info->signature, signature);
|
||||||
|
|
||||||
if (!gbl_table_list_head) {
|
if (!gbl_table_list_head) {
|
||||||
gbl_table_list_head = new_info;
|
gbl_table_list_head = new_info;
|
||||||
} else {
|
} else {
|
||||||
next = gbl_table_list_head;
|
next = gbl_table_list_head;
|
||||||
while (1) {
|
while (1) {
|
||||||
if (ACPI_COMPARE_NAME(next->signature, signature)) {
|
if (ACPI_COMPARE_NAMESEG(next->signature, signature)) {
|
||||||
if (next->instance == instance) {
|
if (next->instance == instance) {
|
||||||
found = TRUE;
|
found = TRUE;
|
||||||
}
|
}
|
||||||
@ -782,11 +782,11 @@ osl_get_bios_table(char *signature,
|
|||||||
|
|
||||||
/* Handle special tables whose addresses are not in RSDT/XSDT */
|
/* Handle special tables whose addresses are not in RSDT/XSDT */
|
||||||
|
|
||||||
if (ACPI_COMPARE_NAME(signature, ACPI_RSDP_NAME) ||
|
if (ACPI_COMPARE_NAMESEG(signature, ACPI_RSDP_NAME) ||
|
||||||
ACPI_COMPARE_NAME(signature, ACPI_SIG_RSDT) ||
|
ACPI_COMPARE_NAMESEG(signature, ACPI_SIG_RSDT) ||
|
||||||
ACPI_COMPARE_NAME(signature, ACPI_SIG_XSDT) ||
|
ACPI_COMPARE_NAMESEG(signature, ACPI_SIG_XSDT) ||
|
||||||
ACPI_COMPARE_NAME(signature, ACPI_SIG_DSDT) ||
|
ACPI_COMPARE_NAMESEG(signature, ACPI_SIG_DSDT) ||
|
||||||
ACPI_COMPARE_NAME(signature, ACPI_SIG_FACS)) {
|
ACPI_COMPARE_NAMESEG(signature, ACPI_SIG_FACS)) {
|
||||||
|
|
||||||
find_next_instance:
|
find_next_instance:
|
||||||
|
|
||||||
@ -797,7 +797,7 @@ find_next_instance:
|
|||||||
* careful about the FADT length and validate table addresses.
|
* careful about the FADT length and validate table addresses.
|
||||||
* Note: The 64-bit addresses have priority.
|
* Note: The 64-bit addresses have priority.
|
||||||
*/
|
*/
|
||||||
if (ACPI_COMPARE_NAME(signature, ACPI_SIG_DSDT)) {
|
if (ACPI_COMPARE_NAMESEG(signature, ACPI_SIG_DSDT)) {
|
||||||
if (current_instance < 2) {
|
if (current_instance < 2) {
|
||||||
if ((gbl_fadt->header.length >=
|
if ((gbl_fadt->header.length >=
|
||||||
MIN_FADT_FOR_XDSDT) && gbl_fadt->Xdsdt
|
MIN_FADT_FOR_XDSDT) && gbl_fadt->Xdsdt
|
||||||
@ -815,7 +815,7 @@ find_next_instance:
|
|||||||
dsdt;
|
dsdt;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (ACPI_COMPARE_NAME(signature, ACPI_SIG_FACS)) {
|
} else if (ACPI_COMPARE_NAMESEG(signature, ACPI_SIG_FACS)) {
|
||||||
if (current_instance < 2) {
|
if (current_instance < 2) {
|
||||||
if ((gbl_fadt->header.length >=
|
if ((gbl_fadt->header.length >=
|
||||||
MIN_FADT_FOR_XFACS) && gbl_fadt->Xfacs
|
MIN_FADT_FOR_XFACS) && gbl_fadt->Xfacs
|
||||||
@ -833,7 +833,7 @@ find_next_instance:
|
|||||||
facs;
|
facs;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (ACPI_COMPARE_NAME(signature, ACPI_SIG_XSDT)) {
|
} else if (ACPI_COMPARE_NAMESEG(signature, ACPI_SIG_XSDT)) {
|
||||||
if (!gbl_revision) {
|
if (!gbl_revision) {
|
||||||
return (AE_BAD_SIGNATURE);
|
return (AE_BAD_SIGNATURE);
|
||||||
}
|
}
|
||||||
@ -842,7 +842,7 @@ find_next_instance:
|
|||||||
(acpi_physical_address)gbl_rsdp.
|
(acpi_physical_address)gbl_rsdp.
|
||||||
xsdt_physical_address;
|
xsdt_physical_address;
|
||||||
}
|
}
|
||||||
} else if (ACPI_COMPARE_NAME(signature, ACPI_SIG_RSDT)) {
|
} else if (ACPI_COMPARE_NAMESEG(signature, ACPI_SIG_RSDT)) {
|
||||||
if (current_instance == 0) {
|
if (current_instance == 0) {
|
||||||
table_address =
|
table_address =
|
||||||
(acpi_physical_address)gbl_rsdp.
|
(acpi_physical_address)gbl_rsdp.
|
||||||
@ -931,7 +931,7 @@ find_next_instance:
|
|||||||
|
|
||||||
/* Does this table match the requested signature? */
|
/* Does this table match the requested signature? */
|
||||||
|
|
||||||
if (!ACPI_COMPARE_NAME
|
if (!ACPI_COMPARE_NAMESEG
|
||||||
(mapped_table->signature, signature)) {
|
(mapped_table->signature, signature)) {
|
||||||
osl_unmap_table(mapped_table);
|
osl_unmap_table(mapped_table);
|
||||||
mapped_table = NULL;
|
mapped_table = NULL;
|
||||||
@ -995,7 +995,7 @@ static acpi_status osl_list_customized_tables(char *directory)
|
|||||||
{
|
{
|
||||||
void *table_dir;
|
void *table_dir;
|
||||||
u32 instance;
|
u32 instance;
|
||||||
char temp_name[ACPI_NAME_SIZE];
|
char temp_name[ACPI_NAMESEG_SIZE];
|
||||||
char *filename;
|
char *filename;
|
||||||
acpi_status status = AE_OK;
|
acpi_status status = AE_OK;
|
||||||
|
|
||||||
@ -1086,8 +1086,8 @@ osl_map_table(acpi_size address,
|
|||||||
return (AE_BAD_SIGNATURE);
|
return (AE_BAD_SIGNATURE);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
if (!ACPI_COMPARE_NAME(signature, mapped_table->signature))
|
if (!ACPI_COMPARE_NAMESEG
|
||||||
{
|
(signature, mapped_table->signature)) {
|
||||||
acpi_os_unmap_memory(mapped_table,
|
acpi_os_unmap_memory(mapped_table,
|
||||||
sizeof(struct acpi_table_header));
|
sizeof(struct acpi_table_header));
|
||||||
return (AE_BAD_SIGNATURE);
|
return (AE_BAD_SIGNATURE);
|
||||||
@ -1158,15 +1158,15 @@ osl_table_name_from_file(char *filename, char *signature, u32 *instance)
|
|||||||
|
|
||||||
/* Ignore meaningless files */
|
/* Ignore meaningless files */
|
||||||
|
|
||||||
if (strlen(filename) < ACPI_NAME_SIZE) {
|
if (strlen(filename) < ACPI_NAMESEG_SIZE) {
|
||||||
return (AE_BAD_SIGNATURE);
|
return (AE_BAD_SIGNATURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Extract instance number */
|
/* Extract instance number */
|
||||||
|
|
||||||
if (isdigit((int)filename[ACPI_NAME_SIZE])) {
|
if (isdigit((int)filename[ACPI_NAMESEG_SIZE])) {
|
||||||
sscanf(&filename[ACPI_NAME_SIZE], "%u", instance);
|
sscanf(&filename[ACPI_NAMESEG_SIZE], "%u", instance);
|
||||||
} else if (strlen(filename) != ACPI_NAME_SIZE) {
|
} else if (strlen(filename) != ACPI_NAMESEG_SIZE) {
|
||||||
return (AE_BAD_SIGNATURE);
|
return (AE_BAD_SIGNATURE);
|
||||||
} else {
|
} else {
|
||||||
*instance = 0;
|
*instance = 0;
|
||||||
@ -1174,7 +1174,7 @@ osl_table_name_from_file(char *filename, char *signature, u32 *instance)
|
|||||||
|
|
||||||
/* Extract signature */
|
/* Extract signature */
|
||||||
|
|
||||||
ACPI_MOVE_NAME(signature, filename);
|
ACPI_COPY_NAMESEG(signature, filename);
|
||||||
return (AE_OK);
|
return (AE_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1236,7 +1236,7 @@ osl_read_table_from_file(char *filename,
|
|||||||
status = AE_BAD_SIGNATURE;
|
status = AE_BAD_SIGNATURE;
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
} else if (!ACPI_COMPARE_NAME(signature, header.signature)) {
|
} else if (!ACPI_COMPARE_NAMESEG(signature, header.signature)) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"Incorrect signature: Expecting %4.4s, found %4.4s\n",
|
"Incorrect signature: Expecting %4.4s, found %4.4s\n",
|
||||||
signature, header.signature);
|
signature, header.signature);
|
||||||
@ -1311,7 +1311,7 @@ osl_get_customized_table(char *pathname,
|
|||||||
{
|
{
|
||||||
void *table_dir;
|
void *table_dir;
|
||||||
u32 current_instance = 0;
|
u32 current_instance = 0;
|
||||||
char temp_name[ACPI_NAME_SIZE];
|
char temp_name[ACPI_NAMESEG_SIZE];
|
||||||
char table_filename[PATH_MAX];
|
char table_filename[PATH_MAX];
|
||||||
char *filename;
|
char *filename;
|
||||||
acpi_status status;
|
acpi_status status;
|
||||||
@ -1329,7 +1329,7 @@ osl_get_customized_table(char *pathname,
|
|||||||
|
|
||||||
/* Ignore meaningless files */
|
/* Ignore meaningless files */
|
||||||
|
|
||||||
if (!ACPI_COMPARE_NAME(filename, signature)) {
|
if (!ACPI_COMPARE_NAMESEG(filename, signature)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -289,14 +289,14 @@ int ap_dump_table_by_address(char *ascii_address)
|
|||||||
|
|
||||||
int ap_dump_table_by_name(char *signature)
|
int ap_dump_table_by_name(char *signature)
|
||||||
{
|
{
|
||||||
char local_signature[ACPI_NAME_SIZE + 1];
|
char local_signature[ACPI_NAMESEG_SIZE + 1];
|
||||||
u32 instance;
|
u32 instance;
|
||||||
struct acpi_table_header *table;
|
struct acpi_table_header *table;
|
||||||
acpi_physical_address address;
|
acpi_physical_address address;
|
||||||
acpi_status status;
|
acpi_status status;
|
||||||
int table_status;
|
int table_status;
|
||||||
|
|
||||||
if (strlen(signature) != ACPI_NAME_SIZE) {
|
if (strlen(signature) != ACPI_NAMESEG_SIZE) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"Invalid table signature [%s]: must be exactly 4 characters\n",
|
"Invalid table signature [%s]: must be exactly 4 characters\n",
|
||||||
signature);
|
signature);
|
||||||
@ -310,9 +310,9 @@ int ap_dump_table_by_name(char *signature)
|
|||||||
|
|
||||||
/* To be friendly, handle tables whose signatures do not match the name */
|
/* To be friendly, handle tables whose signatures do not match the name */
|
||||||
|
|
||||||
if (ACPI_COMPARE_NAME(local_signature, "FADT")) {
|
if (ACPI_COMPARE_NAMESEG(local_signature, "FADT")) {
|
||||||
strcpy(local_signature, ACPI_SIG_FADT);
|
strcpy(local_signature, ACPI_SIG_FADT);
|
||||||
} else if (ACPI_COMPARE_NAME(local_signature, "MADT")) {
|
} else if (ACPI_COMPARE_NAMESEG(local_signature, "MADT")) {
|
||||||
strcpy(local_signature, ACPI_SIG_MADT);
|
strcpy(local_signature, ACPI_SIG_MADT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ int ap_open_output_file(char *pathname)
|
|||||||
|
|
||||||
int ap_write_to_binary_file(struct acpi_table_header *table, u32 instance)
|
int ap_write_to_binary_file(struct acpi_table_header *table, u32 instance)
|
||||||
{
|
{
|
||||||
char filename[ACPI_NAME_SIZE + 16];
|
char filename[ACPI_NAMESEG_SIZE + 16];
|
||||||
char instance_str[16];
|
char instance_str[16];
|
||||||
ACPI_FILE file;
|
ACPI_FILE file;
|
||||||
acpi_size actual;
|
acpi_size actual;
|
||||||
@ -110,16 +110,16 @@ int ap_write_to_binary_file(struct acpi_table_header *table, u32 instance)
|
|||||||
/* Construct lower-case filename from the table local signature */
|
/* Construct lower-case filename from the table local signature */
|
||||||
|
|
||||||
if (ACPI_VALIDATE_RSDP_SIG(table->signature)) {
|
if (ACPI_VALIDATE_RSDP_SIG(table->signature)) {
|
||||||
ACPI_MOVE_NAME(filename, ACPI_RSDP_NAME);
|
ACPI_COPY_NAMESEG(filename, ACPI_RSDP_NAME);
|
||||||
} else {
|
} else {
|
||||||
ACPI_MOVE_NAME(filename, table->signature);
|
ACPI_COPY_NAMESEG(filename, table->signature);
|
||||||
}
|
}
|
||||||
|
|
||||||
filename[0] = (char)tolower((int)filename[0]);
|
filename[0] = (char)tolower((int)filename[0]);
|
||||||
filename[1] = (char)tolower((int)filename[1]);
|
filename[1] = (char)tolower((int)filename[1]);
|
||||||
filename[2] = (char)tolower((int)filename[2]);
|
filename[2] = (char)tolower((int)filename[2]);
|
||||||
filename[3] = (char)tolower((int)filename[3]);
|
filename[3] = (char)tolower((int)filename[3]);
|
||||||
filename[ACPI_NAME_SIZE] = 0;
|
filename[ACPI_NAMESEG_SIZE] = 0;
|
||||||
|
|
||||||
/* Handle multiple SSDts - create different filenames for each */
|
/* Handle multiple SSDts - create different filenames for each */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user