Merge branch 'acpica'
* acpica: ACPICA: Update version to 20130725. ACPICA: Update names for walk_namespace callbacks to clarify usage. ACPICA: Return error if DerefOf resolves to a null package element. ACPICA: Make ACPI Power Management Timer (PM Timer) optional. ACPICA: Fix divergences of the commit - ACPICA: Expose OSI version. ACPICA: Fix possible fault for methods that optionally have no return value. ACPICA: DeRefOf operator: Update to fully resolve FieldUnit and BufferField refs. ACPICA: Emit all unresolved method externals in a text block ACPICA: Export acpi_tb_validate_rsdp(). ACPI: Add facility to remove all _OSI strings ACPI: Add facility to disable all _OSI OS vendor strings ACPICA: Add acpi_update_interfaces() public interface ACPICA: Update version to 20130626 ACPICA: Fix compiler warnings for casting issues (only some compilers) ACPICA: Remove restriction of 256 maximum GPEs in any GPE block ACPICA: Disassembler: Expand maximum output string length to 64K ACPICA: TableManager: Export acpi_tb_scan_memory_for_rsdp() ACPICA: Update comments about behavior when _STA does not exist
This commit is contained in:
commit
afdca01c98
|
@ -235,10 +235,61 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||||
Format: To spoof as Windows 98: ="Microsoft Windows"
|
Format: To spoof as Windows 98: ="Microsoft Windows"
|
||||||
|
|
||||||
acpi_osi= [HW,ACPI] Modify list of supported OS interface strings
|
acpi_osi= [HW,ACPI] Modify list of supported OS interface strings
|
||||||
acpi_osi="string1" # add string1 -- only one string
|
acpi_osi="string1" # add string1
|
||||||
acpi_osi="!string2" # remove built-in string2
|
acpi_osi="!string2" # remove string2
|
||||||
|
acpi_osi=!* # remove all strings
|
||||||
|
acpi_osi=! # disable all built-in OS vendor
|
||||||
|
strings
|
||||||
acpi_osi= # disable all strings
|
acpi_osi= # disable all strings
|
||||||
|
|
||||||
|
'acpi_osi=!' can be used in combination with single or
|
||||||
|
multiple 'acpi_osi="string1"' to support specific OS
|
||||||
|
vendor string(s). Note that such command can only
|
||||||
|
affect the default state of the OS vendor strings, thus
|
||||||
|
it cannot affect the default state of the feature group
|
||||||
|
strings and the current state of the OS vendor strings,
|
||||||
|
specifying it multiple times through kernel command line
|
||||||
|
is meaningless. This command is useful when one do not
|
||||||
|
care about the state of the feature group strings which
|
||||||
|
should be controlled by the OSPM.
|
||||||
|
Examples:
|
||||||
|
1. 'acpi_osi=! acpi_osi="Windows 2000"' is equivalent
|
||||||
|
to 'acpi_osi="Windows 2000" acpi_osi=!', they all
|
||||||
|
can make '_OSI("Windows 2000")' TRUE.
|
||||||
|
|
||||||
|
'acpi_osi=' cannot be used in combination with other
|
||||||
|
'acpi_osi=' command lines, the _OSI method will not
|
||||||
|
exist in the ACPI namespace. NOTE that such command can
|
||||||
|
only affect the _OSI support state, thus specifying it
|
||||||
|
multiple times through kernel command line is also
|
||||||
|
meaningless.
|
||||||
|
Examples:
|
||||||
|
1. 'acpi_osi=' can make 'CondRefOf(_OSI, Local1)'
|
||||||
|
FALSE.
|
||||||
|
|
||||||
|
'acpi_osi=!*' can be used in combination with single or
|
||||||
|
multiple 'acpi_osi="string1"' to support specific
|
||||||
|
string(s). Note that such command can affect the
|
||||||
|
current state of both the OS vendor strings and the
|
||||||
|
feature group strings, thus specifying it multiple times
|
||||||
|
through kernel command line is meaningful. But it may
|
||||||
|
still not able to affect the final state of a string if
|
||||||
|
there are quirks related to this string. This command
|
||||||
|
is useful when one want to control the state of the
|
||||||
|
feature group strings to debug BIOS issues related to
|
||||||
|
the OSPM features.
|
||||||
|
Examples:
|
||||||
|
1. 'acpi_osi="Module Device" acpi_osi=!*' can make
|
||||||
|
'_OSI("Module Device")' FALSE.
|
||||||
|
2. 'acpi_osi=!* acpi_osi="Module Device"' can make
|
||||||
|
'_OSI("Module Device")' TRUE.
|
||||||
|
3. 'acpi_osi=! acpi_osi=!* acpi_osi="Windows 2000"' is
|
||||||
|
equivalent to
|
||||||
|
'acpi_osi=!* acpi_osi=! acpi_osi="Windows 2000"'
|
||||||
|
and
|
||||||
|
'acpi_osi=!* acpi_osi="Windows 2000" acpi_osi=!',
|
||||||
|
they all will make '_OSI("Windows 2000")' TRUE.
|
||||||
|
|
||||||
acpi_pm_good [X86]
|
acpi_pm_good [X86]
|
||||||
Override the pmtimer bug detection: force the kernel
|
Override the pmtimer bug detection: force the kernel
|
||||||
to assume that this machine's pmtimer latches its value
|
to assume that this machine's pmtimer latches its value
|
||||||
|
|
|
@ -138,6 +138,12 @@ u8 ACPI_INIT_GLOBAL(acpi_gbl_disable_auto_repair, FALSE);
|
||||||
*/
|
*/
|
||||||
u8 ACPI_INIT_GLOBAL(acpi_gbl_disable_ssdt_table_load, FALSE);
|
u8 ACPI_INIT_GLOBAL(acpi_gbl_disable_ssdt_table_load, FALSE);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We keep track of the latest version of Windows that has been requested by
|
||||||
|
* the BIOS.
|
||||||
|
*/
|
||||||
|
u8 ACPI_INIT_GLOBAL(acpi_gbl_osi_data, 0);
|
||||||
|
|
||||||
/* acpi_gbl_FADT is a local copy of the FADT, converted to a common format. */
|
/* acpi_gbl_FADT is a local copy of the FADT, converted to a common format. */
|
||||||
|
|
||||||
struct acpi_table_fadt acpi_gbl_FADT;
|
struct acpi_table_fadt acpi_gbl_FADT;
|
||||||
|
@ -285,7 +291,6 @@ ACPI_EXTERN u8 acpi_gbl_debugger_configuration;
|
||||||
ACPI_EXTERN u8 acpi_gbl_step_to_next_call;
|
ACPI_EXTERN u8 acpi_gbl_step_to_next_call;
|
||||||
ACPI_EXTERN u8 acpi_gbl_acpi_hardware_present;
|
ACPI_EXTERN u8 acpi_gbl_acpi_hardware_present;
|
||||||
ACPI_EXTERN u8 acpi_gbl_events_initialized;
|
ACPI_EXTERN u8 acpi_gbl_events_initialized;
|
||||||
ACPI_EXTERN u8 acpi_gbl_osi_data;
|
|
||||||
ACPI_EXTERN struct acpi_interface_info *acpi_gbl_supported_interfaces;
|
ACPI_EXTERN struct acpi_interface_info *acpi_gbl_supported_interfaces;
|
||||||
ACPI_EXTERN struct acpi_address_range
|
ACPI_EXTERN struct acpi_address_range
|
||||||
*acpi_gbl_address_range_list[ACPI_ADDRESS_RANGE_MAX];
|
*acpi_gbl_address_range_list[ACPI_ADDRESS_RANGE_MAX];
|
||||||
|
|
|
@ -942,6 +942,9 @@ struct acpi_interface_info {
|
||||||
|
|
||||||
#define ACPI_OSI_INVALID 0x01
|
#define ACPI_OSI_INVALID 0x01
|
||||||
#define ACPI_OSI_DYNAMIC 0x02
|
#define ACPI_OSI_DYNAMIC 0x02
|
||||||
|
#define ACPI_OSI_FEATURE 0x04
|
||||||
|
#define ACPI_OSI_DEFAULT_INVALID 0x08
|
||||||
|
#define ACPI_OSI_OPTIONAL_FEATURE (ACPI_OSI_FEATURE | ACPI_OSI_DEFAULT_INVALID | ACPI_OSI_INVALID)
|
||||||
|
|
||||||
struct acpi_port_info {
|
struct acpi_port_info {
|
||||||
char *name;
|
char *name;
|
||||||
|
@ -1030,6 +1033,7 @@ struct acpi_external_list {
|
||||||
u8 type;
|
u8 type;
|
||||||
u8 flags;
|
u8 flags;
|
||||||
u8 resolved;
|
u8 resolved;
|
||||||
|
u8 emitted;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Values for Flags field above */
|
/* Values for Flags field above */
|
||||||
|
|
|
@ -104,8 +104,8 @@ acpi_ns_walk_namespace(acpi_object_type type,
|
||||||
acpi_handle start_object,
|
acpi_handle start_object,
|
||||||
u32 max_depth,
|
u32 max_depth,
|
||||||
u32 flags,
|
u32 flags,
|
||||||
acpi_walk_callback pre_order_visit,
|
acpi_walk_callback descending_callback,
|
||||||
acpi_walk_callback post_order_visit,
|
acpi_walk_callback ascending_callback,
|
||||||
void *context, void **return_value);
|
void *context, void **return_value);
|
||||||
|
|
||||||
struct acpi_namespace_node *acpi_ns_get_next_node(struct acpi_namespace_node
|
struct acpi_namespace_node *acpi_ns_get_next_node(struct acpi_namespace_node
|
||||||
|
|
|
@ -46,6 +46,13 @@
|
||||||
|
|
||||||
acpi_status acpi_allocate_root_table(u32 initial_table_count);
|
acpi_status acpi_allocate_root_table(u32 initial_table_count);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* tbxfroot - Root pointer utilities
|
||||||
|
*/
|
||||||
|
acpi_status acpi_tb_validate_rsdp(struct acpi_table_rsdp *rsdp);
|
||||||
|
|
||||||
|
u8 *acpi_tb_scan_memory_for_rsdp(u8 *start_address, u32 length);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* tbfadt - FADT parse/convert/validate
|
* tbfadt - FADT parse/convert/validate
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -470,6 +470,8 @@ acpi_status acpi_ut_install_interface(acpi_string interface_name);
|
||||||
|
|
||||||
acpi_status acpi_ut_remove_interface(acpi_string interface_name);
|
acpi_status acpi_ut_remove_interface(acpi_string interface_name);
|
||||||
|
|
||||||
|
acpi_status acpi_ut_update_interfaces(u8 action);
|
||||||
|
|
||||||
struct acpi_interface_info *acpi_ut_get_interface(acpi_string interface_name);
|
struct acpi_interface_info *acpi_ut_get_interface(acpi_string interface_name);
|
||||||
|
|
||||||
acpi_status acpi_ut_osi_implementation(struct acpi_walk_state *walk_state);
|
acpi_status acpi_ut_osi_implementation(struct acpi_walk_state *walk_state);
|
||||||
|
@ -616,7 +618,7 @@ int acpi_ut_stricmp(char *string1, char *string2);
|
||||||
|
|
||||||
acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer);
|
acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer);
|
||||||
|
|
||||||
void acpi_ut_print_string(char *string, u8 max_length);
|
void acpi_ut_print_string(char *string, u16 max_length);
|
||||||
|
|
||||||
void ut_convert_backslashes(char *pathname);
|
void ut_convert_backslashes(char *pathname);
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,6 @@ acpi_status acpi_ev_gpe_initialize(void)
|
||||||
/* GPE block 0 exists (has both length and address > 0) */
|
/* GPE block 0 exists (has both length and address > 0) */
|
||||||
|
|
||||||
register_count0 = (u16)(acpi_gbl_FADT.gpe0_block_length / 2);
|
register_count0 = (u16)(acpi_gbl_FADT.gpe0_block_length / 2);
|
||||||
|
|
||||||
gpe_number_max =
|
gpe_number_max =
|
||||||
(register_count0 * ACPI_GPE_REGISTER_WIDTH) - 1;
|
(register_count0 * ACPI_GPE_REGISTER_WIDTH) - 1;
|
||||||
|
|
||||||
|
@ -204,16 +203,6 @@ acpi_status acpi_ev_gpe_initialize(void)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check for Max GPE number out-of-range */
|
|
||||||
|
|
||||||
if (gpe_number_max > ACPI_GPE_MAX) {
|
|
||||||
ACPI_ERROR((AE_INFO,
|
|
||||||
"Maximum GPE number from FADT is too large: 0x%X",
|
|
||||||
gpe_number_max));
|
|
||||||
status = AE_BAD_VALUE;
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||||
return_ACPI_STATUS(AE_OK);
|
return_ACPI_STATUS(AE_OK);
|
||||||
|
|
|
@ -338,6 +338,7 @@ acpi_ex_dump_object(union acpi_operand_object *obj_desc,
|
||||||
{
|
{
|
||||||
u8 *target;
|
u8 *target;
|
||||||
char *name;
|
char *name;
|
||||||
|
const char *reference_name;
|
||||||
u8 count;
|
u8 count;
|
||||||
|
|
||||||
if (!info) {
|
if (!info) {
|
||||||
|
@ -426,10 +427,9 @@ acpi_ex_dump_object(union acpi_operand_object *obj_desc,
|
||||||
|
|
||||||
case ACPI_EXD_REFERENCE:
|
case ACPI_EXD_REFERENCE:
|
||||||
|
|
||||||
|
reference_name = acpi_ut_get_reference_name(obj_desc);
|
||||||
acpi_ex_out_string("Class Name",
|
acpi_ex_out_string("Class Name",
|
||||||
ACPI_CAST_PTR(char,
|
ACPI_CAST_PTR(char, reference_name));
|
||||||
acpi_ut_get_reference_name
|
|
||||||
(obj_desc)));
|
|
||||||
acpi_ex_dump_reference_obj(obj_desc);
|
acpi_ex_dump_reference_obj(obj_desc);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -962,10 +962,17 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)
|
||||||
*/
|
*/
|
||||||
return_desc =
|
return_desc =
|
||||||
*(operand[0]->reference.where);
|
*(operand[0]->reference.where);
|
||||||
if (return_desc) {
|
if (!return_desc) {
|
||||||
acpi_ut_add_reference
|
/*
|
||||||
(return_desc);
|
* Element is NULL, do not allow the dereference.
|
||||||
|
* This provides compatibility with other ACPI
|
||||||
|
* implementations.
|
||||||
|
*/
|
||||||
|
return_ACPI_STATUS
|
||||||
|
(AE_AML_UNINITIALIZED_ELEMENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
acpi_ut_add_reference(return_desc);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -990,11 +997,40 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)
|
||||||
acpi_namespace_node
|
acpi_namespace_node
|
||||||
*)
|
*)
|
||||||
return_desc);
|
return_desc);
|
||||||
|
if (!return_desc) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* June 2013:
|
||||||
|
* buffer_fields/field_units require additional resolution
|
||||||
|
*/
|
||||||
|
switch (return_desc->common.type) {
|
||||||
|
case ACPI_TYPE_BUFFER_FIELD:
|
||||||
|
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||||
|
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||||
|
case ACPI_TYPE_LOCAL_INDEX_FIELD:
|
||||||
|
|
||||||
|
status =
|
||||||
|
acpi_ex_read_data_from_field
|
||||||
|
(walk_state, return_desc,
|
||||||
|
&temp_desc);
|
||||||
|
if (ACPI_FAILURE(status)) {
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
return_desc = temp_desc;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
|
||||||
|
/* Add another reference to the object */
|
||||||
|
|
||||||
|
acpi_ut_add_reference
|
||||||
|
(return_desc);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Add another reference to the object! */
|
|
||||||
|
|
||||||
acpi_ut_add_reference(return_desc);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -100,8 +100,13 @@ acpi_status acpi_get_timer(u32 * ticks)
|
||||||
return_ACPI_STATUS(AE_BAD_PARAMETER);
|
return_ACPI_STATUS(AE_BAD_PARAMETER);
|
||||||
}
|
}
|
||||||
|
|
||||||
status = acpi_hw_read(ticks, &acpi_gbl_FADT.xpm_timer_block);
|
/* ACPI 5.0A: PM Timer is optional */
|
||||||
|
|
||||||
|
if (!acpi_gbl_FADT.xpm_timer_block.address) {
|
||||||
|
return_ACPI_STATUS(AE_SUPPORT);
|
||||||
|
}
|
||||||
|
|
||||||
|
status = acpi_hw_read(ticks, &acpi_gbl_FADT.xpm_timer_block);
|
||||||
return_ACPI_STATUS(status);
|
return_ACPI_STATUS(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -148,6 +153,12 @@ acpi_get_timer_duration(u32 start_ticks, u32 end_ticks, u32 * time_elapsed)
|
||||||
return_ACPI_STATUS(AE_BAD_PARAMETER);
|
return_ACPI_STATUS(AE_BAD_PARAMETER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ACPI 5.0A: PM Timer is optional */
|
||||||
|
|
||||||
|
if (!acpi_gbl_FADT.xpm_timer_block.address) {
|
||||||
|
return_ACPI_STATUS(AE_SUPPORT);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Compute Tick Delta:
|
* Compute Tick Delta:
|
||||||
* Handle (max one) timer rollovers on 24-bit versus 32-bit timers.
|
* Handle (max one) timer rollovers on 24-bit versus 32-bit timers.
|
||||||
|
|
|
@ -150,6 +150,15 @@ acpi_ns_check_return_value(struct acpi_namespace_node *node,
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* 4) If there is no return value and it is optional, just return
|
||||||
|
* AE_OK (_WAK).
|
||||||
|
*/
|
||||||
|
if (!(*return_object_ptr)) {
|
||||||
|
goto exit;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* For returned Package objects, check the type of all sub-objects.
|
* For returned Package objects, check the type of all sub-objects.
|
||||||
* Note: Package may have been newly created by call above.
|
* Note: Package may have been newly created by call above.
|
||||||
|
@ -268,7 +277,12 @@ acpi_ns_check_object_type(struct acpi_evaluate_info *info,
|
||||||
|
|
||||||
acpi_ut_get_expected_return_types(type_buffer, expected_btypes);
|
acpi_ut_get_expected_return_types(type_buffer, expected_btypes);
|
||||||
|
|
||||||
if (package_index == ACPI_NOT_PACKAGE_ELEMENT) {
|
if (!return_object) {
|
||||||
|
ACPI_WARN_PREDEFINED((AE_INFO, info->full_pathname,
|
||||||
|
info->node_flags,
|
||||||
|
"Expected return object of type %s",
|
||||||
|
type_buffer));
|
||||||
|
} else if (package_index == ACPI_NOT_PACKAGE_ELEMENT) {
|
||||||
ACPI_WARN_PREDEFINED((AE_INFO, info->full_pathname,
|
ACPI_WARN_PREDEFINED((AE_INFO, info->full_pathname,
|
||||||
info->node_flags,
|
info->node_flags,
|
||||||
"Return type mismatch - found %s, expected %s",
|
"Return type mismatch - found %s, expected %s",
|
||||||
|
|
|
@ -156,9 +156,9 @@ struct acpi_namespace_node *acpi_ns_get_next_node_typed(acpi_object_type type,
|
||||||
* max_depth - Depth to which search is to reach
|
* max_depth - Depth to which search is to reach
|
||||||
* flags - Whether to unlock the NS before invoking
|
* flags - Whether to unlock the NS before invoking
|
||||||
* the callback routine
|
* the callback routine
|
||||||
* pre_order_visit - Called during tree pre-order visit
|
* descending_callback - Called during tree descent
|
||||||
* when an object of "Type" is found
|
* when an object of "Type" is found
|
||||||
* post_order_visit - Called during tree post-order visit
|
* ascending_callback - Called during tree ascent
|
||||||
* when an object of "Type" is found
|
* when an object of "Type" is found
|
||||||
* context - Passed to user function(s) above
|
* context - Passed to user function(s) above
|
||||||
* return_value - from the user_function if terminated
|
* return_value - from the user_function if terminated
|
||||||
|
@ -185,8 +185,8 @@ acpi_ns_walk_namespace(acpi_object_type type,
|
||||||
acpi_handle start_node,
|
acpi_handle start_node,
|
||||||
u32 max_depth,
|
u32 max_depth,
|
||||||
u32 flags,
|
u32 flags,
|
||||||
acpi_walk_callback pre_order_visit,
|
acpi_walk_callback descending_callback,
|
||||||
acpi_walk_callback post_order_visit,
|
acpi_walk_callback ascending_callback,
|
||||||
void *context, void **return_value)
|
void *context, void **return_value)
|
||||||
{
|
{
|
||||||
acpi_status status;
|
acpi_status status;
|
||||||
|
@ -255,22 +255,22 @@ acpi_ns_walk_namespace(acpi_object_type type,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Invoke the user function, either pre-order or post-order
|
* Invoke the user function, either descending, ascending,
|
||||||
* or both.
|
* or both.
|
||||||
*/
|
*/
|
||||||
if (!node_previously_visited) {
|
if (!node_previously_visited) {
|
||||||
if (pre_order_visit) {
|
if (descending_callback) {
|
||||||
status =
|
status =
|
||||||
pre_order_visit(child_node, level,
|
descending_callback(child_node,
|
||||||
context,
|
level, context,
|
||||||
return_value);
|
return_value);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (post_order_visit) {
|
if (ascending_callback) {
|
||||||
status =
|
status =
|
||||||
post_order_visit(child_node, level,
|
ascending_callback(child_node,
|
||||||
context,
|
level, context,
|
||||||
return_value);
|
return_value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -533,9 +533,9 @@ static void acpi_ns_resolve_references(struct acpi_evaluate_info *info)
|
||||||
* PARAMETERS: type - acpi_object_type to search for
|
* PARAMETERS: type - acpi_object_type to search for
|
||||||
* start_object - Handle in namespace where search begins
|
* start_object - Handle in namespace where search begins
|
||||||
* max_depth - Depth to which search is to reach
|
* max_depth - Depth to which search is to reach
|
||||||
* pre_order_visit - Called during tree pre-order visit
|
* descending_callback - Called during tree descent
|
||||||
* when an object of "Type" is found
|
* when an object of "Type" is found
|
||||||
* post_order_visit - Called during tree post-order visit
|
* ascending_callback - Called during tree ascent
|
||||||
* when an object of "Type" is found
|
* when an object of "Type" is found
|
||||||
* context - Passed to user function(s) above
|
* context - Passed to user function(s) above
|
||||||
* return_value - Location where return value of
|
* return_value - Location where return value of
|
||||||
|
@ -563,8 +563,8 @@ acpi_status
|
||||||
acpi_walk_namespace(acpi_object_type type,
|
acpi_walk_namespace(acpi_object_type type,
|
||||||
acpi_handle start_object,
|
acpi_handle start_object,
|
||||||
u32 max_depth,
|
u32 max_depth,
|
||||||
acpi_walk_callback pre_order_visit,
|
acpi_walk_callback descending_callback,
|
||||||
acpi_walk_callback post_order_visit,
|
acpi_walk_callback ascending_callback,
|
||||||
void *context, void **return_value)
|
void *context, void **return_value)
|
||||||
{
|
{
|
||||||
acpi_status status;
|
acpi_status status;
|
||||||
|
@ -574,7 +574,7 @@ acpi_walk_namespace(acpi_object_type type,
|
||||||
/* Parameter validation */
|
/* Parameter validation */
|
||||||
|
|
||||||
if ((type > ACPI_TYPE_LOCAL_MAX) ||
|
if ((type > ACPI_TYPE_LOCAL_MAX) ||
|
||||||
(!max_depth) || (!pre_order_visit && !post_order_visit)) {
|
(!max_depth) || (!descending_callback && !ascending_callback)) {
|
||||||
return_ACPI_STATUS(AE_BAD_PARAMETER);
|
return_ACPI_STATUS(AE_BAD_PARAMETER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -606,9 +606,9 @@ acpi_walk_namespace(acpi_object_type type,
|
||||||
}
|
}
|
||||||
|
|
||||||
status = acpi_ns_walk_namespace(type, start_object, max_depth,
|
status = acpi_ns_walk_namespace(type, start_object, max_depth,
|
||||||
ACPI_NS_WALK_UNLOCK, pre_order_visit,
|
ACPI_NS_WALK_UNLOCK,
|
||||||
post_order_visit, context,
|
descending_callback, ascending_callback,
|
||||||
return_value);
|
context, return_value);
|
||||||
|
|
||||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||||
|
|
||||||
|
|
|
@ -158,6 +158,7 @@ acpi_get_name(acpi_handle handle, u32 name_type, struct acpi_buffer * buffer)
|
||||||
{
|
{
|
||||||
acpi_status status;
|
acpi_status status;
|
||||||
struct acpi_namespace_node *node;
|
struct acpi_namespace_node *node;
|
||||||
|
char *node_name;
|
||||||
|
|
||||||
/* Parameter validation */
|
/* Parameter validation */
|
||||||
|
|
||||||
|
@ -202,7 +203,8 @@ acpi_get_name(acpi_handle handle, u32 name_type, 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 */
|
||||||
|
|
||||||
ACPI_MOVE_NAME(buffer->pointer, acpi_ut_get_node_name(node));
|
node_name = acpi_ut_get_node_name(node);
|
||||||
|
ACPI_MOVE_NAME(buffer->pointer, node_name);
|
||||||
((char *)buffer->pointer)[ACPI_NAME_SIZE] = 0;
|
((char *)buffer->pointer)[ACPI_NAME_SIZE] = 0;
|
||||||
status = AE_OK;
|
status = AE_OK;
|
||||||
|
|
||||||
|
@ -379,9 +381,14 @@ acpi_get_object_info(acpi_handle handle,
|
||||||
* Get extra info for ACPI Device/Processor objects only:
|
* Get extra info for ACPI Device/Processor objects only:
|
||||||
* Run the _STA, _ADR and, sx_w, and _sx_d methods.
|
* Run the _STA, _ADR and, sx_w, and _sx_d methods.
|
||||||
*
|
*
|
||||||
* Note: none of these methods are required, so they may or may
|
* Notes: none of these methods are required, so they may or may
|
||||||
* not be present for this device. The Info->Valid bitfield is used
|
* not be present for this device. The Info->Valid bitfield is used
|
||||||
* to indicate which methods were found and run successfully.
|
* to indicate which methods were found and run successfully.
|
||||||
|
*
|
||||||
|
* For _STA, if the method does not exist, then (as per the ACPI
|
||||||
|
* specification), the returned current_status flags will indicate
|
||||||
|
* that the device is present/functional/enabled. Otherwise, the
|
||||||
|
* current_status flags reflect the value returned from _STA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Execute the Device._STA method */
|
/* Execute the Device._STA method */
|
||||||
|
|
|
@ -117,7 +117,7 @@ static struct acpi_fadt_info fadt_info_table[] = {
|
||||||
ACPI_FADT_OFFSET(pm_timer_block),
|
ACPI_FADT_OFFSET(pm_timer_block),
|
||||||
ACPI_FADT_OFFSET(pm_timer_length),
|
ACPI_FADT_OFFSET(pm_timer_length),
|
||||||
ACPI_PM_TIMER_WIDTH,
|
ACPI_PM_TIMER_WIDTH,
|
||||||
ACPI_FADT_REQUIRED},
|
ACPI_FADT_SEPARATE_LENGTH}, /* ACPI 5.0A: Timer is optional */
|
||||||
|
|
||||||
{"Gpe0Block",
|
{"Gpe0Block",
|
||||||
ACPI_FADT_OFFSET(xgpe0_block),
|
ACPI_FADT_OFFSET(xgpe0_block),
|
||||||
|
@ -574,7 +574,7 @@ static void acpi_tb_validate_fadt(void)
|
||||||
|
|
||||||
if (fadt_info_table[i].type & ACPI_FADT_REQUIRED) {
|
if (fadt_info_table[i].type & ACPI_FADT_REQUIRED) {
|
||||||
/*
|
/*
|
||||||
* Field is required (Pm1a_event, Pm1a_control, pm_timer).
|
* Field is required (Pm1a_event, Pm1a_control).
|
||||||
* Both the address and length must be non-zero.
|
* Both the address and length must be non-zero.
|
||||||
*/
|
*/
|
||||||
if (!address64->address || !length) {
|
if (!address64->address || !length) {
|
||||||
|
|
|
@ -48,11 +48,6 @@
|
||||||
#define _COMPONENT ACPI_TABLES
|
#define _COMPONENT ACPI_TABLES
|
||||||
ACPI_MODULE_NAME("tbxfroot")
|
ACPI_MODULE_NAME("tbxfroot")
|
||||||
|
|
||||||
/* Local prototypes */
|
|
||||||
static u8 *acpi_tb_scan_memory_for_rsdp(u8 * start_address, u32 length);
|
|
||||||
|
|
||||||
static acpi_status acpi_tb_validate_rsdp(struct acpi_table_rsdp *rsdp);
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
*
|
*
|
||||||
* FUNCTION: acpi_tb_validate_rsdp
|
* FUNCTION: acpi_tb_validate_rsdp
|
||||||
|
@ -64,8 +59,7 @@ static acpi_status acpi_tb_validate_rsdp(struct acpi_table_rsdp *rsdp);
|
||||||
* DESCRIPTION: Validate the RSDP (ptr)
|
* DESCRIPTION: Validate the RSDP (ptr)
|
||||||
*
|
*
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
acpi_status acpi_tb_validate_rsdp(struct acpi_table_rsdp *rsdp)
|
||||||
static acpi_status acpi_tb_validate_rsdp(struct acpi_table_rsdp *rsdp)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -74,7 +68,7 @@ static acpi_status acpi_tb_validate_rsdp(struct acpi_table_rsdp *rsdp)
|
||||||
* Note: Sometimes there exists more than one RSDP in memory; the valid
|
* Note: Sometimes there exists more than one RSDP in memory; the valid
|
||||||
* RSDP has a valid checksum, all others have an invalid checksum.
|
* RSDP has a valid checksum, all others have an invalid checksum.
|
||||||
*/
|
*/
|
||||||
if (ACPI_STRNCMP((char *)rsdp, ACPI_SIG_RSDP,
|
if (ACPI_STRNCMP((char *)rsdp->signature, ACPI_SIG_RSDP,
|
||||||
sizeof(ACPI_SIG_RSDP) - 1) != 0) {
|
sizeof(ACPI_SIG_RSDP) - 1) != 0) {
|
||||||
|
|
||||||
/* Nope, BAD Signature */
|
/* Nope, BAD Signature */
|
||||||
|
@ -231,7 +225,7 @@ acpi_status acpi_find_root_pointer(acpi_size *table_address)
|
||||||
* DESCRIPTION: Search a block of memory for the RSDP signature
|
* DESCRIPTION: Search a block of memory for the RSDP signature
|
||||||
*
|
*
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
static u8 *acpi_tb_scan_memory_for_rsdp(u8 * start_address, u32 length)
|
u8 *acpi_tb_scan_memory_for_rsdp(u8 *start_address, u32 length)
|
||||||
{
|
{
|
||||||
acpi_status status;
|
acpi_status status;
|
||||||
u8 *mem_rover;
|
u8 *mem_rover;
|
||||||
|
|
|
@ -239,7 +239,8 @@ acpi_ut_evaluate_numeric_object(char *object_name,
|
||||||
* RETURN: Status
|
* RETURN: Status
|
||||||
*
|
*
|
||||||
* DESCRIPTION: Executes _STA for selected device and stores results in
|
* DESCRIPTION: Executes _STA for selected device and stores results in
|
||||||
* *Flags.
|
* *Flags. If _STA does not exist, then the device is assumed
|
||||||
|
* to be present/functional/enabled (as per the ACPI spec).
|
||||||
*
|
*
|
||||||
* NOTE: Internal function, no parameter validation
|
* NOTE: Internal function, no parameter validation
|
||||||
*
|
*
|
||||||
|
@ -257,6 +258,11 @@ acpi_ut_execute_STA(struct acpi_namespace_node *device_node, u32 * flags)
|
||||||
ACPI_BTYPE_INTEGER, &obj_desc);
|
ACPI_BTYPE_INTEGER, &obj_desc);
|
||||||
if (ACPI_FAILURE(status)) {
|
if (ACPI_FAILURE(status)) {
|
||||||
if (AE_NOT_FOUND == status) {
|
if (AE_NOT_FOUND == status) {
|
||||||
|
/*
|
||||||
|
* if _STA does not exist, then (as per the ACPI specification),
|
||||||
|
* the returned flags will indicate that the device is present,
|
||||||
|
* functional, and enabled.
|
||||||
|
*/
|
||||||
ACPI_DEBUG_PRINT((ACPI_DB_EXEC,
|
ACPI_DEBUG_PRINT((ACPI_DB_EXEC,
|
||||||
"_STA on %4.4s was not found, assuming device is present\n",
|
"_STA on %4.4s was not found, assuming device is present\n",
|
||||||
acpi_ut_get_node_name(device_node)));
|
acpi_ut_get_node_name(device_node)));
|
||||||
|
|
|
@ -336,7 +336,6 @@ acpi_status acpi_ut_init_globals(void)
|
||||||
acpi_gbl_trace_dbg_layer = 0;
|
acpi_gbl_trace_dbg_layer = 0;
|
||||||
acpi_gbl_debugger_configuration = DEBUGGER_THREADING;
|
acpi_gbl_debugger_configuration = DEBUGGER_THREADING;
|
||||||
acpi_gbl_db_output_flags = ACPI_DB_CONSOLE_OUTPUT;
|
acpi_gbl_db_output_flags = ACPI_DB_CONSOLE_OUTPUT;
|
||||||
acpi_gbl_osi_data = 0;
|
|
||||||
acpi_gbl_osi_mutex = NULL;
|
acpi_gbl_osi_mutex = NULL;
|
||||||
acpi_gbl_reg_methods_executed = FALSE;
|
acpi_gbl_reg_methods_executed = FALSE;
|
||||||
|
|
||||||
|
|
|
@ -77,21 +77,20 @@ static struct acpi_interface_info acpi_default_supported_interfaces[] = {
|
||||||
|
|
||||||
/* Feature Group Strings */
|
/* Feature Group Strings */
|
||||||
|
|
||||||
{"Extended Address Space Descriptor", NULL, 0, 0}
|
{"Extended Address Space Descriptor", NULL, ACPI_OSI_FEATURE, 0},
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* All "optional" feature group strings (features that are implemented
|
* All "optional" feature group strings (features that are implemented
|
||||||
* by the host) should be dynamically added by the host via
|
* by the host) should be dynamically modified to VALID by the host via
|
||||||
* acpi_install_interface and should not be manually added here.
|
* acpi_install_interface or acpi_update_interfaces. Such optional feature
|
||||||
*
|
* group strings are set as INVALID by default here.
|
||||||
* Examples of optional feature group strings:
|
|
||||||
*
|
|
||||||
* "Module Device"
|
|
||||||
* "Processor Device"
|
|
||||||
* "3.0 Thermal Model"
|
|
||||||
* "3.0 _SCP Extensions"
|
|
||||||
* "Processor Aggregator Device"
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
{"Module Device", NULL, ACPI_OSI_OPTIONAL_FEATURE, 0},
|
||||||
|
{"Processor Device", NULL, ACPI_OSI_OPTIONAL_FEATURE, 0},
|
||||||
|
{"3.0 Thermal Model", NULL, ACPI_OSI_OPTIONAL_FEATURE, 0},
|
||||||
|
{"3.0 _SCP Extensions", NULL, ACPI_OSI_OPTIONAL_FEATURE, 0},
|
||||||
|
{"Processor Aggregator Device", NULL, ACPI_OSI_OPTIONAL_FEATURE, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
|
@ -158,11 +157,20 @@ acpi_status acpi_ut_interface_terminate(void)
|
||||||
while (next_interface) {
|
while (next_interface) {
|
||||||
acpi_gbl_supported_interfaces = next_interface->next;
|
acpi_gbl_supported_interfaces = next_interface->next;
|
||||||
|
|
||||||
/* Only interfaces added at runtime can be freed */
|
|
||||||
|
|
||||||
if (next_interface->flags & ACPI_OSI_DYNAMIC) {
|
if (next_interface->flags & ACPI_OSI_DYNAMIC) {
|
||||||
|
|
||||||
|
/* Only interfaces added at runtime can be freed */
|
||||||
|
|
||||||
ACPI_FREE(next_interface->name);
|
ACPI_FREE(next_interface->name);
|
||||||
ACPI_FREE(next_interface);
|
ACPI_FREE(next_interface);
|
||||||
|
} else {
|
||||||
|
/* Interface is in static list. Reset it to invalid or valid. */
|
||||||
|
|
||||||
|
if (next_interface->flags & ACPI_OSI_DEFAULT_INVALID) {
|
||||||
|
next_interface->flags |= ACPI_OSI_INVALID;
|
||||||
|
} else {
|
||||||
|
next_interface->flags &= ~ACPI_OSI_INVALID;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
next_interface = acpi_gbl_supported_interfaces;
|
next_interface = acpi_gbl_supported_interfaces;
|
||||||
|
@ -276,6 +284,49 @@ acpi_status acpi_ut_remove_interface(acpi_string interface_name)
|
||||||
return (AE_NOT_EXIST);
|
return (AE_NOT_EXIST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
*
|
||||||
|
* FUNCTION: acpi_ut_update_interfaces
|
||||||
|
*
|
||||||
|
* PARAMETERS: action - Actions to be performed during the
|
||||||
|
* update
|
||||||
|
*
|
||||||
|
* RETURN: Status
|
||||||
|
*
|
||||||
|
* DESCRIPTION: Update _OSI interface strings, disabling or enabling OS vendor
|
||||||
|
* strings or/and feature group strings.
|
||||||
|
* Caller MUST hold acpi_gbl_osi_mutex
|
||||||
|
*
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
acpi_status acpi_ut_update_interfaces(u8 action)
|
||||||
|
{
|
||||||
|
struct acpi_interface_info *next_interface;
|
||||||
|
|
||||||
|
next_interface = acpi_gbl_supported_interfaces;
|
||||||
|
while (next_interface) {
|
||||||
|
if (((next_interface->flags & ACPI_OSI_FEATURE) &&
|
||||||
|
(action & ACPI_FEATURE_STRINGS)) ||
|
||||||
|
(!(next_interface->flags & ACPI_OSI_FEATURE) &&
|
||||||
|
(action & ACPI_VENDOR_STRINGS))) {
|
||||||
|
if (action & ACPI_DISABLE_INTERFACES) {
|
||||||
|
|
||||||
|
/* Mark the interfaces as invalid */
|
||||||
|
|
||||||
|
next_interface->flags |= ACPI_OSI_INVALID;
|
||||||
|
} else {
|
||||||
|
/* Mark the interfaces as valid */
|
||||||
|
|
||||||
|
next_interface->flags &= ~ACPI_OSI_INVALID;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
next_interface = next_interface->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (AE_OK);
|
||||||
|
}
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
*
|
*
|
||||||
* FUNCTION: acpi_ut_get_interface
|
* FUNCTION: acpi_ut_get_interface
|
||||||
|
|
|
@ -333,7 +333,8 @@ acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer)
|
||||||
* FUNCTION: acpi_ut_print_string
|
* FUNCTION: acpi_ut_print_string
|
||||||
*
|
*
|
||||||
* PARAMETERS: string - Null terminated ASCII string
|
* PARAMETERS: string - Null terminated ASCII string
|
||||||
* max_length - Maximum output length
|
* max_length - Maximum output length. Used to constrain the
|
||||||
|
* length of strings during debug output only.
|
||||||
*
|
*
|
||||||
* RETURN: None
|
* RETURN: None
|
||||||
*
|
*
|
||||||
|
@ -342,7 +343,7 @@ acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer)
|
||||||
*
|
*
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
void acpi_ut_print_string(char *string, u8 max_length)
|
void acpi_ut_print_string(char *string, u16 max_length)
|
||||||
{
|
{
|
||||||
u32 i;
|
u32 i;
|
||||||
|
|
||||||
|
|
|
@ -387,6 +387,34 @@ acpi_status acpi_install_interface_handler(acpi_interface_handler handler)
|
||||||
|
|
||||||
ACPI_EXPORT_SYMBOL(acpi_install_interface_handler)
|
ACPI_EXPORT_SYMBOL(acpi_install_interface_handler)
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
*
|
||||||
|
* FUNCTION: acpi_update_interfaces
|
||||||
|
*
|
||||||
|
* PARAMETERS: action - Actions to be performed during the
|
||||||
|
* update
|
||||||
|
*
|
||||||
|
* RETURN: Status
|
||||||
|
*
|
||||||
|
* DESCRIPTION: Update _OSI interface strings, disabling or enabling OS vendor
|
||||||
|
* string or/and feature group strings.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
acpi_status acpi_update_interfaces(u8 action)
|
||||||
|
{
|
||||||
|
acpi_status status;
|
||||||
|
|
||||||
|
status = acpi_os_acquire_mutex(acpi_gbl_osi_mutex, ACPI_WAIT_FOREVER);
|
||||||
|
if (ACPI_FAILURE(status)) {
|
||||||
|
return (status);
|
||||||
|
}
|
||||||
|
|
||||||
|
status = acpi_ut_update_interfaces(action);
|
||||||
|
|
||||||
|
acpi_os_release_mutex(acpi_gbl_osi_mutex);
|
||||||
|
return (status);
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
*
|
*
|
||||||
* FUNCTION: acpi_check_address_range
|
* FUNCTION: acpi_check_address_range
|
||||||
|
@ -402,6 +430,7 @@ ACPI_EXPORT_SYMBOL(acpi_install_interface_handler)
|
||||||
* ASL operation region address ranges.
|
* ASL operation region address ranges.
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
u32
|
u32
|
||||||
acpi_check_address_range(acpi_adr_space_type space_id,
|
acpi_check_address_range(acpi_adr_space_type space_id,
|
||||||
acpi_physical_address address,
|
acpi_physical_address address,
|
||||||
|
|
|
@ -142,7 +142,8 @@ static struct osi_linux {
|
||||||
unsigned int enable:1;
|
unsigned int enable:1;
|
||||||
unsigned int dmi:1;
|
unsigned int dmi:1;
|
||||||
unsigned int cmdline:1;
|
unsigned int cmdline:1;
|
||||||
} osi_linux = {0, 0, 0};
|
unsigned int default_disabling:1;
|
||||||
|
} osi_linux = {0, 0, 0, 0};
|
||||||
|
|
||||||
static u32 acpi_osi_handler(acpi_string interface, u32 supported)
|
static u32 acpi_osi_handler(acpi_string interface, u32 supported)
|
||||||
{
|
{
|
||||||
|
@ -1378,6 +1379,17 @@ void __init acpi_osi_setup(char *str)
|
||||||
|
|
||||||
if (*str == '!') {
|
if (*str == '!') {
|
||||||
str++;
|
str++;
|
||||||
|
if (*str == '\0') {
|
||||||
|
osi_linux.default_disabling = 1;
|
||||||
|
return;
|
||||||
|
} else if (*str == '*') {
|
||||||
|
acpi_update_interfaces(ACPI_DISABLE_ALL_STRINGS);
|
||||||
|
for (i = 0; i < OSI_STRING_ENTRIES_MAX; i++) {
|
||||||
|
osi = &osi_setup_entries[i];
|
||||||
|
osi->enable = false;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
enable = false;
|
enable = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1443,6 +1455,13 @@ static void __init acpi_osi_setup_late(void)
|
||||||
int i;
|
int i;
|
||||||
acpi_status status;
|
acpi_status status;
|
||||||
|
|
||||||
|
if (osi_linux.default_disabling) {
|
||||||
|
status = acpi_update_interfaces(ACPI_DISABLE_ALL_VENDOR_STRINGS);
|
||||||
|
|
||||||
|
if (ACPI_SUCCESS(status))
|
||||||
|
printk(KERN_INFO PREFIX "Disabled all _OSI OS vendors\n");
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < OSI_STRING_ENTRIES_MAX; i++) {
|
for (i = 0; i < OSI_STRING_ENTRIES_MAX; i++) {
|
||||||
osi = &osi_setup_entries[i];
|
osi = &osi_setup_entries[i];
|
||||||
str = osi->string;
|
str = osi->string;
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
|
|
||||||
/* Current ACPICA subsystem version in YYYYMMDD format */
|
/* Current ACPICA subsystem version in YYYYMMDD format */
|
||||||
|
|
||||||
#define ACPI_CA_VERSION 0x20130517
|
#define ACPI_CA_VERSION 0x20130725
|
||||||
|
|
||||||
#include <acpi/acconfig.h>
|
#include <acpi/acconfig.h>
|
||||||
#include <acpi/actypes.h>
|
#include <acpi/actypes.h>
|
||||||
|
@ -147,6 +147,8 @@ acpi_status acpi_install_interface(acpi_string interface_name);
|
||||||
|
|
||||||
acpi_status acpi_remove_interface(acpi_string interface_name);
|
acpi_status acpi_remove_interface(acpi_string interface_name);
|
||||||
|
|
||||||
|
acpi_status acpi_update_interfaces(u8 action);
|
||||||
|
|
||||||
u32
|
u32
|
||||||
acpi_check_address_range(acpi_adr_space_type space_id,
|
acpi_check_address_range(acpi_adr_space_type space_id,
|
||||||
acpi_physical_address address,
|
acpi_physical_address address,
|
||||||
|
@ -210,8 +212,8 @@ acpi_status
|
||||||
acpi_walk_namespace(acpi_object_type type,
|
acpi_walk_namespace(acpi_object_type type,
|
||||||
acpi_handle start_object,
|
acpi_handle start_object,
|
||||||
u32 max_depth,
|
u32 max_depth,
|
||||||
acpi_walk_callback pre_order_visit,
|
acpi_walk_callback descending_callback,
|
||||||
acpi_walk_callback post_order_visit,
|
acpi_walk_callback ascending_callback,
|
||||||
void *context, void **return_value);
|
void *context, void **return_value);
|
||||||
|
|
||||||
acpi_status
|
acpi_status
|
||||||
|
|
|
@ -668,13 +668,6 @@ typedef u32 acpi_event_status;
|
||||||
#define ACPI_EVENT_FLAG_SET (acpi_event_status) 0x04
|
#define ACPI_EVENT_FLAG_SET (acpi_event_status) 0x04
|
||||||
#define ACPI_EVENT_FLAG_HANDLE (acpi_event_status) 0x08
|
#define ACPI_EVENT_FLAG_HANDLE (acpi_event_status) 0x08
|
||||||
|
|
||||||
/*
|
|
||||||
* General Purpose Events (GPE)
|
|
||||||
*/
|
|
||||||
#define ACPI_GPE_INVALID 0xFF
|
|
||||||
#define ACPI_GPE_MAX 0xFF
|
|
||||||
#define ACPI_NUM_GPE 256
|
|
||||||
|
|
||||||
/* Actions for acpi_set_gpe, acpi_gpe_wakeup, acpi_hw_low_set_gpe */
|
/* Actions for acpi_set_gpe, acpi_gpe_wakeup, acpi_hw_low_set_gpe */
|
||||||
|
|
||||||
#define ACPI_GPE_ENABLE 0
|
#define ACPI_GPE_ENABLE 0
|
||||||
|
@ -1144,7 +1137,19 @@ struct acpi_memory_list {
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Definitions for _OSI support */
|
/* Definitions of _OSI support */
|
||||||
|
|
||||||
|
#define ACPI_VENDOR_STRINGS 0x01
|
||||||
|
#define ACPI_FEATURE_STRINGS 0x02
|
||||||
|
#define ACPI_ENABLE_INTERFACES 0x00
|
||||||
|
#define ACPI_DISABLE_INTERFACES 0x04
|
||||||
|
|
||||||
|
#define ACPI_DISABLE_ALL_VENDOR_STRINGS (ACPI_DISABLE_INTERFACES | ACPI_VENDOR_STRINGS)
|
||||||
|
#define ACPI_DISABLE_ALL_FEATURE_STRINGS (ACPI_DISABLE_INTERFACES | ACPI_FEATURE_STRINGS)
|
||||||
|
#define ACPI_DISABLE_ALL_STRINGS (ACPI_DISABLE_INTERFACES | ACPI_VENDOR_STRINGS | ACPI_FEATURE_STRINGS)
|
||||||
|
#define ACPI_ENABLE_ALL_VENDOR_STRINGS (ACPI_ENABLE_INTERFACES | ACPI_VENDOR_STRINGS)
|
||||||
|
#define ACPI_ENABLE_ALL_FEATURE_STRINGS (ACPI_ENABLE_INTERFACES | ACPI_FEATURE_STRINGS)
|
||||||
|
#define ACPI_ENABLE_ALL_STRINGS (ACPI_ENABLE_INTERFACES | ACPI_VENDOR_STRINGS | ACPI_FEATURE_STRINGS)
|
||||||
|
|
||||||
#define ACPI_OSI_WIN_2000 0x01
|
#define ACPI_OSI_WIN_2000 0x01
|
||||||
#define ACPI_OSI_WIN_XP 0x02
|
#define ACPI_OSI_WIN_XP 0x02
|
||||||
|
|
Loading…
Reference in New Issue