mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-31 04:01:48 -04:00
Merge branches 'acpi_pad', 'acpica', 'apei-bugzilla-43282', 'battery', 'cpuidle-coupled', 'cpuidle-tweaks', 'intel_idle-ivb', 'ost', 'red-hat-bz-772730', 'thermal', 'thermal-spear' and 'turbostat-v2' into release
This commit is contained in:
parent
fa7584e13a
819f1a64be
f712c71f7b
a58e115022
20ff51a36b
1b0a0e9a15
6edab08c24
c2f4191a9c
f197ac13f6
8eaa8d6ca2
b9c7aff481
c3ae331d1c
commit
ec033d0a02
1437 changed files with 17155 additions and 9509 deletions
|
|
@ -292,7 +292,9 @@ static int acpi_ac_add(struct acpi_device *device)
|
|||
ac->charger.properties = ac_props;
|
||||
ac->charger.num_properties = ARRAY_SIZE(ac_props);
|
||||
ac->charger.get_property = get_ac_property;
|
||||
power_supply_register(&ac->device->dev, &ac->charger);
|
||||
result = power_supply_register(&ac->device->dev, &ac->charger);
|
||||
if (result)
|
||||
goto end;
|
||||
|
||||
printk(KERN_INFO PREFIX "%s [%s] (%s)\n",
|
||||
acpi_device_name(device), acpi_device_bid(device),
|
||||
|
|
|
|||
|
|
@ -341,7 +341,7 @@ static void acpi_memory_device_notify(acpi_handle handle, u32 event, void *data)
|
|||
{
|
||||
struct acpi_memory_device *mem_device;
|
||||
struct acpi_device *device;
|
||||
|
||||
u32 ost_code = ACPI_OST_SC_NON_SPECIFIC_FAILURE; /* default */
|
||||
|
||||
switch (event) {
|
||||
case ACPI_NOTIFY_BUS_CHECK:
|
||||
|
|
@ -354,15 +354,20 @@ static void acpi_memory_device_notify(acpi_handle handle, u32 event, void *data)
|
|||
"\nReceived DEVICE CHECK notification for device\n"));
|
||||
if (acpi_memory_get_device(handle, &mem_device)) {
|
||||
printk(KERN_ERR PREFIX "Cannot find driver data\n");
|
||||
return;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!acpi_memory_check_device(mem_device)) {
|
||||
if (acpi_memory_enable_device(mem_device))
|
||||
printk(KERN_ERR PREFIX
|
||||
"Cannot enable memory device\n");
|
||||
if (acpi_memory_check_device(mem_device))
|
||||
break;
|
||||
|
||||
if (acpi_memory_enable_device(mem_device)) {
|
||||
printk(KERN_ERR PREFIX "Cannot enable memory device\n");
|
||||
break;
|
||||
}
|
||||
|
||||
ost_code = ACPI_OST_SC_SUCCESS;
|
||||
break;
|
||||
|
||||
case ACPI_NOTIFY_EJECT_REQUEST:
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
|
||||
"\nReceived EJECT REQUEST notification for device\n"));
|
||||
|
|
@ -383,19 +388,35 @@ static void acpi_memory_device_notify(acpi_handle handle, u32 event, void *data)
|
|||
* TBD: Can also be disabled by Callback registration
|
||||
* with generic sysfs driver
|
||||
*/
|
||||
if (acpi_memory_disable_device(mem_device))
|
||||
printk(KERN_ERR PREFIX
|
||||
"Disable memory device\n");
|
||||
if (acpi_memory_disable_device(mem_device)) {
|
||||
printk(KERN_ERR PREFIX "Disable memory device\n");
|
||||
/*
|
||||
* If _EJ0 was called but failed, _OST is not
|
||||
* necessary.
|
||||
*/
|
||||
if (mem_device->state == MEMORY_INVALID_STATE)
|
||||
return;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* TBD: Invoke acpi_bus_remove to cleanup data structures
|
||||
*/
|
||||
break;
|
||||
|
||||
/* _EJ0 succeeded; _OST is not necessary */
|
||||
return;
|
||||
|
||||
default:
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
|
||||
"Unsupported event [0x%x]\n", event));
|
||||
break;
|
||||
|
||||
/* non-hotplug event; possibly handled by other handler */
|
||||
return;
|
||||
}
|
||||
|
||||
/* Inform firmware that the hotplug operation has completed */
|
||||
(void) acpi_evaluate_hotplug_ost(handle, event, ost_code, NULL);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@
|
|||
#define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator"
|
||||
#define ACPI_PROCESSOR_AGGREGATOR_NOTIFY 0x80
|
||||
static DEFINE_MUTEX(isolated_cpus_lock);
|
||||
static DEFINE_MUTEX(round_robin_lock);
|
||||
|
||||
static unsigned long power_saving_mwait_eax;
|
||||
|
||||
|
|
@ -107,7 +108,7 @@ static void round_robin_cpu(unsigned int tsk_index)
|
|||
if (!alloc_cpumask_var(&tmp, GFP_KERNEL))
|
||||
return;
|
||||
|
||||
mutex_lock(&isolated_cpus_lock);
|
||||
mutex_lock(&round_robin_lock);
|
||||
cpumask_clear(tmp);
|
||||
for_each_cpu(cpu, pad_busy_cpus)
|
||||
cpumask_or(tmp, tmp, topology_thread_cpumask(cpu));
|
||||
|
|
@ -116,7 +117,7 @@ static void round_robin_cpu(unsigned int tsk_index)
|
|||
if (cpumask_empty(tmp))
|
||||
cpumask_andnot(tmp, cpu_online_mask, pad_busy_cpus);
|
||||
if (cpumask_empty(tmp)) {
|
||||
mutex_unlock(&isolated_cpus_lock);
|
||||
mutex_unlock(&round_robin_lock);
|
||||
return;
|
||||
}
|
||||
for_each_cpu(cpu, tmp) {
|
||||
|
|
@ -131,7 +132,7 @@ static void round_robin_cpu(unsigned int tsk_index)
|
|||
tsk_in_cpu[tsk_index] = preferred_cpu;
|
||||
cpumask_set_cpu(preferred_cpu, pad_busy_cpus);
|
||||
cpu_weight[preferred_cpu]++;
|
||||
mutex_unlock(&isolated_cpus_lock);
|
||||
mutex_unlock(&round_robin_lock);
|
||||
|
||||
set_cpus_allowed_ptr(current, cpumask_of(preferred_cpu));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -134,12 +134,14 @@ acpi-y += \
|
|||
tbinstal.o \
|
||||
tbutils.o \
|
||||
tbxface.o \
|
||||
tbxfload.o \
|
||||
tbxfroot.o
|
||||
|
||||
acpi-y += \
|
||||
utaddress.o \
|
||||
utalloc.o \
|
||||
utcopy.o \
|
||||
utexcep.o \
|
||||
utdebug.o \
|
||||
utdecode.o \
|
||||
utdelete.o \
|
||||
|
|
|
|||
|
|
@ -237,7 +237,7 @@ u32 acpi_ev_install_sci_handler(void);
|
|||
|
||||
acpi_status acpi_ev_remove_sci_handler(void);
|
||||
|
||||
u32 acpi_ev_initialize_sCI(u32 program_sCI);
|
||||
u32 acpi_ev_initialize_SCI(u32 program_SCI);
|
||||
|
||||
ACPI_HW_DEPENDENT_RETURN_VOID(void acpi_ev_terminate(void))
|
||||
#endif /* __ACEVENTS_H__ */
|
||||
|
|
|
|||
|
|
@ -278,8 +278,7 @@ ACPI_EXTERN acpi_cache_t *acpi_gbl_operand_cache;
|
|||
|
||||
/* Global handlers */
|
||||
|
||||
ACPI_EXTERN struct acpi_object_notify_handler acpi_gbl_device_notify;
|
||||
ACPI_EXTERN struct acpi_object_notify_handler acpi_gbl_system_notify;
|
||||
ACPI_EXTERN struct acpi_global_notify_handler acpi_gbl_global_notify[2];
|
||||
ACPI_EXTERN acpi_exception_handler acpi_gbl_exception_handler;
|
||||
ACPI_EXTERN acpi_init_handler acpi_gbl_init_handler;
|
||||
ACPI_EXTERN acpi_tbl_handler acpi_gbl_table_handler;
|
||||
|
|
@ -327,14 +326,6 @@ extern const char *acpi_gbl_region_types[ACPI_NUM_PREDEFINED_REGIONS];
|
|||
|
||||
#endif
|
||||
|
||||
/* Exception codes */
|
||||
|
||||
extern char const *acpi_gbl_exception_names_env[];
|
||||
extern char const *acpi_gbl_exception_names_pgm[];
|
||||
extern char const *acpi_gbl_exception_names_tbl[];
|
||||
extern char const *acpi_gbl_exception_names_aml[];
|
||||
extern char const *acpi_gbl_exception_names_ctrl[];
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Namespace globals
|
||||
|
|
@ -463,4 +454,12 @@ ACPI_EXTERN u32 acpi_gbl_size_of_acpi_objects;
|
|||
|
||||
#endif /* ACPI_DEBUGGER */
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Info/help support
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
extern const struct ah_predefined_name asl_predefined_info[];
|
||||
|
||||
#endif /* __ACGLOBAL_H__ */
|
||||
|
|
|
|||
|
|
@ -299,7 +299,7 @@ acpi_status(*ACPI_INTERNAL_METHOD) (struct acpi_walk_state * walk_state);
|
|||
* Information structure for ACPI predefined names.
|
||||
* Each entry in the table contains the following items:
|
||||
*
|
||||
* Name - The ACPI reserved name
|
||||
* name - The ACPI reserved name
|
||||
* param_count - Number of arguments to the method
|
||||
* expected_return_btypes - Allowed type(s) for the return value
|
||||
*/
|
||||
|
|
@ -404,6 +404,13 @@ struct acpi_gpe_handler_info {
|
|||
u8 originally_enabled; /* True if GPE was originally enabled */
|
||||
};
|
||||
|
||||
/* Notify info for implicit notify, multiple device objects */
|
||||
|
||||
struct acpi_gpe_notify_info {
|
||||
struct acpi_namespace_node *device_node; /* Device to be notified */
|
||||
struct acpi_gpe_notify_info *next;
|
||||
};
|
||||
|
||||
struct acpi_gpe_notify_object {
|
||||
struct acpi_namespace_node *node;
|
||||
struct acpi_gpe_notify_object *next;
|
||||
|
|
@ -412,7 +419,7 @@ struct acpi_gpe_notify_object {
|
|||
union acpi_gpe_dispatch_info {
|
||||
struct acpi_namespace_node *method_node; /* Method node for this GPE level */
|
||||
struct acpi_gpe_handler_info *handler; /* Installed GPE handler */
|
||||
struct acpi_gpe_notify_object device; /* List of _PRW devices for implicit notify */
|
||||
struct acpi_gpe_notify_info *notify_list; /* List of _PRW devices for implicit notifies */
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -420,7 +427,7 @@ union acpi_gpe_dispatch_info {
|
|||
* NOTE: Important to keep this struct as small as possible.
|
||||
*/
|
||||
struct acpi_gpe_event_info {
|
||||
union acpi_gpe_dispatch_info dispatch; /* Either Method or Handler */
|
||||
union acpi_gpe_dispatch_info dispatch; /* Either Method, Handler, or notify_list */
|
||||
struct acpi_gpe_register_info *register_info; /* Backpointer to register info */
|
||||
u8 flags; /* Misc info about this GPE */
|
||||
u8 gpe_number; /* This GPE */
|
||||
|
|
@ -600,13 +607,22 @@ acpi_status(*acpi_parse_downwards) (struct acpi_walk_state * walk_state,
|
|||
|
||||
typedef acpi_status(*acpi_parse_upwards) (struct acpi_walk_state * walk_state);
|
||||
|
||||
/* Global handlers for AML Notifies */
|
||||
|
||||
struct acpi_global_notify_handler {
|
||||
acpi_notify_handler handler;
|
||||
void *context;
|
||||
};
|
||||
|
||||
/*
|
||||
* Notify info - used to pass info to the deferred notify
|
||||
* handler/dispatcher.
|
||||
*/
|
||||
struct acpi_notify_info {
|
||||
ACPI_STATE_COMMON struct acpi_namespace_node *node;
|
||||
union acpi_operand_object *handler_obj;
|
||||
ACPI_STATE_COMMON u8 handler_list_id;
|
||||
struct acpi_namespace_node *node;
|
||||
union acpi_operand_object *handler_list_head;
|
||||
struct acpi_global_notify_handler *global;
|
||||
};
|
||||
|
||||
/* Generic state is union of structs above */
|
||||
|
|
@ -718,7 +734,7 @@ struct acpi_parse_obj_named {
|
|||
u32 name; /* 4-byte name or zero if no name */
|
||||
};
|
||||
|
||||
/* This version is used by the i_aSL compiler only */
|
||||
/* This version is used by the iASL compiler only */
|
||||
|
||||
#define ACPI_MAX_PARSEOP_NAME 20
|
||||
|
||||
|
|
@ -787,6 +803,7 @@ struct acpi_parse_state {
|
|||
#define ACPI_PARSEOP_IGNORE 0x01
|
||||
#define ACPI_PARSEOP_PARAMLIST 0x02
|
||||
#define ACPI_PARSEOP_EMPTY_TERMLIST 0x04
|
||||
#define ACPI_PARSEOP_PREDEF_CHECKED 0x08
|
||||
#define ACPI_PARSEOP_SPECIAL 0x10
|
||||
|
||||
/*****************************************************************************
|
||||
|
|
@ -1075,4 +1092,18 @@ struct acpi_debug_mem_block {
|
|||
#define ACPI_MEM_LIST_MAX 1
|
||||
#define ACPI_NUM_MEM_LISTS 2
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Info/help support
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
struct ah_predefined_name {
|
||||
char *name;
|
||||
char *description;
|
||||
#ifndef ACPI_ASL_COMPILER
|
||||
char *action;
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif /* __ACLOCAL_H__ */
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@
|
|||
* printf() format helpers
|
||||
*/
|
||||
|
||||
/* Split 64-bit integer into two 32-bit values. Use with %8.8_x%8.8_x */
|
||||
/* Split 64-bit integer into two 32-bit values. Use with %8.8X%8.8X */
|
||||
|
||||
#define ACPI_FORMAT_UINT64(i) ACPI_HIDWORD(i), ACPI_LODWORD(i)
|
||||
|
||||
|
|
@ -283,8 +283,8 @@
|
|||
#define ACPI_INSERT_BITS(target, mask, source) target = ((target & (~(mask))) | (source & mask))
|
||||
|
||||
/*
|
||||
* A struct acpi_namespace_node can appear in some contexts
|
||||
* where a pointer to a union acpi_operand_object can also
|
||||
* An object of type struct acpi_namespace_node can appear in some contexts
|
||||
* where a pointer to an object of type union acpi_operand_object can also
|
||||
* appear. This macro is used to distinguish them.
|
||||
*
|
||||
* The "Descriptor" field is the first field in both structures.
|
||||
|
|
|
|||
|
|
@ -113,8 +113,8 @@ struct acpi_object_integer {
|
|||
};
|
||||
|
||||
/*
|
||||
* Note: The String and Buffer object must be identical through the Pointer
|
||||
* and length elements. There is code that depends on this.
|
||||
* Note: The String and Buffer object must be identical through the
|
||||
* pointer and length elements. There is code that depends on this.
|
||||
*
|
||||
* Fields common to both Strings and Buffers
|
||||
*/
|
||||
|
|
@ -206,8 +206,7 @@ struct acpi_object_method {
|
|||
* Common fields for objects that support ASL notifications
|
||||
*/
|
||||
#define ACPI_COMMON_NOTIFY_INFO \
|
||||
union acpi_operand_object *system_notify; /* Handler for system notifies */\
|
||||
union acpi_operand_object *device_notify; /* Handler for driver notifies */\
|
||||
union acpi_operand_object *notify_list[2]; /* Handlers for system/device notifies */\
|
||||
union acpi_operand_object *handler; /* Handler for Address space */
|
||||
|
||||
struct acpi_object_notify_common { /* COMMON NOTIFY for POWER, PROCESSOR, DEVICE, and THERMAL */
|
||||
|
|
@ -296,10 +295,10 @@ struct acpi_object_buffer_field {
|
|||
|
||||
struct acpi_object_notify_handler {
|
||||
ACPI_OBJECT_COMMON_HEADER struct acpi_namespace_node *node; /* Parent device */
|
||||
u32 handler_type;
|
||||
acpi_notify_handler handler;
|
||||
u32 handler_type; /* Type: Device/System/Both */
|
||||
acpi_notify_handler handler; /* Handler address */
|
||||
void *context;
|
||||
struct acpi_object_notify_handler *next;
|
||||
union acpi_operand_object *next[2]; /* Device and System handler lists */
|
||||
};
|
||||
|
||||
struct acpi_object_addr_handler {
|
||||
|
|
@ -382,7 +381,7 @@ struct acpi_object_cache_list {
|
|||
|
||||
/******************************************************************************
|
||||
*
|
||||
* union acpi_operand_object Descriptor - a giant union of all of the above
|
||||
* union acpi_operand_object descriptor - a giant union of all of the above
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ enum acpi_return_package_types {
|
|||
*
|
||||
* The main entries in the table each contain the following items:
|
||||
*
|
||||
* Name - The ACPI reserved name
|
||||
* name - The ACPI reserved name
|
||||
* param_count - Number of arguments to the method
|
||||
* expected_btypes - Allowed type(s) for the return value.
|
||||
* 0 means that no return value is expected.
|
||||
|
|
@ -511,14 +511,14 @@ static const union acpi_predefined_info predefined_names[] =
|
|||
{{"_TMP", 0, ACPI_RTYPE_INTEGER}},
|
||||
{{"_TPC", 0, ACPI_RTYPE_INTEGER}},
|
||||
{{"_TPT", 1, 0}},
|
||||
{{"_TRT", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 2_ref/6_int */
|
||||
{{"_TRT", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 2 Ref/6 Int */
|
||||
{{{ACPI_PTYPE2, ACPI_RTYPE_REFERENCE, 2, ACPI_RTYPE_INTEGER}, 6, 0}},
|
||||
|
||||
{{"_TSD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 5_int with count */
|
||||
{{"_TSD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 5 Int with count */
|
||||
{{{ACPI_PTYPE2_COUNT,ACPI_RTYPE_INTEGER, 5,0}, 0,0}},
|
||||
|
||||
{{"_TSP", 0, ACPI_RTYPE_INTEGER}},
|
||||
{{"_TSS", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 5_int */
|
||||
{{"_TSS", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 5 Int */
|
||||
{{{ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 5,0}, 0,0}},
|
||||
|
||||
{{"_TST", 0, ACPI_RTYPE_INTEGER}},
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@
|
|||
#define ACPI_WALK_METHOD 0x01
|
||||
#define ACPI_WALK_METHOD_RESTART 0x02
|
||||
|
||||
/* Flags for i_aSL compiler only */
|
||||
/* Flags for iASL compiler only */
|
||||
|
||||
#define ACPI_WALK_CONST_REQUIRED 0x10
|
||||
#define ACPI_WALK_CONST_OPTIONAL 0x20
|
||||
|
|
|
|||
|
|
@ -460,6 +460,8 @@ acpi_ut_short_divide(u64 in_dividend,
|
|||
/*
|
||||
* utmisc
|
||||
*/
|
||||
void ut_convert_backslashes(char *pathname);
|
||||
|
||||
const char *acpi_ut_validate_exception(acpi_status status);
|
||||
|
||||
u8 acpi_ut_is_pci_root_bridge(char *id);
|
||||
|
|
|
|||
|
|
@ -182,7 +182,7 @@
|
|||
|
||||
/*
|
||||
* Combination opcodes (actually two one-byte opcodes)
|
||||
* Used by the disassembler and i_aSL compiler
|
||||
* Used by the disassembler and iASL compiler
|
||||
*/
|
||||
#define AML_LGREATEREQUAL_OP (u16) 0x9295
|
||||
#define AML_LLESSEQUAL_OP (u16) 0x9294
|
||||
|
|
@ -280,7 +280,7 @@
|
|||
|
||||
/* Multiple/complex types */
|
||||
|
||||
#define ARGI_DATAOBJECT 0x12 /* Buffer, String, package or reference to a Node - Used only by size_of operator */
|
||||
#define ARGI_DATAOBJECT 0x12 /* Buffer, String, package or reference to a node - Used only by size_of operator */
|
||||
#define ARGI_COMPLEXOBJ 0x13 /* Buffer, String, or package (Used by INDEX op only) */
|
||||
#define ARGI_REF_OR_STRING 0x14 /* Reference or String (Used by DEREFOF op only) */
|
||||
#define ARGI_REGION_OR_BUFFER 0x15 /* Used by LOAD op only */
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@
|
|||
#define ACPI_RESTAG_TRANSLATION "_TRA"
|
||||
#define ACPI_RESTAG_TRANSTYPE "_TRS" /* Sparse(1), Dense(0) */
|
||||
#define ACPI_RESTAG_TYPE "_TTP" /* Translation(1), Static (0) */
|
||||
#define ACPI_RESTAG_XFERTYPE "_SIZ" /* 8(0), 8_and16(1), 16(2) */
|
||||
#define ACPI_RESTAG_XFERTYPE "_SIZ" /* 8(0), 8And16(1), 16(2) */
|
||||
#define ACPI_RESTAG_VENDORDATA "_VEN"
|
||||
|
||||
/* Default sizes for "small" resource descriptors */
|
||||
|
|
@ -235,7 +235,7 @@ AML_RESOURCE_LARGE_HEADER_COMMON AML_RESOURCE_ADDRESS_COMMON};
|
|||
|
||||
struct aml_resource_extended_address64 {
|
||||
AML_RESOURCE_LARGE_HEADER_COMMON
|
||||
AML_RESOURCE_ADDRESS_COMMON u8 revision_iD;
|
||||
AML_RESOURCE_ADDRESS_COMMON u8 revision_ID;
|
||||
u8 reserved;
|
||||
u64 granularity;
|
||||
u64 minimum;
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ acpi_ds_execute_arguments(struct acpi_namespace_node *node,
|
|||
*
|
||||
* FUNCTION: acpi_ds_execute_arguments
|
||||
*
|
||||
* PARAMETERS: Node - Object NS node
|
||||
* PARAMETERS: node - Object NS node
|
||||
* scope_node - Parent NS node
|
||||
* aml_length - Length of executable AML
|
||||
* aml_start - Pointer to the AML
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ ACPI_MODULE_NAME("dscontrol")
|
|||
* FUNCTION: acpi_ds_exec_begin_control_op
|
||||
*
|
||||
* PARAMETERS: walk_list - The list that owns the walk stack
|
||||
* Op - The control Op
|
||||
* op - The control Op
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -153,7 +153,7 @@ acpi_ds_exec_begin_control_op(struct acpi_walk_state *walk_state,
|
|||
* FUNCTION: acpi_ds_exec_end_control_op
|
||||
*
|
||||
* PARAMETERS: walk_list - The list that owns the walk stack
|
||||
* Op - The control Op
|
||||
* op - The control Op
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
|||
|
|
@ -53,16 +53,84 @@
|
|||
ACPI_MODULE_NAME("dsfield")
|
||||
|
||||
/* Local prototypes */
|
||||
#ifdef ACPI_ASL_COMPILER
|
||||
#include "acdisasm.h"
|
||||
static acpi_status
|
||||
acpi_ds_create_external_region(acpi_status lookup_status,
|
||||
union acpi_parse_object *op,
|
||||
char *path,
|
||||
struct acpi_walk_state *walk_state,
|
||||
struct acpi_namespace_node **node);
|
||||
#endif
|
||||
|
||||
static acpi_status
|
||||
acpi_ds_get_field_names(struct acpi_create_field_info *info,
|
||||
struct acpi_walk_state *walk_state,
|
||||
union acpi_parse_object *arg);
|
||||
|
||||
#ifdef ACPI_ASL_COMPILER
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ds_create_external_region (iASL Disassembler only)
|
||||
*
|
||||
* PARAMETERS: lookup_status - Status from ns_lookup operation
|
||||
* op - Op containing the Field definition and args
|
||||
* path - Pathname of the region
|
||||
* ` walk_state - Current method state
|
||||
* node - Where the new region node is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Add region to the external list if NOT_FOUND. Create a new
|
||||
* region node/object.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
static acpi_status
|
||||
acpi_ds_create_external_region(acpi_status lookup_status,
|
||||
union acpi_parse_object *op,
|
||||
char *path,
|
||||
struct acpi_walk_state *walk_state,
|
||||
struct acpi_namespace_node **node)
|
||||
{
|
||||
acpi_status status;
|
||||
union acpi_operand_object *obj_desc;
|
||||
|
||||
if (lookup_status != AE_NOT_FOUND) {
|
||||
return (lookup_status);
|
||||
}
|
||||
|
||||
/*
|
||||
* Table disassembly:
|
||||
* operation_region not found. Generate an External for it, and
|
||||
* insert the name into the namespace.
|
||||
*/
|
||||
acpi_dm_add_to_external_list(op, path, ACPI_TYPE_REGION, 0);
|
||||
status = acpi_ns_lookup(walk_state->scope_info, path, ACPI_TYPE_REGION,
|
||||
ACPI_IMODE_LOAD_PASS1, ACPI_NS_SEARCH_PARENT,
|
||||
walk_state, node);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
return (status);
|
||||
}
|
||||
|
||||
/* Must create and install a region object for the new node */
|
||||
|
||||
obj_desc = acpi_ut_create_internal_object(ACPI_TYPE_REGION);
|
||||
if (!obj_desc) {
|
||||
return (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
obj_desc->region.node = *node;
|
||||
status = acpi_ns_attach_object(*node, obj_desc, ACPI_TYPE_REGION);
|
||||
return (status);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ds_create_buffer_field
|
||||
*
|
||||
* PARAMETERS: Op - Current parse op (create_xXField)
|
||||
* PARAMETERS: op - Current parse op (create_XXField)
|
||||
* walk_state - Current state
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -99,7 +167,7 @@ acpi_ds_create_buffer_field(union acpi_parse_object *op,
|
|||
|
||||
arg = acpi_ps_get_arg(op, 3);
|
||||
} else {
|
||||
/* For all other create_xXXField operators, name is the 3rd argument */
|
||||
/* For all other create_XXXField operators, name is the 3rd argument */
|
||||
|
||||
arg = acpi_ps_get_arg(op, 2);
|
||||
}
|
||||
|
|
@ -203,9 +271,9 @@ acpi_ds_create_buffer_field(union acpi_parse_object *op,
|
|||
*
|
||||
* FUNCTION: acpi_ds_get_field_names
|
||||
*
|
||||
* PARAMETERS: Info - create_field info structure
|
||||
* PARAMETERS: info - create_field info structure
|
||||
* ` walk_state - Current method state
|
||||
* Arg - First parser arg for the field name list
|
||||
* arg - First parser arg for the field name list
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -234,10 +302,10 @@ acpi_ds_get_field_names(struct acpi_create_field_info *info,
|
|||
while (arg) {
|
||||
/*
|
||||
* Four types of field elements are handled:
|
||||
* 1) Name - Enters a new named field into the namespace
|
||||
* 2) Offset - specifies a bit offset
|
||||
* 1) name - Enters a new named field into the namespace
|
||||
* 2) offset - specifies a bit offset
|
||||
* 3) access_as - changes the access mode/attributes
|
||||
* 4) Connection - Associate a resource template with the field
|
||||
* 4) connection - Associate a resource template with the field
|
||||
*/
|
||||
switch (arg->common.aml_opcode) {
|
||||
case AML_INT_RESERVEDFIELD_OP:
|
||||
|
|
@ -389,7 +457,7 @@ acpi_ds_get_field_names(struct acpi_create_field_info *info,
|
|||
*
|
||||
* FUNCTION: acpi_ds_create_field
|
||||
*
|
||||
* PARAMETERS: Op - Op containing the Field definition and args
|
||||
* PARAMETERS: op - Op containing the Field definition and args
|
||||
* region_node - Object for the containing Operation Region
|
||||
* ` walk_state - Current method state
|
||||
*
|
||||
|
|
@ -413,12 +481,19 @@ acpi_ds_create_field(union acpi_parse_object *op,
|
|||
/* First arg is the name of the parent op_region (must already exist) */
|
||||
|
||||
arg = op->common.value.arg;
|
||||
|
||||
if (!region_node) {
|
||||
status =
|
||||
acpi_ns_lookup(walk_state->scope_info,
|
||||
arg->common.value.name, ACPI_TYPE_REGION,
|
||||
ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT,
|
||||
walk_state, ®ion_node);
|
||||
#ifdef ACPI_ASL_COMPILER
|
||||
status = acpi_ds_create_external_region(status, arg,
|
||||
arg->common.value.name,
|
||||
walk_state,
|
||||
®ion_node);
|
||||
#endif
|
||||
if (ACPI_FAILURE(status)) {
|
||||
ACPI_ERROR_NAMESPACE(arg->common.value.name, status);
|
||||
return_ACPI_STATUS(status);
|
||||
|
|
@ -446,7 +521,7 @@ acpi_ds_create_field(union acpi_parse_object *op,
|
|||
*
|
||||
* FUNCTION: acpi_ds_init_field_objects
|
||||
*
|
||||
* PARAMETERS: Op - Op containing the Field definition and args
|
||||
* PARAMETERS: op - Op containing the Field definition and args
|
||||
* ` walk_state - Current method state
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -561,7 +636,7 @@ acpi_ds_init_field_objects(union acpi_parse_object *op,
|
|||
*
|
||||
* FUNCTION: acpi_ds_create_bank_field
|
||||
*
|
||||
* PARAMETERS: Op - Op containing the Field definition and args
|
||||
* PARAMETERS: op - Op containing the Field definition and args
|
||||
* region_node - Object for the containing Operation Region
|
||||
* walk_state - Current method state
|
||||
*
|
||||
|
|
@ -591,6 +666,12 @@ acpi_ds_create_bank_field(union acpi_parse_object *op,
|
|||
arg->common.value.name, ACPI_TYPE_REGION,
|
||||
ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT,
|
||||
walk_state, ®ion_node);
|
||||
#ifdef ACPI_ASL_COMPILER
|
||||
status = acpi_ds_create_external_region(status, arg,
|
||||
arg->common.value.name,
|
||||
walk_state,
|
||||
®ion_node);
|
||||
#endif
|
||||
if (ACPI_FAILURE(status)) {
|
||||
ACPI_ERROR_NAMESPACE(arg->common.value.name, status);
|
||||
return_ACPI_STATUS(status);
|
||||
|
|
@ -645,7 +726,7 @@ acpi_ds_create_bank_field(union acpi_parse_object *op,
|
|||
*
|
||||
* FUNCTION: acpi_ds_create_index_field
|
||||
*
|
||||
* PARAMETERS: Op - Op containing the Field definition and args
|
||||
* PARAMETERS: op - Op containing the Field definition and args
|
||||
* region_node - Object for the containing Operation Region
|
||||
* ` walk_state - Current method state
|
||||
*
|
||||
|
|
|
|||
|
|
@ -60,8 +60,8 @@ acpi_ds_init_one_object(acpi_handle obj_handle,
|
|||
* FUNCTION: acpi_ds_init_one_object
|
||||
*
|
||||
* PARAMETERS: obj_handle - Node for the object
|
||||
* Level - Current nesting level
|
||||
* Context - Points to a init info struct
|
||||
* level - Current nesting level
|
||||
* context - Points to a init info struct
|
||||
* return_value - Not used
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ acpi_ds_create_method_mutex(union acpi_operand_object *method_desc);
|
|||
*
|
||||
* FUNCTION: acpi_ds_method_error
|
||||
*
|
||||
* PARAMETERS: Status - Execution status
|
||||
* PARAMETERS: status - Execution status
|
||||
* walk_state - Current state
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -306,9 +306,9 @@ acpi_ds_begin_method_execution(struct acpi_namespace_node *method_node,
|
|||
*
|
||||
* FUNCTION: acpi_ds_call_control_method
|
||||
*
|
||||
* PARAMETERS: Thread - Info for this thread
|
||||
* PARAMETERS: thread - Info for this thread
|
||||
* this_walk_state - Current walk state
|
||||
* Op - Current Op to be walked
|
||||
* op - Current Op to be walked
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
|||
|
|
@ -177,7 +177,7 @@ void acpi_ds_method_data_delete_all(struct acpi_walk_state *walk_state)
|
|||
*
|
||||
* FUNCTION: acpi_ds_method_data_init_args
|
||||
*
|
||||
* PARAMETERS: *Params - Pointer to a parameter list for the method
|
||||
* PARAMETERS: *params - Pointer to a parameter list for the method
|
||||
* max_param_count - The arg count for this method
|
||||
* walk_state - Current walk state object
|
||||
*
|
||||
|
|
@ -232,11 +232,11 @@ acpi_ds_method_data_init_args(union acpi_operand_object **params,
|
|||
*
|
||||
* FUNCTION: acpi_ds_method_data_get_node
|
||||
*
|
||||
* PARAMETERS: Type - Either ACPI_REFCLASS_LOCAL or
|
||||
* PARAMETERS: type - Either ACPI_REFCLASS_LOCAL or
|
||||
* ACPI_REFCLASS_ARG
|
||||
* Index - Which Local or Arg whose type to get
|
||||
* index - Which Local or Arg whose type to get
|
||||
* walk_state - Current walk state object
|
||||
* Node - Where the node is returned.
|
||||
* node - Where the node is returned.
|
||||
*
|
||||
* RETURN: Status and node
|
||||
*
|
||||
|
|
@ -296,10 +296,10 @@ acpi_ds_method_data_get_node(u8 type,
|
|||
*
|
||||
* FUNCTION: acpi_ds_method_data_set_value
|
||||
*
|
||||
* PARAMETERS: Type - Either ACPI_REFCLASS_LOCAL or
|
||||
* PARAMETERS: type - Either ACPI_REFCLASS_LOCAL or
|
||||
* ACPI_REFCLASS_ARG
|
||||
* Index - Which Local or Arg to get
|
||||
* Object - Object to be inserted into the stack entry
|
||||
* index - Which Local or Arg to get
|
||||
* object - Object to be inserted into the stack entry
|
||||
* walk_state - Current walk state object
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -336,7 +336,7 @@ acpi_ds_method_data_set_value(u8 type,
|
|||
* Increment ref count so object can't be deleted while installed.
|
||||
* NOTE: We do not copy the object in order to preserve the call by
|
||||
* reference semantics of ACPI Control Method invocation.
|
||||
* (See ACPI Specification 2.0_c)
|
||||
* (See ACPI Specification 2.0C)
|
||||
*/
|
||||
acpi_ut_add_reference(object);
|
||||
|
||||
|
|
@ -350,9 +350,9 @@ acpi_ds_method_data_set_value(u8 type,
|
|||
*
|
||||
* FUNCTION: acpi_ds_method_data_get_value
|
||||
*
|
||||
* PARAMETERS: Type - Either ACPI_REFCLASS_LOCAL or
|
||||
* PARAMETERS: type - Either ACPI_REFCLASS_LOCAL or
|
||||
* ACPI_REFCLASS_ARG
|
||||
* Index - Which local_var or argument to get
|
||||
* index - Which localVar or argument to get
|
||||
* walk_state - Current walk state object
|
||||
* dest_desc - Where Arg or Local value is returned
|
||||
*
|
||||
|
|
@ -458,9 +458,9 @@ acpi_ds_method_data_get_value(u8 type,
|
|||
*
|
||||
* FUNCTION: acpi_ds_method_data_delete_value
|
||||
*
|
||||
* PARAMETERS: Type - Either ACPI_REFCLASS_LOCAL or
|
||||
* PARAMETERS: type - Either ACPI_REFCLASS_LOCAL or
|
||||
* ACPI_REFCLASS_ARG
|
||||
* Index - Which local_var or argument to delete
|
||||
* index - Which localVar or argument to delete
|
||||
* walk_state - Current walk state object
|
||||
*
|
||||
* RETURN: None
|
||||
|
|
@ -515,9 +515,9 @@ acpi_ds_method_data_delete_value(u8 type,
|
|||
*
|
||||
* FUNCTION: acpi_ds_store_object_to_local
|
||||
*
|
||||
* PARAMETERS: Type - Either ACPI_REFCLASS_LOCAL or
|
||||
* PARAMETERS: type - Either ACPI_REFCLASS_LOCAL or
|
||||
* ACPI_REFCLASS_ARG
|
||||
* Index - Which Local or Arg to set
|
||||
* index - Which Local or Arg to set
|
||||
* obj_desc - Value to be stored
|
||||
* walk_state - Current walk state
|
||||
*
|
||||
|
|
@ -670,8 +670,8 @@ acpi_ds_store_object_to_local(u8 type,
|
|||
*
|
||||
* FUNCTION: acpi_ds_method_data_get_type
|
||||
*
|
||||
* PARAMETERS: Opcode - Either AML_LOCAL_OP or AML_ARG_OP
|
||||
* Index - Which Local or Arg whose type to get
|
||||
* PARAMETERS: opcode - Either AML_LOCAL_OP or AML_ARG_OP
|
||||
* index - Which Local or Arg whose type to get
|
||||
* walk_state - Current walk state object
|
||||
*
|
||||
* RETURN: Data type of current value of the selected Arg or Local
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ acpi_ds_build_internal_object(struct acpi_walk_state *walk_state,
|
|||
* FUNCTION: acpi_ds_build_internal_object
|
||||
*
|
||||
* PARAMETERS: walk_state - Current walk state
|
||||
* Op - Parser object to be translated
|
||||
* op - Parser object to be translated
|
||||
* obj_desc_ptr - Where the ACPI internal object is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -250,7 +250,7 @@ acpi_ds_build_internal_object(struct acpi_walk_state *walk_state,
|
|||
* FUNCTION: acpi_ds_build_internal_buffer_obj
|
||||
*
|
||||
* PARAMETERS: walk_state - Current walk state
|
||||
* Op - Parser object to be translated
|
||||
* op - Parser object to be translated
|
||||
* buffer_length - Length of the buffer
|
||||
* obj_desc_ptr - Where the ACPI internal object is returned
|
||||
*
|
||||
|
|
@ -354,7 +354,7 @@ acpi_ds_build_internal_buffer_obj(struct acpi_walk_state *walk_state,
|
|||
* FUNCTION: acpi_ds_build_internal_package_obj
|
||||
*
|
||||
* PARAMETERS: walk_state - Current walk state
|
||||
* Op - Parser object to be translated
|
||||
* op - Parser object to be translated
|
||||
* element_count - Number of elements in the package - this is
|
||||
* the num_elements argument to Package()
|
||||
* obj_desc_ptr - Where the ACPI internal object is returned
|
||||
|
|
@ -547,8 +547,8 @@ acpi_ds_build_internal_package_obj(struct acpi_walk_state *walk_state,
|
|||
* FUNCTION: acpi_ds_create_node
|
||||
*
|
||||
* PARAMETERS: walk_state - Current walk state
|
||||
* Node - NS Node to be initialized
|
||||
* Op - Parser object to be translated
|
||||
* node - NS Node to be initialized
|
||||
* op - Parser object to be translated
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -611,8 +611,8 @@ acpi_ds_create_node(struct acpi_walk_state *walk_state,
|
|||
* FUNCTION: acpi_ds_init_object_from_op
|
||||
*
|
||||
* PARAMETERS: walk_state - Current walk state
|
||||
* Op - Parser op used to init the internal object
|
||||
* Opcode - AML opcode associated with the object
|
||||
* op - Parser op used to init the internal object
|
||||
* opcode - AML opcode associated with the object
|
||||
* ret_obj_desc - Namespace object to be initialized
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
|
|||
|
|
@ -286,7 +286,7 @@ acpi_ds_init_buffer_field(u16 aml_opcode,
|
|||
* FUNCTION: acpi_ds_eval_buffer_field_operands
|
||||
*
|
||||
* PARAMETERS: walk_state - Current walk
|
||||
* Op - A valid buffer_field Op object
|
||||
* op - A valid buffer_field Op object
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -370,7 +370,7 @@ acpi_ds_eval_buffer_field_operands(struct acpi_walk_state *walk_state,
|
|||
* FUNCTION: acpi_ds_eval_region_operands
|
||||
*
|
||||
* PARAMETERS: walk_state - Current walk
|
||||
* Op - A valid region Op object
|
||||
* op - A valid region Op object
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -397,7 +397,7 @@ acpi_ds_eval_region_operands(struct acpi_walk_state *walk_state,
|
|||
*/
|
||||
node = op->common.node;
|
||||
|
||||
/* next_op points to the op that holds the space_iD */
|
||||
/* next_op points to the op that holds the space_ID */
|
||||
|
||||
next_op = op->common.value.arg;
|
||||
|
||||
|
|
@ -461,7 +461,7 @@ acpi_ds_eval_region_operands(struct acpi_walk_state *walk_state,
|
|||
* FUNCTION: acpi_ds_eval_table_region_operands
|
||||
*
|
||||
* PARAMETERS: walk_state - Current walk
|
||||
* Op - A valid region Op object
|
||||
* op - A valid region Op object
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -560,7 +560,7 @@ acpi_ds_eval_table_region_operands(struct acpi_walk_state *walk_state,
|
|||
* FUNCTION: acpi_ds_eval_data_object_operands
|
||||
*
|
||||
* PARAMETERS: walk_state - Current walk
|
||||
* Op - A valid data_object Op object
|
||||
* op - A valid data_object Op object
|
||||
* obj_desc - data_object
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -662,7 +662,7 @@ acpi_ds_eval_data_object_operands(struct acpi_walk_state *walk_state,
|
|||
* FUNCTION: acpi_ds_eval_bank_field_operands
|
||||
*
|
||||
* PARAMETERS: walk_state - Current walk
|
||||
* Op - A valid bank_field Op object
|
||||
* op - A valid bank_field Op object
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
|||
|
|
@ -157,7 +157,7 @@ acpi_ds_do_implicit_return(union acpi_operand_object *return_desc,
|
|||
*
|
||||
* FUNCTION: acpi_ds_is_result_used
|
||||
*
|
||||
* PARAMETERS: Op - Current Op
|
||||
* PARAMETERS: op - Current Op
|
||||
* walk_state - Current State
|
||||
*
|
||||
* RETURN: TRUE if result is used, FALSE otherwise
|
||||
|
|
@ -323,7 +323,7 @@ acpi_ds_is_result_used(union acpi_parse_object * op,
|
|||
*
|
||||
* FUNCTION: acpi_ds_delete_result_if_not_used
|
||||
*
|
||||
* PARAMETERS: Op - Current parse Op
|
||||
* PARAMETERS: op - Current parse Op
|
||||
* result_obj - Result of the operation
|
||||
* walk_state - Current state
|
||||
*
|
||||
|
|
@ -445,7 +445,7 @@ void acpi_ds_clear_operands(struct acpi_walk_state *walk_state)
|
|||
* FUNCTION: acpi_ds_create_operand
|
||||
*
|
||||
* PARAMETERS: walk_state - Current walk state
|
||||
* Arg - Parse object for the argument
|
||||
* arg - Parse object for the argument
|
||||
* arg_index - Which argument (zero based)
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
|
|||
|
|
@ -85,8 +85,8 @@ void acpi_ds_scope_stack_clear(struct acpi_walk_state *walk_state)
|
|||
*
|
||||
* FUNCTION: acpi_ds_scope_stack_push
|
||||
*
|
||||
* PARAMETERS: Node - Name to be made current
|
||||
* Type - Type of frame being pushed
|
||||
* PARAMETERS: node - Name to be made current
|
||||
* type - Type of frame being pushed
|
||||
* walk_state - Current state
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ static acpi_status acpi_ds_result_stack_pop(struct acpi_walk_state *ws);
|
|||
*
|
||||
* FUNCTION: acpi_ds_result_pop
|
||||
*
|
||||
* PARAMETERS: Object - Where to return the popped object
|
||||
* PARAMETERS: object - Where to return the popped object
|
||||
* walk_state - Current Walk state
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -132,7 +132,7 @@ acpi_ds_result_pop(union acpi_operand_object **object,
|
|||
*
|
||||
* FUNCTION: acpi_ds_result_push
|
||||
*
|
||||
* PARAMETERS: Object - Where to return the popped object
|
||||
* PARAMETERS: object - Where to return the popped object
|
||||
* walk_state - Current Walk state
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -296,7 +296,7 @@ static acpi_status acpi_ds_result_stack_pop(struct acpi_walk_state *walk_state)
|
|||
*
|
||||
* FUNCTION: acpi_ds_obj_stack_push
|
||||
*
|
||||
* PARAMETERS: Object - Object to push
|
||||
* PARAMETERS: object - Object to push
|
||||
* walk_state - Current Walk state
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -433,7 +433,7 @@ acpi_ds_obj_stack_pop_and_delete(u32 pop_count,
|
|||
*
|
||||
* FUNCTION: acpi_ds_get_current_walk_state
|
||||
*
|
||||
* PARAMETERS: Thread - Get current active state for this Thread
|
||||
* PARAMETERS: thread - Get current active state for this Thread
|
||||
*
|
||||
* RETURN: Pointer to the current walk state
|
||||
*
|
||||
|
|
@ -462,7 +462,7 @@ struct acpi_walk_state *acpi_ds_get_current_walk_state(struct acpi_thread_state
|
|||
* FUNCTION: acpi_ds_push_walk_state
|
||||
*
|
||||
* PARAMETERS: walk_state - State to push
|
||||
* Thread - Thread state object
|
||||
* thread - Thread state object
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -486,7 +486,7 @@ acpi_ds_push_walk_state(struct acpi_walk_state *walk_state,
|
|||
*
|
||||
* FUNCTION: acpi_ds_pop_walk_state
|
||||
*
|
||||
* PARAMETERS: Thread - Current thread state
|
||||
* PARAMETERS: thread - Current thread state
|
||||
*
|
||||
* RETURN: A walk_state object popped from the thread's stack
|
||||
*
|
||||
|
|
@ -525,9 +525,9 @@ struct acpi_walk_state *acpi_ds_pop_walk_state(struct acpi_thread_state *thread)
|
|||
* FUNCTION: acpi_ds_create_walk_state
|
||||
*
|
||||
* PARAMETERS: owner_id - ID for object creation
|
||||
* Origin - Starting point for this walk
|
||||
* origin - Starting point for this walk
|
||||
* method_desc - Method object
|
||||
* Thread - Current thread state
|
||||
* thread - Current thread state
|
||||
*
|
||||
* RETURN: Pointer to the new walk state.
|
||||
*
|
||||
|
|
@ -578,11 +578,11 @@ struct acpi_walk_state *acpi_ds_create_walk_state(acpi_owner_id owner_id, union
|
|||
* FUNCTION: acpi_ds_init_aml_walk
|
||||
*
|
||||
* PARAMETERS: walk_state - New state to be initialized
|
||||
* Op - Current parse op
|
||||
* op - Current parse op
|
||||
* method_node - Control method NS node, if any
|
||||
* aml_start - Start of AML
|
||||
* aml_length - Length of AML
|
||||
* Info - Method info block (params, etc.)
|
||||
* info - Method info block (params, etc.)
|
||||
* pass_number - 1, 2, or 3
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
|
|||
|
|
@ -251,7 +251,7 @@ u32 acpi_ev_fixed_event_detect(void)
|
|||
*
|
||||
* FUNCTION: acpi_ev_fixed_event_dispatch
|
||||
*
|
||||
* PARAMETERS: Event - Event type
|
||||
* PARAMETERS: event - Event type
|
||||
*
|
||||
* RETURN: INTERRUPT_HANDLED or INTERRUPT_NOT_HANDLED
|
||||
*
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ acpi_status acpi_ev_remove_global_lock_handler(void)
|
|||
*
|
||||
* FUNCTION: acpi_ev_global_lock_handler
|
||||
*
|
||||
* PARAMETERS: Context - From thread interface, not used
|
||||
* PARAMETERS: context - From thread interface, not used
|
||||
*
|
||||
* RETURN: ACPI_INTERRUPT_HANDLED
|
||||
*
|
||||
|
|
@ -182,7 +182,7 @@ static u32 acpi_ev_global_lock_handler(void *context)
|
|||
*
|
||||
* FUNCTION: acpi_ev_acquire_global_lock
|
||||
*
|
||||
* PARAMETERS: Timeout - Max time to wait for the lock, in millisec.
|
||||
* PARAMETERS: timeout - Max time to wait for the lock, in millisec.
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
|||
|
|
@ -466,7 +466,7 @@ static void ACPI_SYSTEM_XFACE acpi_ev_asynch_execute_gpe_method(void *context)
|
|||
acpi_status status;
|
||||
struct acpi_gpe_event_info *local_gpe_event_info;
|
||||
struct acpi_evaluate_info *info;
|
||||
struct acpi_gpe_notify_object *notify_object;
|
||||
struct acpi_gpe_notify_info *notify;
|
||||
|
||||
ACPI_FUNCTION_TRACE(ev_asynch_execute_gpe_method);
|
||||
|
||||
|
|
@ -517,17 +517,17 @@ static void ACPI_SYSTEM_XFACE acpi_ev_asynch_execute_gpe_method(void *context)
|
|||
* completes. The notify handlers are NOT invoked synchronously
|
||||
* from this thread -- because handlers may in turn run other
|
||||
* control methods.
|
||||
*
|
||||
* June 2012: Expand implicit notify mechanism to support
|
||||
* notifies on multiple device objects.
|
||||
*/
|
||||
status = acpi_ev_queue_notify_request(
|
||||
local_gpe_event_info->dispatch.device.node,
|
||||
ACPI_NOTIFY_DEVICE_WAKE);
|
||||
notify = local_gpe_event_info->dispatch.notify_list;
|
||||
while (ACPI_SUCCESS(status) && notify) {
|
||||
status =
|
||||
acpi_ev_queue_notify_request(notify->device_node,
|
||||
ACPI_NOTIFY_DEVICE_WAKE);
|
||||
|
||||
notify_object = local_gpe_event_info->dispatch.device.next;
|
||||
while (ACPI_SUCCESS(status) && notify_object) {
|
||||
status = acpi_ev_queue_notify_request(
|
||||
notify_object->node,
|
||||
ACPI_NOTIFY_DEVICE_WAKE);
|
||||
notify_object = notify_object->next;
|
||||
notify = notify->next;
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -318,7 +318,7 @@ acpi_ev_create_gpe_info_blocks(struct acpi_gpe_block_info *gpe_block)
|
|||
* FUNCTION: acpi_ev_create_gpe_block
|
||||
*
|
||||
* PARAMETERS: gpe_device - Handle to the parent GPE block
|
||||
* gpe_block_address - Address and space_iD
|
||||
* gpe_block_address - Address and space_ID
|
||||
* register_count - Number of GPE register pairs in the block
|
||||
* gpe_block_base_number - Starting GPE number for the block
|
||||
* interrupt_number - H/W interrupt for the block
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ ACPI_MODULE_NAME("evgpeutil")
|
|||
* FUNCTION: acpi_ev_walk_gpe_list
|
||||
*
|
||||
* PARAMETERS: gpe_walk_callback - Routine called for each GPE block
|
||||
* Context - Value passed to callback
|
||||
* context - Value passed to callback
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -347,6 +347,8 @@ acpi_ev_delete_gpe_handlers(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
|
|||
void *context)
|
||||
{
|
||||
struct acpi_gpe_event_info *gpe_event_info;
|
||||
struct acpi_gpe_notify_info *notify;
|
||||
struct acpi_gpe_notify_info *next;
|
||||
u32 i;
|
||||
u32 j;
|
||||
|
||||
|
|
@ -365,10 +367,28 @@ acpi_ev_delete_gpe_handlers(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
|
|||
|
||||
if ((gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK) ==
|
||||
ACPI_GPE_DISPATCH_HANDLER) {
|
||||
|
||||
/* Delete an installed handler block */
|
||||
|
||||
ACPI_FREE(gpe_event_info->dispatch.handler);
|
||||
gpe_event_info->dispatch.handler = NULL;
|
||||
gpe_event_info->flags &=
|
||||
~ACPI_GPE_DISPATCH_MASK;
|
||||
} else if ((gpe_event_info->
|
||||
flags & ACPI_GPE_DISPATCH_MASK) ==
|
||||
ACPI_GPE_DISPATCH_NOTIFY) {
|
||||
|
||||
/* Delete the implicit notification device list */
|
||||
|
||||
notify = gpe_event_info->dispatch.notify_list;
|
||||
while (notify) {
|
||||
next = notify->next;
|
||||
ACPI_FREE(notify);
|
||||
notify = next;
|
||||
}
|
||||
gpe_event_info->dispatch.notify_list = NULL;
|
||||
gpe_event_info->flags &=
|
||||
~ACPI_GPE_DISPATCH_MASK;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ static void ACPI_SYSTEM_XFACE acpi_ev_notify_dispatch(void *context);
|
|||
*
|
||||
* FUNCTION: acpi_ev_is_notify_object
|
||||
*
|
||||
* PARAMETERS: Node - Node to check
|
||||
* PARAMETERS: node - Node to check
|
||||
*
|
||||
* RETURN: TRUE if notifies allowed on this object
|
||||
*
|
||||
|
|
@ -86,7 +86,7 @@ u8 acpi_ev_is_notify_object(struct acpi_namespace_node *node)
|
|||
*
|
||||
* FUNCTION: acpi_ev_queue_notify_request
|
||||
*
|
||||
* PARAMETERS: Node - NS node for the notified object
|
||||
* PARAMETERS: node - NS node for the notified object
|
||||
* notify_value - Value from the Notify() request
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -101,102 +101,77 @@ acpi_ev_queue_notify_request(struct acpi_namespace_node * node,
|
|||
u32 notify_value)
|
||||
{
|
||||
union acpi_operand_object *obj_desc;
|
||||
union acpi_operand_object *handler_obj = NULL;
|
||||
union acpi_generic_state *notify_info;
|
||||
union acpi_operand_object *handler_list_head = NULL;
|
||||
union acpi_generic_state *info;
|
||||
u8 handler_list_id = 0;
|
||||
acpi_status status = AE_OK;
|
||||
|
||||
ACPI_FUNCTION_NAME(ev_queue_notify_request);
|
||||
|
||||
/* Are Notifies allowed on this object? */
|
||||
|
||||
if (!acpi_ev_is_notify_object(node)) {
|
||||
return (AE_TYPE);
|
||||
}
|
||||
|
||||
/* Get the correct notify list type (System or Device) */
|
||||
|
||||
if (notify_value <= ACPI_MAX_SYS_NOTIFY) {
|
||||
handler_list_id = ACPI_SYSTEM_HANDLER_LIST;
|
||||
} else {
|
||||
handler_list_id = ACPI_DEVICE_HANDLER_LIST;
|
||||
}
|
||||
|
||||
/* Get the notify object attached to the namespace Node */
|
||||
|
||||
obj_desc = acpi_ns_get_attached_object(node);
|
||||
if (obj_desc) {
|
||||
|
||||
/* We have an attached object, Get the correct handler list */
|
||||
|
||||
handler_list_head =
|
||||
obj_desc->common_notify.notify_list[handler_list_id];
|
||||
}
|
||||
|
||||
/*
|
||||
* For value 0x03 (Ejection Request), may need to run a device method.
|
||||
* For value 0x02 (Device Wake), if _PRW exists, may need to run
|
||||
* the _PS0 method.
|
||||
* For value 0x80 (Status Change) on the power button or sleep button,
|
||||
* initiate soft-off or sleep operation.
|
||||
*
|
||||
* For all cases, simply dispatch the notify to the handler.
|
||||
* If there is no notify handler (Global or Local)
|
||||
* for this object, just ignore the notify
|
||||
*/
|
||||
if (!acpi_gbl_global_notify[handler_list_id].handler
|
||||
&& !handler_list_head) {
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
|
||||
"No notify handler for Notify, ignoring (%4.4s, %X) node %p\n",
|
||||
acpi_ut_get_node_name(node), notify_value,
|
||||
node));
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
/* Setup notify info and schedule the notify dispatcher */
|
||||
|
||||
info = acpi_ut_create_generic_state();
|
||||
if (!info) {
|
||||
return (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
info->common.descriptor_type = ACPI_DESC_TYPE_STATE_NOTIFY;
|
||||
|
||||
info->notify.node = node;
|
||||
info->notify.value = (u16)notify_value;
|
||||
info->notify.handler_list_id = handler_list_id;
|
||||
info->notify.handler_list_head = handler_list_head;
|
||||
info->notify.global = &acpi_gbl_global_notify[handler_list_id];
|
||||
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
|
||||
"Dispatching Notify on [%4.4s] (%s) Value 0x%2.2X (%s) Node %p\n",
|
||||
acpi_ut_get_node_name(node),
|
||||
acpi_ut_get_type_name(node->type), notify_value,
|
||||
acpi_ut_get_notify_name(notify_value), node));
|
||||
|
||||
/* Get the notify object attached to the NS Node */
|
||||
|
||||
obj_desc = acpi_ns_get_attached_object(node);
|
||||
if (obj_desc) {
|
||||
|
||||
/* We have the notify object, Get the correct handler */
|
||||
|
||||
switch (node->type) {
|
||||
|
||||
/* Notify is allowed only on these types */
|
||||
|
||||
case ACPI_TYPE_DEVICE:
|
||||
case ACPI_TYPE_THERMAL:
|
||||
case ACPI_TYPE_PROCESSOR:
|
||||
|
||||
if (notify_value <= ACPI_MAX_SYS_NOTIFY) {
|
||||
handler_obj =
|
||||
obj_desc->common_notify.system_notify;
|
||||
} else {
|
||||
handler_obj =
|
||||
obj_desc->common_notify.device_notify;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
/* All other types are not supported */
|
||||
|
||||
return (AE_TYPE);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If there is a handler to run, schedule the dispatcher.
|
||||
* Check for:
|
||||
* 1) Global system notify handler
|
||||
* 2) Global device notify handler
|
||||
* 3) Per-device notify handler
|
||||
*/
|
||||
if ((acpi_gbl_system_notify.handler &&
|
||||
(notify_value <= ACPI_MAX_SYS_NOTIFY)) ||
|
||||
(acpi_gbl_device_notify.handler &&
|
||||
(notify_value > ACPI_MAX_SYS_NOTIFY)) || handler_obj) {
|
||||
notify_info = acpi_ut_create_generic_state();
|
||||
if (!notify_info) {
|
||||
return (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
if (!handler_obj) {
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
|
||||
"Executing system notify handler for Notify (%4.4s, %X) "
|
||||
"node %p\n",
|
||||
acpi_ut_get_node_name(node),
|
||||
notify_value, node));
|
||||
}
|
||||
|
||||
notify_info->common.descriptor_type =
|
||||
ACPI_DESC_TYPE_STATE_NOTIFY;
|
||||
notify_info->notify.node = node;
|
||||
notify_info->notify.value = (u16) notify_value;
|
||||
notify_info->notify.handler_obj = handler_obj;
|
||||
|
||||
status =
|
||||
acpi_os_execute(OSL_NOTIFY_HANDLER, acpi_ev_notify_dispatch,
|
||||
notify_info);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
acpi_ut_delete_generic_state(notify_info);
|
||||
}
|
||||
} else {
|
||||
/* There is no notify handler (per-device or system) for this device */
|
||||
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
|
||||
"No notify handler for Notify (%4.4s, %X) node %p\n",
|
||||
acpi_ut_get_node_name(node), notify_value,
|
||||
node));
|
||||
status = acpi_os_execute(OSL_NOTIFY_HANDLER, acpi_ev_notify_dispatch,
|
||||
info);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
acpi_ut_delete_generic_state(info);
|
||||
}
|
||||
|
||||
return (status);
|
||||
|
|
@ -206,7 +181,7 @@ acpi_ev_queue_notify_request(struct acpi_namespace_node * node,
|
|||
*
|
||||
* FUNCTION: acpi_ev_notify_dispatch
|
||||
*
|
||||
* PARAMETERS: Context - To be passed to the notify handler
|
||||
* PARAMETERS: context - To be passed to the notify handler
|
||||
*
|
||||
* RETURN: None.
|
||||
*
|
||||
|
|
@ -217,60 +192,34 @@ acpi_ev_queue_notify_request(struct acpi_namespace_node * node,
|
|||
|
||||
static void ACPI_SYSTEM_XFACE acpi_ev_notify_dispatch(void *context)
|
||||
{
|
||||
union acpi_generic_state *notify_info =
|
||||
(union acpi_generic_state *)context;
|
||||
acpi_notify_handler global_handler = NULL;
|
||||
void *global_context = NULL;
|
||||
union acpi_generic_state *info = (union acpi_generic_state *)context;
|
||||
union acpi_operand_object *handler_obj;
|
||||
|
||||
ACPI_FUNCTION_ENTRY();
|
||||
|
||||
/*
|
||||
* We will invoke a global notify handler if installed. This is done
|
||||
* _before_ we invoke the per-device handler attached to the device.
|
||||
*/
|
||||
if (notify_info->notify.value <= ACPI_MAX_SYS_NOTIFY) {
|
||||
/* Invoke a global notify handler if installed */
|
||||
|
||||
/* Global system notification handler */
|
||||
|
||||
if (acpi_gbl_system_notify.handler) {
|
||||
global_handler = acpi_gbl_system_notify.handler;
|
||||
global_context = acpi_gbl_system_notify.context;
|
||||
}
|
||||
} else {
|
||||
/* Global driver notification handler */
|
||||
|
||||
if (acpi_gbl_device_notify.handler) {
|
||||
global_handler = acpi_gbl_device_notify.handler;
|
||||
global_context = acpi_gbl_device_notify.context;
|
||||
}
|
||||
if (info->notify.global->handler) {
|
||||
info->notify.global->handler(info->notify.node,
|
||||
info->notify.value,
|
||||
info->notify.global->context);
|
||||
}
|
||||
|
||||
/* Invoke the system handler first, if present */
|
||||
/* Now invoke the local notify handler(s) if any are installed */
|
||||
|
||||
if (global_handler) {
|
||||
global_handler(notify_info->notify.node,
|
||||
notify_info->notify.value, global_context);
|
||||
}
|
||||
handler_obj = info->notify.handler_list_head;
|
||||
while (handler_obj) {
|
||||
handler_obj->notify.handler(info->notify.node,
|
||||
info->notify.value,
|
||||
handler_obj->notify.context);
|
||||
|
||||
/* Now invoke the per-device handler, if present */
|
||||
|
||||
handler_obj = notify_info->notify.handler_obj;
|
||||
if (handler_obj) {
|
||||
struct acpi_object_notify_handler *notifier;
|
||||
|
||||
notifier = &handler_obj->notify;
|
||||
while (notifier) {
|
||||
notifier->handler(notify_info->notify.node,
|
||||
notify_info->notify.value,
|
||||
notifier->context);
|
||||
notifier = notifier->next;
|
||||
}
|
||||
handler_obj =
|
||||
handler_obj->notify.next[info->notify.handler_list_id];
|
||||
}
|
||||
|
||||
/* All done with the info object */
|
||||
|
||||
acpi_ut_delete_generic_state(notify_info);
|
||||
acpi_ut_delete_generic_state(info);
|
||||
}
|
||||
|
||||
#if (!ACPI_REDUCED_HARDWARE)
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ acpi_status acpi_ev_install_region_handlers(void)
|
|||
*
|
||||
* FUNCTION: acpi_ev_has_default_handler
|
||||
*
|
||||
* PARAMETERS: Node - Namespace node for the device
|
||||
* PARAMETERS: node - Namespace node for the device
|
||||
* space_id - The address space ID
|
||||
*
|
||||
* RETURN: TRUE if default handler is installed, FALSE otherwise
|
||||
|
|
@ -244,7 +244,7 @@ acpi_status acpi_ev_initialize_op_regions(void)
|
|||
* FUNCTION: acpi_ev_execute_reg_method
|
||||
*
|
||||
* PARAMETERS: region_obj - Region object
|
||||
* Function - Passed to _REG: On (1) or Off (0)
|
||||
* function - Passed to _REG: On (1) or Off (0)
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -286,10 +286,10 @@ acpi_ev_execute_reg_method(union acpi_operand_object *region_obj, u32 function)
|
|||
/*
|
||||
* The _REG method has two arguments:
|
||||
*
|
||||
* Arg0 - Integer:
|
||||
* arg0 - Integer:
|
||||
* Operation region space ID Same value as region_obj->Region.space_id
|
||||
*
|
||||
* Arg1 - Integer:
|
||||
* arg1 - Integer:
|
||||
* connection status 1 for connecting the handler, 0 for disconnecting
|
||||
* the handler (Passed as a parameter)
|
||||
*/
|
||||
|
|
@ -330,10 +330,10 @@ acpi_ev_execute_reg_method(union acpi_operand_object *region_obj, u32 function)
|
|||
*
|
||||
* PARAMETERS: region_obj - Internal region object
|
||||
* field_obj - Corresponding field. Can be NULL.
|
||||
* Function - Read or Write operation
|
||||
* function - Read or Write operation
|
||||
* region_offset - Where in the region to read or write
|
||||
* bit_width - Field width in bits (8, 16, 32, or 64)
|
||||
* Value - Pointer to in or out value, must be
|
||||
* value - Pointer to in or out value, must be
|
||||
* a full 64-bit integer
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -840,11 +840,11 @@ acpi_ev_install_handler(acpi_handle obj_handle,
|
|||
*
|
||||
* FUNCTION: acpi_ev_install_space_handler
|
||||
*
|
||||
* PARAMETERS: Node - Namespace node for the device
|
||||
* PARAMETERS: node - Namespace node for the device
|
||||
* space_id - The address space ID
|
||||
* Handler - Address of the handler
|
||||
* Setup - Address of the setup function
|
||||
* Context - Value passed to the handler on each access
|
||||
* handler - Address of the handler
|
||||
* setup - Address of the setup function
|
||||
* context - Value passed to the handler on each access
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -1061,7 +1061,7 @@ acpi_ev_install_space_handler(struct acpi_namespace_node * node,
|
|||
*
|
||||
* FUNCTION: acpi_ev_execute_reg_methods
|
||||
*
|
||||
* PARAMETERS: Node - Namespace node for the device
|
||||
* PARAMETERS: node - Namespace node for the device
|
||||
* space_id - The address space ID
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -1104,7 +1104,7 @@ acpi_ev_execute_reg_methods(struct acpi_namespace_node *node,
|
|||
*
|
||||
* PARAMETERS: walk_namespace callback
|
||||
*
|
||||
* DESCRIPTION: Run _REG method for region objects of the requested space_iD
|
||||
* DESCRIPTION: Run _REG method for region objects of the requested spaceID
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
|
|
|||
|
|
@ -56,8 +56,8 @@ static u8 acpi_ev_is_pci_root_bridge(struct acpi_namespace_node *node);
|
|||
*
|
||||
* FUNCTION: acpi_ev_system_memory_region_setup
|
||||
*
|
||||
* PARAMETERS: Handle - Region we are interested in
|
||||
* Function - Start or stop
|
||||
* PARAMETERS: handle - Region we are interested in
|
||||
* function - Start or stop
|
||||
* handler_context - Address space handler context
|
||||
* region_context - Region specific context
|
||||
*
|
||||
|
|
@ -118,8 +118,8 @@ acpi_ev_system_memory_region_setup(acpi_handle handle,
|
|||
*
|
||||
* FUNCTION: acpi_ev_io_space_region_setup
|
||||
*
|
||||
* PARAMETERS: Handle - Region we are interested in
|
||||
* Function - Start or stop
|
||||
* PARAMETERS: handle - Region we are interested in
|
||||
* function - Start or stop
|
||||
* handler_context - Address space handler context
|
||||
* region_context - Region specific context
|
||||
*
|
||||
|
|
@ -149,8 +149,8 @@ acpi_ev_io_space_region_setup(acpi_handle handle,
|
|||
*
|
||||
* FUNCTION: acpi_ev_pci_config_region_setup
|
||||
*
|
||||
* PARAMETERS: Handle - Region we are interested in
|
||||
* Function - Start or stop
|
||||
* PARAMETERS: handle - Region we are interested in
|
||||
* function - Start or stop
|
||||
* handler_context - Address space handler context
|
||||
* region_context - Region specific context
|
||||
*
|
||||
|
|
@ -338,7 +338,7 @@ acpi_ev_pci_config_region_setup(acpi_handle handle,
|
|||
*
|
||||
* FUNCTION: acpi_ev_is_pci_root_bridge
|
||||
*
|
||||
* PARAMETERS: Node - Device node being examined
|
||||
* PARAMETERS: node - Device node being examined
|
||||
*
|
||||
* RETURN: TRUE if device is a PCI/PCI-Express Root Bridge
|
||||
*
|
||||
|
|
@ -393,14 +393,14 @@ static u8 acpi_ev_is_pci_root_bridge(struct acpi_namespace_node *node)
|
|||
*
|
||||
* FUNCTION: acpi_ev_pci_bar_region_setup
|
||||
*
|
||||
* PARAMETERS: Handle - Region we are interested in
|
||||
* Function - Start or stop
|
||||
* PARAMETERS: handle - Region we are interested in
|
||||
* function - Start or stop
|
||||
* handler_context - Address space handler context
|
||||
* region_context - Region specific context
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Setup a pci_bAR operation region
|
||||
* DESCRIPTION: Setup a pci_BAR operation region
|
||||
*
|
||||
* MUTEX: Assumes namespace is not locked
|
||||
*
|
||||
|
|
@ -420,8 +420,8 @@ acpi_ev_pci_bar_region_setup(acpi_handle handle,
|
|||
*
|
||||
* FUNCTION: acpi_ev_cmos_region_setup
|
||||
*
|
||||
* PARAMETERS: Handle - Region we are interested in
|
||||
* Function - Start or stop
|
||||
* PARAMETERS: handle - Region we are interested in
|
||||
* function - Start or stop
|
||||
* handler_context - Address space handler context
|
||||
* region_context - Region specific context
|
||||
*
|
||||
|
|
@ -447,8 +447,8 @@ acpi_ev_cmos_region_setup(acpi_handle handle,
|
|||
*
|
||||
* FUNCTION: acpi_ev_default_region_setup
|
||||
*
|
||||
* PARAMETERS: Handle - Region we are interested in
|
||||
* Function - Start or stop
|
||||
* PARAMETERS: handle - Region we are interested in
|
||||
* function - Start or stop
|
||||
* handler_context - Address space handler context
|
||||
* region_context - Region specific context
|
||||
*
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ static u32 ACPI_SYSTEM_XFACE acpi_ev_sci_xrupt_handler(void *context);
|
|||
*
|
||||
* FUNCTION: acpi_ev_sci_xrupt_handler
|
||||
*
|
||||
* PARAMETERS: Context - Calling Context
|
||||
* PARAMETERS: context - Calling Context
|
||||
*
|
||||
* RETURN: Status code indicates whether interrupt was handled.
|
||||
*
|
||||
|
|
@ -96,7 +96,7 @@ static u32 ACPI_SYSTEM_XFACE acpi_ev_sci_xrupt_handler(void *context)
|
|||
*
|
||||
* FUNCTION: acpi_ev_gpe_xrupt_handler
|
||||
*
|
||||
* PARAMETERS: Context - Calling Context
|
||||
* PARAMETERS: context - Calling Context
|
||||
*
|
||||
* RETURN: Status code indicates whether interrupt was handled.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -52,88 +52,27 @@
|
|||
ACPI_MODULE_NAME("evxface")
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_populate_handler_object
|
||||
*
|
||||
* PARAMETERS: handler_obj - Handler object to populate
|
||||
* handler_type - The type of handler:
|
||||
* ACPI_SYSTEM_NOTIFY: system_handler (00-7f)
|
||||
* ACPI_DEVICE_NOTIFY: driver_handler (80-ff)
|
||||
* ACPI_ALL_NOTIFY: both system and device
|
||||
* handler - Address of the handler
|
||||
* context - Value passed to the handler on each GPE
|
||||
* next - Address of a handler object to link to
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Populate a handler object.
|
||||
*
|
||||
******************************************************************************/
|
||||
static void
|
||||
acpi_populate_handler_object(struct acpi_object_notify_handler *handler_obj,
|
||||
u32 handler_type,
|
||||
acpi_notify_handler handler, void *context,
|
||||
struct acpi_object_notify_handler *next)
|
||||
{
|
||||
handler_obj->handler_type = handler_type;
|
||||
handler_obj->handler = handler;
|
||||
handler_obj->context = context;
|
||||
handler_obj->next = next;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_add_handler_object
|
||||
*
|
||||
* PARAMETERS: parent_obj - Parent of the new object
|
||||
* handler - Address of the handler
|
||||
* context - Value passed to the handler on each GPE
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Create a new handler object and populate it.
|
||||
*
|
||||
******************************************************************************/
|
||||
static acpi_status
|
||||
acpi_add_handler_object(struct acpi_object_notify_handler *parent_obj,
|
||||
acpi_notify_handler handler, void *context)
|
||||
{
|
||||
struct acpi_object_notify_handler *handler_obj;
|
||||
|
||||
/* The parent must not be a defice notify handler object. */
|
||||
if (parent_obj->handler_type & ACPI_DEVICE_NOTIFY)
|
||||
return AE_BAD_PARAMETER;
|
||||
|
||||
handler_obj = ACPI_ALLOCATE_ZEROED(sizeof(*handler_obj));
|
||||
if (!handler_obj)
|
||||
return AE_NO_MEMORY;
|
||||
|
||||
acpi_populate_handler_object(handler_obj,
|
||||
ACPI_SYSTEM_NOTIFY,
|
||||
handler, context,
|
||||
parent_obj->next);
|
||||
parent_obj->next = handler_obj;
|
||||
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_install_notify_handler
|
||||
*
|
||||
* PARAMETERS: Device - The device for which notifies will be handled
|
||||
* handler_type - The type of handler:
|
||||
* ACPI_SYSTEM_NOTIFY: system_handler (00-7f)
|
||||
* ACPI_DEVICE_NOTIFY: driver_handler (80-ff)
|
||||
* ACPI_ALL_NOTIFY: both system and device
|
||||
* ACPI_SYSTEM_NOTIFY: System Handler (00-7F)
|
||||
* ACPI_DEVICE_NOTIFY: Device Handler (80-FF)
|
||||
* ACPI_ALL_NOTIFY: Both System and Device
|
||||
* Handler - Address of the handler
|
||||
* Context - Value passed to the handler on each GPE
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Install a handler for notifies on an ACPI device
|
||||
* DESCRIPTION: Install a handler for notifications on an ACPI Device,
|
||||
* thermal_zone, or Processor object.
|
||||
*
|
||||
* NOTES: The Root namespace object may have only one handler for each
|
||||
* type of notify (System/Device). Device/Thermal/Processor objects
|
||||
* may have one device notify handler, and multiple system notify
|
||||
* handlers.
|
||||
*
|
||||
******************************************************************************/
|
||||
acpi_status
|
||||
|
|
@ -141,17 +80,19 @@ acpi_install_notify_handler(acpi_handle device,
|
|||
u32 handler_type,
|
||||
acpi_notify_handler handler, void *context)
|
||||
{
|
||||
struct acpi_namespace_node *node =
|
||||
ACPI_CAST_PTR(struct acpi_namespace_node, device);
|
||||
union acpi_operand_object *obj_desc;
|
||||
union acpi_operand_object *notify_obj;
|
||||
struct acpi_namespace_node *node;
|
||||
union acpi_operand_object *handler_obj;
|
||||
acpi_status status;
|
||||
u32 i;
|
||||
|
||||
ACPI_FUNCTION_TRACE(acpi_install_notify_handler);
|
||||
|
||||
/* Parameter validation */
|
||||
|
||||
if ((!device) ||
|
||||
(!handler) || (handler_type > ACPI_MAX_NOTIFY_HANDLER_TYPE)) {
|
||||
if ((!device) || (!handler) || (!handler_type) ||
|
||||
(handler_type > ACPI_MAX_NOTIFY_HANDLER_TYPE)) {
|
||||
return_ACPI_STATUS(AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
|
|
@ -160,144 +101,112 @@ acpi_install_notify_handler(acpi_handle device,
|
|||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
||||
/* Convert and validate the device handle */
|
||||
|
||||
node = acpi_ns_validate_handle(device);
|
||||
if (!node) {
|
||||
status = AE_BAD_PARAMETER;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/*
|
||||
* Root Object:
|
||||
* Registering a notify handler on the root object indicates that the
|
||||
* caller wishes to receive notifications for all objects. Note that
|
||||
* only one <external> global handler can be regsitered (per notify type).
|
||||
* only one global handler can be registered per notify type.
|
||||
* Ensure that a handler is not already installed.
|
||||
*/
|
||||
if (device == ACPI_ROOT_OBJECT) {
|
||||
|
||||
/* Make sure the handler is not already installed */
|
||||
|
||||
if (((handler_type & ACPI_SYSTEM_NOTIFY) &&
|
||||
acpi_gbl_system_notify.handler) ||
|
||||
((handler_type & ACPI_DEVICE_NOTIFY) &&
|
||||
acpi_gbl_device_notify.handler)) {
|
||||
status = AE_ALREADY_EXISTS;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
if (handler_type & ACPI_SYSTEM_NOTIFY) {
|
||||
acpi_gbl_system_notify.node = node;
|
||||
acpi_gbl_system_notify.handler = handler;
|
||||
acpi_gbl_system_notify.context = context;
|
||||
}
|
||||
|
||||
if (handler_type & ACPI_DEVICE_NOTIFY) {
|
||||
acpi_gbl_device_notify.node = node;
|
||||
acpi_gbl_device_notify.handler = handler;
|
||||
acpi_gbl_device_notify.context = context;
|
||||
}
|
||||
|
||||
/* Global notify handler installed */
|
||||
}
|
||||
|
||||
/*
|
||||
* All Other Objects:
|
||||
* Caller will only receive notifications specific to the target object.
|
||||
* Note that only certain object types can receive notifications.
|
||||
*/
|
||||
else {
|
||||
/* Notifies allowed on this object? */
|
||||
|
||||
if (!acpi_ev_is_notify_object(node)) {
|
||||
status = AE_TYPE;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/* Check for an existing internal object */
|
||||
|
||||
obj_desc = acpi_ns_get_attached_object(node);
|
||||
if (obj_desc) {
|
||||
|
||||
/* Object exists. */
|
||||
|
||||
/* For a device notify, make sure there's no handler. */
|
||||
if ((handler_type & ACPI_DEVICE_NOTIFY) &&
|
||||
obj_desc->common_notify.device_notify) {
|
||||
status = AE_ALREADY_EXISTS;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/* System notifies may have more handlers installed. */
|
||||
notify_obj = obj_desc->common_notify.system_notify;
|
||||
|
||||
if ((handler_type & ACPI_SYSTEM_NOTIFY) && notify_obj) {
|
||||
struct acpi_object_notify_handler *parent_obj;
|
||||
|
||||
if (handler_type & ACPI_DEVICE_NOTIFY) {
|
||||
for (i = 0; i < ACPI_NUM_NOTIFY_TYPES; i++) {
|
||||
if (handler_type & (i + 1)) {
|
||||
if (acpi_gbl_global_notify[i].handler) {
|
||||
status = AE_ALREADY_EXISTS;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
parent_obj = ¬ify_obj->notify;
|
||||
status = acpi_add_handler_object(parent_obj,
|
||||
handler,
|
||||
context);
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
} else {
|
||||
/* Create a new object */
|
||||
|
||||
obj_desc = acpi_ut_create_internal_object(node->type);
|
||||
if (!obj_desc) {
|
||||
status = AE_NO_MEMORY;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/* Attach new object to the Node */
|
||||
|
||||
status =
|
||||
acpi_ns_attach_object(device, obj_desc, node->type);
|
||||
|
||||
/* Remove local reference to the object */
|
||||
|
||||
acpi_ut_remove_reference(obj_desc);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
goto unlock_and_exit;
|
||||
acpi_gbl_global_notify[i].handler = handler;
|
||||
acpi_gbl_global_notify[i].context = context;
|
||||
}
|
||||
}
|
||||
|
||||
/* Install the handler */
|
||||
goto unlock_and_exit; /* Global notify handler installed, all done */
|
||||
}
|
||||
|
||||
notify_obj =
|
||||
acpi_ut_create_internal_object(ACPI_TYPE_LOCAL_NOTIFY);
|
||||
if (!notify_obj) {
|
||||
/*
|
||||
* All Other Objects:
|
||||
* Caller will only receive notifications specific to the target
|
||||
* object. Note that only certain object types are allowed to
|
||||
* receive notifications.
|
||||
*/
|
||||
|
||||
/* Are Notifies allowed on this object? */
|
||||
|
||||
if (!acpi_ev_is_notify_object(node)) {
|
||||
status = AE_TYPE;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/* Check for an existing internal object, might not exist */
|
||||
|
||||
obj_desc = acpi_ns_get_attached_object(node);
|
||||
if (!obj_desc) {
|
||||
|
||||
/* Create a new object */
|
||||
|
||||
obj_desc = acpi_ut_create_internal_object(node->type);
|
||||
if (!obj_desc) {
|
||||
status = AE_NO_MEMORY;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
acpi_populate_handler_object(¬ify_obj->notify,
|
||||
handler_type,
|
||||
handler, context,
|
||||
NULL);
|
||||
/* Attach new object to the Node, remove local reference */
|
||||
|
||||
if (handler_type & ACPI_SYSTEM_NOTIFY) {
|
||||
obj_desc->common_notify.system_notify = notify_obj;
|
||||
}
|
||||
|
||||
if (handler_type & ACPI_DEVICE_NOTIFY) {
|
||||
obj_desc->common_notify.device_notify = notify_obj;
|
||||
}
|
||||
|
||||
if (handler_type == ACPI_ALL_NOTIFY) {
|
||||
|
||||
/* Extra ref if installed in both */
|
||||
|
||||
acpi_ut_add_reference(notify_obj);
|
||||
status = acpi_ns_attach_object(device, obj_desc, node->type);
|
||||
acpi_ut_remove_reference(obj_desc);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
}
|
||||
|
||||
unlock_and_exit:
|
||||
/* Ensure that the handler is not already installed in the lists */
|
||||
|
||||
for (i = 0; i < ACPI_NUM_NOTIFY_TYPES; i++) {
|
||||
if (handler_type & (i + 1)) {
|
||||
handler_obj = obj_desc->common_notify.notify_list[i];
|
||||
while (handler_obj) {
|
||||
if (handler_obj->notify.handler == handler) {
|
||||
status = AE_ALREADY_EXISTS;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
handler_obj = handler_obj->notify.next[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Create and populate a new notify handler object */
|
||||
|
||||
handler_obj = acpi_ut_create_internal_object(ACPI_TYPE_LOCAL_NOTIFY);
|
||||
if (!handler_obj) {
|
||||
status = AE_NO_MEMORY;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
handler_obj->notify.node = node;
|
||||
handler_obj->notify.handler_type = handler_type;
|
||||
handler_obj->notify.handler = handler;
|
||||
handler_obj->notify.context = context;
|
||||
|
||||
/* Install the handler at the list head(s) */
|
||||
|
||||
for (i = 0; i < ACPI_NUM_NOTIFY_TYPES; i++) {
|
||||
if (handler_type & (i + 1)) {
|
||||
handler_obj->notify.next[i] =
|
||||
obj_desc->common_notify.notify_list[i];
|
||||
|
||||
obj_desc->common_notify.notify_list[i] = handler_obj;
|
||||
}
|
||||
}
|
||||
|
||||
/* Add an extra reference if handler was installed in both lists */
|
||||
|
||||
if (handler_type == ACPI_ALL_NOTIFY) {
|
||||
acpi_ut_add_reference(handler_obj);
|
||||
}
|
||||
|
||||
unlock_and_exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
@ -308,11 +217,11 @@ ACPI_EXPORT_SYMBOL(acpi_install_notify_handler)
|
|||
*
|
||||
* FUNCTION: acpi_remove_notify_handler
|
||||
*
|
||||
* PARAMETERS: Device - The device for which notifies will be handled
|
||||
* PARAMETERS: Device - The device for which the handler is installed
|
||||
* handler_type - The type of handler:
|
||||
* ACPI_SYSTEM_NOTIFY: system_handler (00-7f)
|
||||
* ACPI_DEVICE_NOTIFY: driver_handler (80-ff)
|
||||
* ACPI_ALL_NOTIFY: both system and device
|
||||
* ACPI_SYSTEM_NOTIFY: System Handler (00-7F)
|
||||
* ACPI_DEVICE_NOTIFY: Device Handler (80-FF)
|
||||
* ACPI_ALL_NOTIFY: Both System and Device
|
||||
* Handler - Address of the handler
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -324,165 +233,106 @@ acpi_status
|
|||
acpi_remove_notify_handler(acpi_handle device,
|
||||
u32 handler_type, acpi_notify_handler handler)
|
||||
{
|
||||
union acpi_operand_object *notify_obj;
|
||||
struct acpi_namespace_node *node =
|
||||
ACPI_CAST_PTR(struct acpi_namespace_node, device);
|
||||
union acpi_operand_object *obj_desc;
|
||||
struct acpi_namespace_node *node;
|
||||
union acpi_operand_object *handler_obj;
|
||||
union acpi_operand_object *previous_handler_obj;
|
||||
acpi_status status;
|
||||
u32 i;
|
||||
|
||||
ACPI_FUNCTION_TRACE(acpi_remove_notify_handler);
|
||||
|
||||
/* Parameter validation */
|
||||
|
||||
if ((!device) ||
|
||||
(!handler) || (handler_type > ACPI_MAX_NOTIFY_HANDLER_TYPE)) {
|
||||
status = AE_BAD_PARAMETER;
|
||||
goto exit;
|
||||
if ((!device) || (!handler) || (!handler_type) ||
|
||||
(handler_type > ACPI_MAX_NOTIFY_HANDLER_TYPE)) {
|
||||
return_ACPI_STATUS(AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
|
||||
/* Make sure all deferred tasks are completed */
|
||||
acpi_os_wait_events_complete(NULL);
|
||||
|
||||
acpi_os_wait_events_complete();
|
||||
|
||||
status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
goto exit;
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
||||
/* Convert and validate the device handle */
|
||||
/* Root Object. Global handlers are removed here */
|
||||
|
||||
if (device == ACPI_ROOT_OBJECT) {
|
||||
for (i = 0; i < ACPI_NUM_NOTIFY_TYPES; i++) {
|
||||
if (handler_type & (i + 1)) {
|
||||
if (!acpi_gbl_global_notify[i].handler ||
|
||||
(acpi_gbl_global_notify[i].handler !=
|
||||
handler)) {
|
||||
status = AE_NOT_EXIST;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
|
||||
"Removing global notify handler\n"));
|
||||
|
||||
acpi_gbl_global_notify[i].handler = NULL;
|
||||
acpi_gbl_global_notify[i].context = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
node = acpi_ns_validate_handle(device);
|
||||
if (!node) {
|
||||
status = AE_BAD_PARAMETER;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/* Root Object */
|
||||
/* All other objects: Are Notifies allowed on this object? */
|
||||
|
||||
if (device == ACPI_ROOT_OBJECT) {
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
|
||||
"Removing notify handler for namespace root object\n"));
|
||||
|
||||
if (((handler_type & ACPI_SYSTEM_NOTIFY) &&
|
||||
!acpi_gbl_system_notify.handler) ||
|
||||
((handler_type & ACPI_DEVICE_NOTIFY) &&
|
||||
!acpi_gbl_device_notify.handler)) {
|
||||
status = AE_NOT_EXIST;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
if (handler_type & ACPI_SYSTEM_NOTIFY) {
|
||||
acpi_gbl_system_notify.node = NULL;
|
||||
acpi_gbl_system_notify.handler = NULL;
|
||||
acpi_gbl_system_notify.context = NULL;
|
||||
}
|
||||
|
||||
if (handler_type & ACPI_DEVICE_NOTIFY) {
|
||||
acpi_gbl_device_notify.node = NULL;
|
||||
acpi_gbl_device_notify.handler = NULL;
|
||||
acpi_gbl_device_notify.context = NULL;
|
||||
}
|
||||
if (!acpi_ev_is_notify_object(node)) {
|
||||
status = AE_TYPE;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/* All Other Objects */
|
||||
/* Must have an existing internal object */
|
||||
|
||||
else {
|
||||
/* Notifies allowed on this object? */
|
||||
obj_desc = acpi_ns_get_attached_object(node);
|
||||
if (!obj_desc) {
|
||||
status = AE_NOT_EXIST;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
if (!acpi_ev_is_notify_object(node)) {
|
||||
status = AE_TYPE;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
/* Internal object exists. Find the handler and remove it */
|
||||
|
||||
/* Check for an existing internal object */
|
||||
for (i = 0; i < ACPI_NUM_NOTIFY_TYPES; i++) {
|
||||
if (handler_type & (i + 1)) {
|
||||
handler_obj = obj_desc->common_notify.notify_list[i];
|
||||
previous_handler_obj = NULL;
|
||||
|
||||
obj_desc = acpi_ns_get_attached_object(node);
|
||||
if (!obj_desc) {
|
||||
status = AE_NOT_EXIST;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
/* Attempt to find the handler in the handler list */
|
||||
|
||||
/* Object exists - make sure there's an existing handler */
|
||||
while (handler_obj &&
|
||||
(handler_obj->notify.handler != handler)) {
|
||||
previous_handler_obj = handler_obj;
|
||||
handler_obj = handler_obj->notify.next[i];
|
||||
}
|
||||
|
||||
if (handler_type & ACPI_SYSTEM_NOTIFY) {
|
||||
struct acpi_object_notify_handler *handler_obj;
|
||||
struct acpi_object_notify_handler *parent_obj;
|
||||
|
||||
notify_obj = obj_desc->common_notify.system_notify;
|
||||
if (!notify_obj) {
|
||||
if (!handler_obj) {
|
||||
status = AE_NOT_EXIST;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
handler_obj = ¬ify_obj->notify;
|
||||
parent_obj = NULL;
|
||||
while (handler_obj->handler != handler) {
|
||||
if (handler_obj->next) {
|
||||
parent_obj = handler_obj;
|
||||
handler_obj = handler_obj->next;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
/* Remove the handler object from the list */
|
||||
|
||||
if (previous_handler_obj) { /* Handler is not at the list head */
|
||||
previous_handler_obj->notify.next[i] =
|
||||
handler_obj->notify.next[i];
|
||||
} else { /* Handler is at the list head */
|
||||
|
||||
obj_desc->common_notify.notify_list[i] =
|
||||
handler_obj->notify.next[i];
|
||||
}
|
||||
|
||||
if (handler_obj->handler != handler) {
|
||||
status = AE_BAD_PARAMETER;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/*
|
||||
* Remove the handler. There are three possible cases.
|
||||
* First, we may need to remove a non-embedded object.
|
||||
* Second, we may need to remove the embedded object's
|
||||
* handler data, while non-embedded objects exist.
|
||||
* Finally, we may need to remove the embedded object
|
||||
* entirely along with its container.
|
||||
*/
|
||||
if (parent_obj) {
|
||||
/* Non-embedded object is being removed. */
|
||||
parent_obj->next = handler_obj->next;
|
||||
ACPI_FREE(handler_obj);
|
||||
} else if (notify_obj->notify.next) {
|
||||
/*
|
||||
* The handler matches the embedded object, but
|
||||
* there are more handler objects in the list.
|
||||
* Replace the embedded object's data with the
|
||||
* first next object's data and remove that
|
||||
* object.
|
||||
*/
|
||||
parent_obj = ¬ify_obj->notify;
|
||||
handler_obj = notify_obj->notify.next;
|
||||
*parent_obj = *handler_obj;
|
||||
ACPI_FREE(handler_obj);
|
||||
} else {
|
||||
/* No more handler objects in the list. */
|
||||
obj_desc->common_notify.system_notify = NULL;
|
||||
acpi_ut_remove_reference(notify_obj);
|
||||
}
|
||||
}
|
||||
|
||||
if (handler_type & ACPI_DEVICE_NOTIFY) {
|
||||
notify_obj = obj_desc->common_notify.device_notify;
|
||||
if (!notify_obj) {
|
||||
status = AE_NOT_EXIST;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
if (notify_obj->notify.handler != handler) {
|
||||
status = AE_BAD_PARAMETER;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/* Remove the handler */
|
||||
obj_desc->common_notify.device_notify = NULL;
|
||||
acpi_ut_remove_reference(notify_obj);
|
||||
acpi_ut_remove_reference(handler_obj);
|
||||
}
|
||||
}
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
exit:
|
||||
if (ACPI_FAILURE(status))
|
||||
ACPI_EXCEPTION((AE_INFO, status, "Removing notify handler"));
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
||||
|
|
@ -492,7 +342,7 @@ ACPI_EXPORT_SYMBOL(acpi_remove_notify_handler)
|
|||
*
|
||||
* FUNCTION: acpi_install_exception_handler
|
||||
*
|
||||
* PARAMETERS: Handler - Pointer to the handler function for the
|
||||
* PARAMETERS: handler - Pointer to the handler function for the
|
||||
* event
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -536,8 +386,8 @@ ACPI_EXPORT_SYMBOL(acpi_install_exception_handler)
|
|||
*
|
||||
* FUNCTION: acpi_install_global_event_handler
|
||||
*
|
||||
* PARAMETERS: Handler - Pointer to the global event handler function
|
||||
* Context - Value passed to the handler on each event
|
||||
* PARAMETERS: handler - Pointer to the global event handler function
|
||||
* context - Value passed to the handler on each event
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -586,10 +436,10 @@ ACPI_EXPORT_SYMBOL(acpi_install_global_event_handler)
|
|||
*
|
||||
* FUNCTION: acpi_install_fixed_event_handler
|
||||
*
|
||||
* PARAMETERS: Event - Event type to enable.
|
||||
* Handler - Pointer to the handler function for the
|
||||
* PARAMETERS: event - Event type to enable.
|
||||
* handler - Pointer to the handler function for the
|
||||
* event
|
||||
* Context - Value passed to the handler on each GPE
|
||||
* context - Value passed to the handler on each GPE
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -656,8 +506,8 @@ ACPI_EXPORT_SYMBOL(acpi_install_fixed_event_handler)
|
|||
*
|
||||
* FUNCTION: acpi_remove_fixed_event_handler
|
||||
*
|
||||
* PARAMETERS: Event - Event type to disable.
|
||||
* Handler - Address of the handler
|
||||
* PARAMETERS: event - Event type to disable.
|
||||
* handler - Address of the handler
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -713,10 +563,10 @@ ACPI_EXPORT_SYMBOL(acpi_remove_fixed_event_handler)
|
|||
* PARAMETERS: gpe_device - Namespace node for the GPE (NULL for FADT
|
||||
* defined GPEs)
|
||||
* gpe_number - The GPE number within the GPE block
|
||||
* Type - Whether this GPE should be treated as an
|
||||
* type - Whether this GPE should be treated as an
|
||||
* edge- or level-triggered interrupt.
|
||||
* Address - Address of the handler
|
||||
* Context - Value passed to the handler on each GPE
|
||||
* address - Address of the handler
|
||||
* context - Value passed to the handler on each GPE
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -823,7 +673,7 @@ ACPI_EXPORT_SYMBOL(acpi_install_gpe_handler)
|
|||
* PARAMETERS: gpe_device - Namespace node for the GPE (NULL for FADT
|
||||
* defined GPEs)
|
||||
* gpe_number - The event to remove a handler
|
||||
* Address - Address of the handler
|
||||
* address - Address of the handler
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -849,7 +699,7 @@ acpi_remove_gpe_handler(acpi_handle gpe_device,
|
|||
|
||||
/* Make sure all deferred tasks are completed */
|
||||
|
||||
acpi_os_wait_events_complete(NULL);
|
||||
acpi_os_wait_events_complete();
|
||||
|
||||
status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
|
|
@ -919,8 +769,8 @@ ACPI_EXPORT_SYMBOL(acpi_remove_gpe_handler)
|
|||
*
|
||||
* FUNCTION: acpi_acquire_global_lock
|
||||
*
|
||||
* PARAMETERS: Timeout - How long the caller is willing to wait
|
||||
* Handle - Where the handle to the lock is returned
|
||||
* PARAMETERS: timeout - How long the caller is willing to wait
|
||||
* handle - Where the handle to the lock is returned
|
||||
* (if acquired)
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -967,7 +817,7 @@ ACPI_EXPORT_SYMBOL(acpi_acquire_global_lock)
|
|||
*
|
||||
* FUNCTION: acpi_release_global_lock
|
||||
*
|
||||
* PARAMETERS: Handle - Returned from acpi_acquire_global_lock
|
||||
* PARAMETERS: handle - Returned from acpi_acquire_global_lock
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
|||
|
|
@ -153,8 +153,8 @@ ACPI_EXPORT_SYMBOL(acpi_disable)
|
|||
*
|
||||
* FUNCTION: acpi_enable_event
|
||||
*
|
||||
* PARAMETERS: Event - The fixed eventto be enabled
|
||||
* Flags - Reserved
|
||||
* PARAMETERS: event - The fixed eventto be enabled
|
||||
* flags - Reserved
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -265,7 +265,7 @@ ACPI_EXPORT_SYMBOL(acpi_disable_event)
|
|||
*
|
||||
* FUNCTION: acpi_clear_event
|
||||
*
|
||||
* PARAMETERS: Event - The fixed event to be cleared
|
||||
* PARAMETERS: event - The fixed event to be cleared
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -301,7 +301,7 @@ ACPI_EXPORT_SYMBOL(acpi_clear_event)
|
|||
*
|
||||
* FUNCTION: acpi_get_event_status
|
||||
*
|
||||
* PARAMETERS: Event - The fixed event
|
||||
* PARAMETERS: event - The fixed event
|
||||
* event_status - Where the current status of the event will
|
||||
* be returned
|
||||
*
|
||||
|
|
|
|||
|
|
@ -197,12 +197,12 @@ acpi_status
|
|||
acpi_setup_gpe_for_wake(acpi_handle wake_device,
|
||||
acpi_handle gpe_device, u32 gpe_number)
|
||||
{
|
||||
acpi_status status = AE_BAD_PARAMETER;
|
||||
acpi_status status;
|
||||
struct acpi_gpe_event_info *gpe_event_info;
|
||||
struct acpi_namespace_node *device_node;
|
||||
struct acpi_gpe_notify_object *notify_object;
|
||||
struct acpi_gpe_notify_info *notify;
|
||||
struct acpi_gpe_notify_info *new_notify;
|
||||
acpi_cpu_flags flags;
|
||||
u8 gpe_dispatch_mask;
|
||||
|
||||
ACPI_FUNCTION_TRACE(acpi_setup_gpe_for_wake);
|
||||
|
||||
|
|
@ -216,63 +216,95 @@ acpi_setup_gpe_for_wake(acpi_handle wake_device,
|
|||
return_ACPI_STATUS(AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
/* Handle root object case */
|
||||
|
||||
if (wake_device == ACPI_ROOT_OBJECT) {
|
||||
device_node = acpi_gbl_root_node;
|
||||
} else {
|
||||
device_node = ACPI_CAST_PTR(struct acpi_namespace_node, wake_device);
|
||||
}
|
||||
|
||||
/* Validate WakeDevice is of type Device */
|
||||
|
||||
if (device_node->type != ACPI_TYPE_DEVICE) {
|
||||
return_ACPI_STATUS (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
/*
|
||||
* Allocate a new notify object up front, in case it is needed.
|
||||
* Memory allocation while holding a spinlock is a big no-no
|
||||
* on some hosts.
|
||||
*/
|
||||
new_notify = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_gpe_notify_info));
|
||||
if (!new_notify) {
|
||||
return_ACPI_STATUS(AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
|
||||
|
||||
/* Ensure that we have a valid GPE number */
|
||||
|
||||
gpe_event_info = acpi_ev_get_gpe_event_info(gpe_device, gpe_number);
|
||||
if (!gpe_event_info) {
|
||||
status = AE_BAD_PARAMETER;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
if (wake_device == ACPI_ROOT_OBJECT) {
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*
|
||||
* If there is no method or handler for this GPE, then the
|
||||
* wake_device will be notified whenever this GPE fires (aka
|
||||
* "implicit notify") Note: The GPE is assumed to be
|
||||
* wake_device will be notified whenever this GPE fires. This is
|
||||
* known as an "implicit notify". Note: The GPE is assumed to be
|
||||
* level-triggered (for windows compatibility).
|
||||
*/
|
||||
gpe_dispatch_mask = gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK;
|
||||
if (gpe_dispatch_mask != ACPI_GPE_DISPATCH_NONE
|
||||
&& gpe_dispatch_mask != ACPI_GPE_DISPATCH_NOTIFY) {
|
||||
goto out;
|
||||
if ((gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK) ==
|
||||
ACPI_GPE_DISPATCH_NONE) {
|
||||
/*
|
||||
* This is the first device for implicit notify on this GPE.
|
||||
* Just set the flags here, and enter the NOTIFY block below.
|
||||
*/
|
||||
gpe_event_info->flags =
|
||||
(ACPI_GPE_DISPATCH_NOTIFY | ACPI_GPE_LEVEL_TRIGGERED);
|
||||
}
|
||||
|
||||
/* Validate wake_device is of type Device */
|
||||
/*
|
||||
* If we already have an implicit notify on this GPE, add
|
||||
* this device to the notify list.
|
||||
*/
|
||||
if ((gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK) ==
|
||||
ACPI_GPE_DISPATCH_NOTIFY) {
|
||||
|
||||
device_node = ACPI_CAST_PTR(struct acpi_namespace_node, wake_device);
|
||||
if (device_node->type != ACPI_TYPE_DEVICE) {
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
/* Ensure that the device is not already in the list */
|
||||
|
||||
if (gpe_dispatch_mask == ACPI_GPE_DISPATCH_NONE) {
|
||||
gpe_event_info->flags = (ACPI_GPE_DISPATCH_NOTIFY |
|
||||
ACPI_GPE_LEVEL_TRIGGERED);
|
||||
gpe_event_info->dispatch.device.node = device_node;
|
||||
gpe_event_info->dispatch.device.next = NULL;
|
||||
} else {
|
||||
/* There are multiple devices to notify implicitly. */
|
||||
|
||||
notify_object = ACPI_ALLOCATE_ZEROED(sizeof(*notify_object));
|
||||
if (!notify_object) {
|
||||
status = AE_NO_MEMORY;
|
||||
goto unlock_and_exit;
|
||||
notify = gpe_event_info->dispatch.notify_list;
|
||||
while (notify) {
|
||||
if (notify->device_node == device_node) {
|
||||
status = AE_ALREADY_EXISTS;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
notify = notify->next;
|
||||
}
|
||||
|
||||
notify_object->node = device_node;
|
||||
notify_object->next = gpe_event_info->dispatch.device.next;
|
||||
gpe_event_info->dispatch.device.next = notify_object;
|
||||
/* Add this device to the notify list for this GPE */
|
||||
|
||||
new_notify->device_node = device_node;
|
||||
new_notify->next = gpe_event_info->dispatch.notify_list;
|
||||
gpe_event_info->dispatch.notify_list = new_notify;
|
||||
new_notify = NULL;
|
||||
}
|
||||
|
||||
out:
|
||||
/* Mark the GPE as a possible wake event */
|
||||
|
||||
gpe_event_info->flags |= ACPI_GPE_CAN_WAKE;
|
||||
status = AE_OK;
|
||||
|
||||
unlock_and_exit:
|
||||
unlock_and_exit:
|
||||
acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
|
||||
|
||||
/* Delete the notify object if it was not used above */
|
||||
|
||||
if (new_notify) {
|
||||
ACPI_FREE(new_notify);
|
||||
}
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
ACPI_EXPORT_SYMBOL(acpi_setup_gpe_for_wake)
|
||||
|
|
@ -283,7 +315,7 @@ ACPI_EXPORT_SYMBOL(acpi_setup_gpe_for_wake)
|
|||
*
|
||||
* PARAMETERS: gpe_device - Parent GPE Device. NULL for GPE0/GPE1
|
||||
* gpe_number - GPE level within the GPE block
|
||||
* Action - Enable or Disable
|
||||
* action - Enable or Disable
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -508,7 +540,7 @@ ACPI_EXPORT_SYMBOL(acpi_enable_all_runtime_gpes)
|
|||
* FUNCTION: acpi_install_gpe_block
|
||||
*
|
||||
* PARAMETERS: gpe_device - Handle to the parent GPE Block Device
|
||||
* gpe_block_address - Address and space_iD
|
||||
* gpe_block_address - Address and space_ID
|
||||
* register_count - Number of GPE register pairs in the block
|
||||
* interrupt_number - H/W interrupt for the block
|
||||
*
|
||||
|
|
@ -653,7 +685,7 @@ ACPI_EXPORT_SYMBOL(acpi_remove_gpe_block)
|
|||
*
|
||||
* FUNCTION: acpi_get_gpe_device
|
||||
*
|
||||
* PARAMETERS: Index - System GPE index (0-current_gpe_count)
|
||||
* PARAMETERS: index - System GPE index (0-current_gpe_count)
|
||||
* gpe_device - Where the parent GPE Device is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
|
|||
|
|
@ -55,11 +55,11 @@ ACPI_MODULE_NAME("evxfregn")
|
|||
*
|
||||
* FUNCTION: acpi_install_address_space_handler
|
||||
*
|
||||
* PARAMETERS: Device - Handle for the device
|
||||
* PARAMETERS: device - Handle for the device
|
||||
* space_id - The address space ID
|
||||
* Handler - Address of the handler
|
||||
* Setup - Address of the setup function
|
||||
* Context - Value passed to the handler on each access
|
||||
* handler - Address of the handler
|
||||
* setup - Address of the setup function
|
||||
* context - Value passed to the handler on each access
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -112,16 +112,16 @@ acpi_install_address_space_handler(acpi_handle device,
|
|||
}
|
||||
|
||||
/*
|
||||
* For the default space_iDs, (the IDs for which there are default region handlers
|
||||
* For the default space_IDs, (the IDs for which there are default region handlers
|
||||
* installed) Only execute the _REG methods if the global initialization _REG
|
||||
* methods have already been run (via acpi_initialize_objects). In other words,
|
||||
* we will defer the execution of the _REG methods for these space_iDs until
|
||||
* we will defer the execution of the _REG methods for these space_IDs until
|
||||
* execution of acpi_initialize_objects. This is done because we need the handlers
|
||||
* for the default spaces (mem/io/pci/table) to be installed before we can run
|
||||
* any control methods (or _REG methods). There is known BIOS code that depends
|
||||
* on this.
|
||||
*
|
||||
* For all other space_iDs, we can safely execute the _REG methods immediately.
|
||||
* For all other space_IDs, we can safely execute the _REG methods immediately.
|
||||
* This means that for IDs like embedded_controller, this function should be called
|
||||
* only after acpi_enable_subsystem has been called.
|
||||
*/
|
||||
|
|
@ -157,9 +157,9 @@ ACPI_EXPORT_SYMBOL(acpi_install_address_space_handler)
|
|||
*
|
||||
* FUNCTION: acpi_remove_address_space_handler
|
||||
*
|
||||
* PARAMETERS: Device - Handle for the device
|
||||
* PARAMETERS: device - Handle for the device
|
||||
* space_id - The address space ID
|
||||
* Handler - Address of the handler
|
||||
* handler - Address of the handler
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ acpi_ex_region_read(union acpi_operand_object *obj_desc,
|
|||
*
|
||||
* FUNCTION: acpi_ex_add_table
|
||||
*
|
||||
* PARAMETERS: Table - Pointer to raw table
|
||||
* PARAMETERS: table - Pointer to raw table
|
||||
* parent_node - Where to load the table (scope)
|
||||
* ddb_handle - Where to return the table handle.
|
||||
*
|
||||
|
|
@ -276,8 +276,8 @@ acpi_ex_load_table_op(struct acpi_walk_state *walk_state,
|
|||
* FUNCTION: acpi_ex_region_read
|
||||
*
|
||||
* PARAMETERS: obj_desc - Region descriptor
|
||||
* Length - Number of bytes to read
|
||||
* Buffer - Pointer to where to put the data
|
||||
* length - Number of bytes to read
|
||||
* buffer - Pointer to where to put the data
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -318,7 +318,7 @@ acpi_ex_region_read(union acpi_operand_object *obj_desc, u32 length, u8 *buffer)
|
|||
*
|
||||
* PARAMETERS: obj_desc - Region or Buffer/Field where the table will be
|
||||
* obtained
|
||||
* Target - Where a handle to the table will be stored
|
||||
* target - Where a handle to the table will be stored
|
||||
* walk_state - Current state
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ acpi_ex_convert_to_ascii(u64 integer, u16 base, u8 *string, u8 max_length);
|
|||
* PARAMETERS: obj_desc - Object to be converted. Must be an
|
||||
* Integer, Buffer, or String
|
||||
* result_desc - Where the new Integer object is returned
|
||||
* Flags - Used for string conversion
|
||||
* flags - Used for string conversion
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -272,9 +272,9 @@ acpi_ex_convert_to_buffer(union acpi_operand_object *obj_desc,
|
|||
*
|
||||
* FUNCTION: acpi_ex_convert_to_ascii
|
||||
*
|
||||
* PARAMETERS: Integer - Value to be converted
|
||||
* Base - ACPI_STRING_DECIMAL or ACPI_STRING_HEX
|
||||
* String - Where the string is returned
|
||||
* PARAMETERS: integer - Value to be converted
|
||||
* base - ACPI_STRING_DECIMAL or ACPI_STRING_HEX
|
||||
* string - Where the string is returned
|
||||
* data_width - Size of data item to be converted, in bytes
|
||||
*
|
||||
* RETURN: Actual string length
|
||||
|
|
@ -385,7 +385,7 @@ acpi_ex_convert_to_ascii(u64 integer, u16 base, u8 *string, u8 data_width)
|
|||
* PARAMETERS: obj_desc - Object to be converted. Must be an
|
||||
* Integer, Buffer, or String
|
||||
* result_desc - Where the string object is returned
|
||||
* Type - String flags (base and conversion type)
|
||||
* type - String flags (base and conversion type)
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
|||
|
|
@ -369,7 +369,7 @@ acpi_ex_create_region(u8 * aml_start,
|
|||
*
|
||||
* DESCRIPTION: Create a new processor object and populate the fields
|
||||
*
|
||||
* Processor (Name[0], cpu_iD[1], pblock_addr[2], pblock_length[3])
|
||||
* Processor (Name[0], cpu_ID[1], pblock_addr[2], pblock_length[3])
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
|
|
|||
|
|
@ -54,8 +54,8 @@ ACPI_MODULE_NAME("exdebug")
|
|||
* FUNCTION: acpi_ex_do_debug_object
|
||||
*
|
||||
* PARAMETERS: source_desc - Object to be output to "Debug Object"
|
||||
* Level - Indentation level (used for packages)
|
||||
* Index - Current package element, zero if not pkg
|
||||
* level - Indentation level (used for packages)
|
||||
* index - Current package element, zero if not pkg
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
|
|||
|
|
@ -109,9 +109,9 @@ static struct acpi_exdump_info acpi_ex_dump_package[5] = {
|
|||
static struct acpi_exdump_info acpi_ex_dump_device[4] = {
|
||||
{ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_device), NULL},
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(device.handler), "Handler"},
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(device.system_notify),
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(device.notify_list[0]),
|
||||
"System Notify"},
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(device.device_notify),
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(device.notify_list[1]),
|
||||
"Device Notify"}
|
||||
};
|
||||
|
||||
|
|
@ -158,9 +158,9 @@ static struct acpi_exdump_info acpi_ex_dump_power[5] = {
|
|||
"System Level"},
|
||||
{ACPI_EXD_UINT32, ACPI_EXD_OFFSET(power_resource.resource_order),
|
||||
"Resource Order"},
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(power_resource.system_notify),
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(power_resource.notify_list[0]),
|
||||
"System Notify"},
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(power_resource.device_notify),
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(power_resource.notify_list[1]),
|
||||
"Device Notify"}
|
||||
};
|
||||
|
||||
|
|
@ -169,18 +169,18 @@ static struct acpi_exdump_info acpi_ex_dump_processor[7] = {
|
|||
{ACPI_EXD_UINT8, ACPI_EXD_OFFSET(processor.proc_id), "Processor ID"},
|
||||
{ACPI_EXD_UINT8, ACPI_EXD_OFFSET(processor.length), "Length"},
|
||||
{ACPI_EXD_ADDRESS, ACPI_EXD_OFFSET(processor.address), "Address"},
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(processor.system_notify),
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(processor.notify_list[0]),
|
||||
"System Notify"},
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(processor.device_notify),
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(processor.notify_list[1]),
|
||||
"Device Notify"},
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(processor.handler), "Handler"}
|
||||
};
|
||||
|
||||
static struct acpi_exdump_info acpi_ex_dump_thermal[4] = {
|
||||
{ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_thermal), NULL},
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(thermal_zone.system_notify),
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(thermal_zone.notify_list[0]),
|
||||
"System Notify"},
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(thermal_zone.device_notify),
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(thermal_zone.notify_list[1]),
|
||||
"Device Notify"},
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(thermal_zone.handler), "Handler"}
|
||||
};
|
||||
|
|
@ -241,10 +241,15 @@ static struct acpi_exdump_info acpi_ex_dump_address_handler[6] = {
|
|||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(address_space.context), "Context"}
|
||||
};
|
||||
|
||||
static struct acpi_exdump_info acpi_ex_dump_notify[3] = {
|
||||
static struct acpi_exdump_info acpi_ex_dump_notify[7] = {
|
||||
{ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_notify), NULL},
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(notify.node), "Node"},
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(notify.context), "Context"}
|
||||
{ACPI_EXD_UINT32, ACPI_EXD_OFFSET(notify.handler_type), "Handler Type"},
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(notify.handler), "Handler"},
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(notify.context), "Context"},
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(notify.next[0]),
|
||||
"Next System Notify"},
|
||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(notify.next[1]), "Next Device Notify"}
|
||||
};
|
||||
|
||||
/* Miscellaneous tables */
|
||||
|
|
@ -318,7 +323,7 @@ static struct acpi_exdump_info *acpi_ex_dump_info[] = {
|
|||
* FUNCTION: acpi_ex_dump_object
|
||||
*
|
||||
* PARAMETERS: obj_desc - Descriptor to dump
|
||||
* Info - Info table corresponding to this object
|
||||
* info - Info table corresponding to this object
|
||||
* type
|
||||
*
|
||||
* RETURN: None
|
||||
|
|
@ -444,7 +449,7 @@ acpi_ex_dump_object(union acpi_operand_object *obj_desc,
|
|||
* FUNCTION: acpi_ex_dump_operand
|
||||
*
|
||||
* PARAMETERS: *obj_desc - Pointer to entry to be dumped
|
||||
* Depth - Current nesting depth
|
||||
* depth - Current nesting depth
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -726,7 +731,7 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)
|
|||
*
|
||||
* FUNCTION: acpi_ex_dump_operands
|
||||
*
|
||||
* PARAMETERS: Operands - A list of Operand objects
|
||||
* PARAMETERS: operands - A list of Operand objects
|
||||
* opcode_name - AML opcode name
|
||||
* num_operands - Operand count for this opcode
|
||||
*
|
||||
|
|
@ -769,8 +774,8 @@ acpi_ex_dump_operands(union acpi_operand_object **operands,
|
|||
*
|
||||
* FUNCTION: acpi_ex_out* functions
|
||||
*
|
||||
* PARAMETERS: Title - Descriptive text
|
||||
* Value - Value to be displayed
|
||||
* PARAMETERS: title - Descriptive text
|
||||
* value - Value to be displayed
|
||||
*
|
||||
* DESCRIPTION: Object dump output formatting functions. These functions
|
||||
* reduce the number of format strings required and keeps them
|
||||
|
|
@ -792,8 +797,8 @@ static void acpi_ex_out_pointer(char *title, void *value)
|
|||
*
|
||||
* FUNCTION: acpi_ex_dump_namespace_node
|
||||
*
|
||||
* PARAMETERS: Node - Descriptor to dump
|
||||
* Flags - Force display if TRUE
|
||||
* PARAMETERS: node - Descriptor to dump
|
||||
* flags - Force display if TRUE
|
||||
*
|
||||
* DESCRIPTION: Dumps the members of the given.Node
|
||||
*
|
||||
|
|
@ -825,7 +830,7 @@ void acpi_ex_dump_namespace_node(struct acpi_namespace_node *node, u32 flags)
|
|||
*
|
||||
* FUNCTION: acpi_ex_dump_reference_obj
|
||||
*
|
||||
* PARAMETERS: Object - Descriptor to dump
|
||||
* PARAMETERS: object - Descriptor to dump
|
||||
*
|
||||
* DESCRIPTION: Dumps a reference object
|
||||
*
|
||||
|
|
@ -882,8 +887,8 @@ static void acpi_ex_dump_reference_obj(union acpi_operand_object *obj_desc)
|
|||
* FUNCTION: acpi_ex_dump_package_obj
|
||||
*
|
||||
* PARAMETERS: obj_desc - Descriptor to dump
|
||||
* Level - Indentation Level
|
||||
* Index - Package index for this object
|
||||
* level - Indentation Level
|
||||
* index - Package index for this object
|
||||
*
|
||||
* DESCRIPTION: Dumps the elements of the package
|
||||
*
|
||||
|
|
@ -926,9 +931,7 @@ acpi_ex_dump_package_obj(union acpi_operand_object *obj_desc,
|
|||
case ACPI_TYPE_STRING:
|
||||
|
||||
acpi_os_printf("[String] Value: ");
|
||||
for (i = 0; i < obj_desc->string.length; i++) {
|
||||
acpi_os_printf("%c", obj_desc->string.pointer[i]);
|
||||
}
|
||||
acpi_ut_print_string(obj_desc->string.pointer, ACPI_UINT8_MAX);
|
||||
acpi_os_printf("\n");
|
||||
break;
|
||||
|
||||
|
|
@ -977,7 +980,7 @@ acpi_ex_dump_package_obj(union acpi_operand_object *obj_desc,
|
|||
* FUNCTION: acpi_ex_dump_object_descriptor
|
||||
*
|
||||
* PARAMETERS: obj_desc - Descriptor to dump
|
||||
* Flags - Force display if TRUE
|
||||
* flags - Force display if TRUE
|
||||
*
|
||||
* DESCRIPTION: Dumps the members of the object descriptor given.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -222,9 +222,9 @@ acpi_ex_setup_region(union acpi_operand_object *obj_desc,
|
|||
* PARAMETERS: obj_desc - Field to be read
|
||||
* field_datum_byte_offset - Byte offset of this datum within the
|
||||
* parent field
|
||||
* Value - Where to store value (must at least
|
||||
* value - Where to store value (must at least
|
||||
* 64 bits)
|
||||
* Function - Read or Write flag plus other region-
|
||||
* function - Read or Write flag plus other region-
|
||||
* dependent flags
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -315,7 +315,7 @@ acpi_ex_access_region(union acpi_operand_object *obj_desc,
|
|||
* FUNCTION: acpi_ex_register_overflow
|
||||
*
|
||||
* PARAMETERS: obj_desc - Register(Field) to be written
|
||||
* Value - Value to be stored
|
||||
* value - Value to be stored
|
||||
*
|
||||
* RETURN: TRUE if value overflows the field, FALSE otherwise
|
||||
*
|
||||
|
|
@ -365,7 +365,7 @@ acpi_ex_register_overflow(union acpi_operand_object *obj_desc, u64 value)
|
|||
* PARAMETERS: obj_desc - Field to be read
|
||||
* field_datum_byte_offset - Byte offset of this datum within the
|
||||
* parent field
|
||||
* Value - Where to store value (must be 64 bits)
|
||||
* value - Where to store value (must be 64 bits)
|
||||
* read_write - Read or Write flag
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -574,7 +574,7 @@ acpi_ex_field_datum_io(union acpi_operand_object *obj_desc,
|
|||
* FUNCTION: acpi_ex_write_with_update_rule
|
||||
*
|
||||
* PARAMETERS: obj_desc - Field to be written
|
||||
* Mask - bitmask within field datum
|
||||
* mask - bitmask within field datum
|
||||
* field_value - Value to write
|
||||
* field_datum_byte_offset - Offset of datum within field
|
||||
*
|
||||
|
|
@ -678,7 +678,7 @@ acpi_ex_write_with_update_rule(union acpi_operand_object *obj_desc,
|
|||
* FUNCTION: acpi_ex_extract_from_field
|
||||
*
|
||||
* PARAMETERS: obj_desc - Field to be read
|
||||
* Buffer - Where to store the field data
|
||||
* buffer - Where to store the field data
|
||||
* buffer_length - Length of Buffer
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -823,7 +823,7 @@ acpi_ex_extract_from_field(union acpi_operand_object *obj_desc,
|
|||
* FUNCTION: acpi_ex_insert_into_field
|
||||
*
|
||||
* PARAMETERS: obj_desc - Field to be written
|
||||
* Buffer - Data to be written
|
||||
* buffer - Data to be written
|
||||
* buffer_length - Length of Buffer
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
|
|||
|
|
@ -144,8 +144,8 @@ acpi_ex_get_object_reference(union acpi_operand_object *obj_desc,
|
|||
*
|
||||
* FUNCTION: acpi_ex_concat_template
|
||||
*
|
||||
* PARAMETERS: Operand0 - First source object
|
||||
* Operand1 - Second source object
|
||||
* PARAMETERS: operand0 - First source object
|
||||
* operand1 - Second source object
|
||||
* actual_return_desc - Where to place the return object
|
||||
* walk_state - Current walk state
|
||||
*
|
||||
|
|
@ -229,8 +229,8 @@ acpi_ex_concat_template(union acpi_operand_object *operand0,
|
|||
*
|
||||
* FUNCTION: acpi_ex_do_concatenate
|
||||
*
|
||||
* PARAMETERS: Operand0 - First source object
|
||||
* Operand1 - Second source object
|
||||
* PARAMETERS: operand0 - First source object
|
||||
* operand1 - Second source object
|
||||
* actual_return_desc - Where to place the return object
|
||||
* walk_state - Current walk state
|
||||
*
|
||||
|
|
@ -397,9 +397,9 @@ acpi_ex_do_concatenate(union acpi_operand_object *operand0,
|
|||
*
|
||||
* FUNCTION: acpi_ex_do_math_op
|
||||
*
|
||||
* PARAMETERS: Opcode - AML opcode
|
||||
* Integer0 - Integer operand #0
|
||||
* Integer1 - Integer operand #1
|
||||
* PARAMETERS: opcode - AML opcode
|
||||
* integer0 - Integer operand #0
|
||||
* integer1 - Integer operand #1
|
||||
*
|
||||
* RETURN: Integer result of the operation
|
||||
*
|
||||
|
|
@ -479,9 +479,9 @@ u64 acpi_ex_do_math_op(u16 opcode, u64 integer0, u64 integer1)
|
|||
*
|
||||
* FUNCTION: acpi_ex_do_logical_numeric_op
|
||||
*
|
||||
* PARAMETERS: Opcode - AML opcode
|
||||
* Integer0 - Integer operand #0
|
||||
* Integer1 - Integer operand #1
|
||||
* PARAMETERS: opcode - AML opcode
|
||||
* integer0 - Integer operand #0
|
||||
* integer1 - Integer operand #1
|
||||
* logical_result - TRUE/FALSE result of the operation
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -534,9 +534,9 @@ acpi_ex_do_logical_numeric_op(u16 opcode,
|
|||
*
|
||||
* FUNCTION: acpi_ex_do_logical_op
|
||||
*
|
||||
* PARAMETERS: Opcode - AML opcode
|
||||
* Operand0 - operand #0
|
||||
* Operand1 - operand #1
|
||||
* PARAMETERS: opcode - AML opcode
|
||||
* operand0 - operand #0
|
||||
* operand1 - operand #1
|
||||
* logical_result - TRUE/FALSE result of the operation
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ void acpi_ex_unlink_mutex(union acpi_operand_object *obj_desc)
|
|||
* FUNCTION: acpi_ex_link_mutex
|
||||
*
|
||||
* PARAMETERS: obj_desc - The mutex to be linked
|
||||
* Thread - Current executing thread object
|
||||
* thread - Current executing thread object
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -138,7 +138,7 @@ acpi_ex_link_mutex(union acpi_operand_object *obj_desc,
|
|||
*
|
||||
* FUNCTION: acpi_ex_acquire_mutex_object
|
||||
*
|
||||
* PARAMETERS: Timeout - Timeout in milliseconds
|
||||
* PARAMETERS: timeout - Timeout in milliseconds
|
||||
* obj_desc - Mutex object
|
||||
* thread_id - Current thread state
|
||||
*
|
||||
|
|
@ -443,7 +443,7 @@ acpi_ex_release_mutex(union acpi_operand_object *obj_desc,
|
|||
*
|
||||
* FUNCTION: acpi_ex_release_all_mutexes
|
||||
*
|
||||
* PARAMETERS: Thread - Current executing thread object
|
||||
* PARAMETERS: thread - Current executing thread object
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
|||
|
|
@ -391,12 +391,12 @@ acpi_ex_prep_common_field_object(union acpi_operand_object *obj_desc,
|
|||
*
|
||||
* FUNCTION: acpi_ex_prep_field_value
|
||||
*
|
||||
* PARAMETERS: Info - Contains all field creation info
|
||||
* PARAMETERS: info - Contains all field creation info
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Construct a union acpi_operand_object of type def_field and
|
||||
* connect it to the parent Node.
|
||||
* DESCRIPTION: Construct an object of type union acpi_operand_object with a
|
||||
* subtype of def_field and connect it to the parent Node.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
|
|
|||
|
|
@ -53,10 +53,10 @@ ACPI_MODULE_NAME("exregion")
|
|||
*
|
||||
* FUNCTION: acpi_ex_system_memory_space_handler
|
||||
*
|
||||
* PARAMETERS: Function - Read or Write operation
|
||||
* Address - Where in the space to read or write
|
||||
* PARAMETERS: function - Read or Write operation
|
||||
* address - Where in the space to read or write
|
||||
* bit_width - Field width in bits (8, 16, or 32)
|
||||
* Value - Pointer to in or out value
|
||||
* value - Pointer to in or out value
|
||||
* handler_context - Pointer to Handler's context
|
||||
* region_context - Pointer to context specific to the
|
||||
* accessed region
|
||||
|
|
@ -270,10 +270,10 @@ acpi_ex_system_memory_space_handler(u32 function,
|
|||
*
|
||||
* FUNCTION: acpi_ex_system_io_space_handler
|
||||
*
|
||||
* PARAMETERS: Function - Read or Write operation
|
||||
* Address - Where in the space to read or write
|
||||
* PARAMETERS: function - Read or Write operation
|
||||
* address - Where in the space to read or write
|
||||
* bit_width - Field width in bits (8, 16, or 32)
|
||||
* Value - Pointer to in or out value
|
||||
* value - Pointer to in or out value
|
||||
* handler_context - Pointer to Handler's context
|
||||
* region_context - Pointer to context specific to the
|
||||
* accessed region
|
||||
|
|
@ -329,10 +329,10 @@ acpi_ex_system_io_space_handler(u32 function,
|
|||
*
|
||||
* FUNCTION: acpi_ex_pci_config_space_handler
|
||||
*
|
||||
* PARAMETERS: Function - Read or Write operation
|
||||
* Address - Where in the space to read or write
|
||||
* PARAMETERS: function - Read or Write operation
|
||||
* address - Where in the space to read or write
|
||||
* bit_width - Field width in bits (8, 16, or 32)
|
||||
* Value - Pointer to in or out value
|
||||
* value - Pointer to in or out value
|
||||
* handler_context - Pointer to Handler's context
|
||||
* region_context - Pointer to context specific to the
|
||||
* accessed region
|
||||
|
|
@ -365,7 +365,7 @@ acpi_ex_pci_config_space_handler(u32 function,
|
|||
* pci_function is the PCI device function number
|
||||
* pci_register is the Config space register range 0-255 bytes
|
||||
*
|
||||
* Value - input value for write, output address for read
|
||||
* value - input value for write, output address for read
|
||||
*
|
||||
*/
|
||||
pci_id = (struct acpi_pci_id *)region_context;
|
||||
|
|
@ -402,10 +402,10 @@ acpi_ex_pci_config_space_handler(u32 function,
|
|||
*
|
||||
* FUNCTION: acpi_ex_cmos_space_handler
|
||||
*
|
||||
* PARAMETERS: Function - Read or Write operation
|
||||
* Address - Where in the space to read or write
|
||||
* PARAMETERS: function - Read or Write operation
|
||||
* address - Where in the space to read or write
|
||||
* bit_width - Field width in bits (8, 16, or 32)
|
||||
* Value - Pointer to in or out value
|
||||
* value - Pointer to in or out value
|
||||
* handler_context - Pointer to Handler's context
|
||||
* region_context - Pointer to context specific to the
|
||||
* accessed region
|
||||
|
|
@ -434,10 +434,10 @@ acpi_ex_cmos_space_handler(u32 function,
|
|||
*
|
||||
* FUNCTION: acpi_ex_pci_bar_space_handler
|
||||
*
|
||||
* PARAMETERS: Function - Read or Write operation
|
||||
* Address - Where in the space to read or write
|
||||
* PARAMETERS: function - Read or Write operation
|
||||
* address - Where in the space to read or write
|
||||
* bit_width - Field width in bits (8, 16, or 32)
|
||||
* Value - Pointer to in or out value
|
||||
* value - Pointer to in or out value
|
||||
* handler_context - Pointer to Handler's context
|
||||
* region_context - Pointer to context specific to the
|
||||
* accessed region
|
||||
|
|
@ -466,10 +466,10 @@ acpi_ex_pci_bar_space_handler(u32 function,
|
|||
*
|
||||
* FUNCTION: acpi_ex_data_table_space_handler
|
||||
*
|
||||
* PARAMETERS: Function - Read or Write operation
|
||||
* Address - Where in the space to read or write
|
||||
* PARAMETERS: function - Read or Write operation
|
||||
* address - Where in the space to read or write
|
||||
* bit_width - Field width in bits (8, 16, or 32)
|
||||
* Value - Pointer to in or out value
|
||||
* value - Pointer to in or out value
|
||||
* handler_context - Pointer to Handler's context
|
||||
* region_context - Pointer to context specific to the
|
||||
* accessed region
|
||||
|
|
|
|||
|
|
@ -147,7 +147,7 @@ acpi_ex_resolve_object_to_value(union acpi_operand_object **stack_ptr,
|
|||
|
||||
stack_desc = *stack_ptr;
|
||||
|
||||
/* This is a union acpi_operand_object */
|
||||
/* This is an object of type union acpi_operand_object */
|
||||
|
||||
switch (stack_desc->common.type) {
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
|
|
@ -321,7 +321,7 @@ acpi_ex_resolve_object_to_value(union acpi_operand_object **stack_ptr,
|
|||
* FUNCTION: acpi_ex_resolve_multiple
|
||||
*
|
||||
* PARAMETERS: walk_state - Current state (contains AML opcode)
|
||||
* Operand - Starting point for resolution
|
||||
* operand - Starting point for resolution
|
||||
* return_type - Where the object type is returned
|
||||
* return_desc - Where the resolved object is returned
|
||||
*
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ acpi_ex_check_object_type(acpi_object_type type_needed,
|
|||
*
|
||||
* FUNCTION: acpi_ex_resolve_operands
|
||||
*
|
||||
* PARAMETERS: Opcode - Opcode being interpreted
|
||||
* PARAMETERS: opcode - Opcode being interpreted
|
||||
* stack_ptr - Pointer to the operand stack to be
|
||||
* resolved
|
||||
* walk_state - Current state
|
||||
|
|
@ -307,7 +307,7 @@ acpi_ex_resolve_operands(u16 opcode,
|
|||
case ARGI_DEVICE_REF:
|
||||
case ARGI_TARGETREF: /* Allows implicit conversion rules before store */
|
||||
case ARGI_FIXED_TARGET: /* No implicit conversion before store to target */
|
||||
case ARGI_SIMPLE_TARGET: /* Name, Local, or Arg - no implicit conversion */
|
||||
case ARGI_SIMPLE_TARGET: /* Name, Local, or arg - no implicit conversion */
|
||||
|
||||
/*
|
||||
* Need an operand of type ACPI_TYPE_LOCAL_REFERENCE
|
||||
|
|
@ -410,7 +410,7 @@ acpi_ex_resolve_operands(u16 opcode,
|
|||
/*
|
||||
* Need an operand of type ACPI_TYPE_INTEGER,
|
||||
* But we can implicitly convert from a STRING or BUFFER
|
||||
* Aka - "Implicit Source Operand Conversion"
|
||||
* aka - "Implicit Source Operand Conversion"
|
||||
*/
|
||||
status =
|
||||
acpi_ex_convert_to_integer(obj_desc, stack_ptr, 16);
|
||||
|
|
@ -437,7 +437,7 @@ acpi_ex_resolve_operands(u16 opcode,
|
|||
/*
|
||||
* Need an operand of type ACPI_TYPE_BUFFER,
|
||||
* But we can implicitly convert from a STRING or INTEGER
|
||||
* Aka - "Implicit Source Operand Conversion"
|
||||
* aka - "Implicit Source Operand Conversion"
|
||||
*/
|
||||
status = acpi_ex_convert_to_buffer(obj_desc, stack_ptr);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
|
|
@ -463,7 +463,7 @@ acpi_ex_resolve_operands(u16 opcode,
|
|||
/*
|
||||
* Need an operand of type ACPI_TYPE_STRING,
|
||||
* But we can implicitly convert from a BUFFER or INTEGER
|
||||
* Aka - "Implicit Source Operand Conversion"
|
||||
* aka - "Implicit Source Operand Conversion"
|
||||
*/
|
||||
status = acpi_ex_convert_to_string(obj_desc, stack_ptr,
|
||||
ACPI_IMPLICIT_CONVERT_HEX);
|
||||
|
|
|
|||
|
|
@ -62,8 +62,8 @@ acpi_ex_store_object_to_index(union acpi_operand_object *val_desc,
|
|||
* FUNCTION: acpi_ex_store
|
||||
*
|
||||
* PARAMETERS: *source_desc - Value to be stored
|
||||
* *dest_desc - Where to store it. Must be an NS node
|
||||
* or a union acpi_operand_object of type
|
||||
* *dest_desc - Where to store it. Must be an NS node
|
||||
* or union acpi_operand_object of type
|
||||
* Reference;
|
||||
* walk_state - Current walk state
|
||||
*
|
||||
|
|
@ -361,7 +361,7 @@ acpi_ex_store_object_to_index(union acpi_operand_object *source_desc,
|
|||
* FUNCTION: acpi_ex_store_object_to_node
|
||||
*
|
||||
* PARAMETERS: source_desc - Value to be stored
|
||||
* Node - Named object to receive the value
|
||||
* node - Named object to receive the value
|
||||
* walk_state - Current walk state
|
||||
* implicit_conversion - Perform implicit conversion (yes/no)
|
||||
*
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ acpi_ex_store_buffer_to_buffer(union acpi_operand_object *source_desc,
|
|||
* NOTE: ACPI versions up to 3.0 specified that the buffer must be
|
||||
* truncated if the string is smaller than the buffer. However, "other"
|
||||
* implementations of ACPI never did this and thus became the defacto
|
||||
* standard. ACPI 3.0_a changes this behavior such that the buffer
|
||||
* standard. ACPI 3.0A changes this behavior such that the buffer
|
||||
* is no longer truncated.
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -53,8 +53,8 @@ ACPI_MODULE_NAME("exsystem")
|
|||
*
|
||||
* FUNCTION: acpi_ex_system_wait_semaphore
|
||||
*
|
||||
* PARAMETERS: Semaphore - Semaphore to wait on
|
||||
* Timeout - Max time to wait
|
||||
* PARAMETERS: semaphore - Semaphore to wait on
|
||||
* timeout - Max time to wait
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -98,8 +98,8 @@ acpi_status acpi_ex_system_wait_semaphore(acpi_semaphore semaphore, u16 timeout)
|
|||
*
|
||||
* FUNCTION: acpi_ex_system_wait_mutex
|
||||
*
|
||||
* PARAMETERS: Mutex - Mutex to wait on
|
||||
* Timeout - Max time to wait
|
||||
* PARAMETERS: mutex - Mutex to wait on
|
||||
* timeout - Max time to wait
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ void acpi_ex_enter_interpreter(void)
|
|||
*
|
||||
* DESCRIPTION: Reacquire the interpreter execution region from within the
|
||||
* interpreter code. Failure to enter the interpreter region is a
|
||||
* fatal system error. Used in conjunction with
|
||||
* fatal system error. Used in conjunction with
|
||||
* relinquish_interpreter
|
||||
*
|
||||
******************************************************************************/
|
||||
|
|
@ -317,8 +317,8 @@ void acpi_ex_release_global_lock(u32 field_flags)
|
|||
*
|
||||
* FUNCTION: acpi_ex_digits_needed
|
||||
*
|
||||
* PARAMETERS: Value - Value to be represented
|
||||
* Base - Base of representation
|
||||
* PARAMETERS: value - Value to be represented
|
||||
* base - Base of representation
|
||||
*
|
||||
* RETURN: The number of digits.
|
||||
*
|
||||
|
|
@ -408,7 +408,7 @@ void acpi_ex_eisa_id_to_string(char *out_string, u64 compressed_id)
|
|||
* PARAMETERS: out_string - Where to put the converted string. At least
|
||||
* 21 bytes are needed to hold the largest
|
||||
* possible 64-bit integer.
|
||||
* Value - Value to be converted
|
||||
* value - Value to be converted
|
||||
*
|
||||
* RETURN: None, string
|
||||
*
|
||||
|
|
@ -443,7 +443,7 @@ void acpi_ex_integer_to_string(char *out_string, u64 value)
|
|||
*
|
||||
* RETURN: TRUE if valid/supported ID.
|
||||
*
|
||||
* DESCRIPTION: Validate an operation region space_iD.
|
||||
* DESCRIPTION: Validate an operation region space_ID.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ ACPI_MODULE_NAME("hwacpi")
|
|||
*
|
||||
* FUNCTION: acpi_hw_set_mode
|
||||
*
|
||||
* PARAMETERS: Mode - SYS_MODE_ACPI or SYS_MODE_LEGACY
|
||||
* PARAMETERS: mode - SYS_MODE_ACPI or SYS_MODE_LEGACY
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ void acpi_hw_execute_sleep_method(char *method_pathname, u32 integer_argument)
|
|||
* FUNCTION: acpi_hw_extended_sleep
|
||||
*
|
||||
* PARAMETERS: sleep_state - Which sleep state to enter
|
||||
* Flags - ACPI_EXECUTE_GTS to run optional method
|
||||
* flags - ACPI_EXECUTE_GTS to run optional method
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -117,7 +117,8 @@ acpi_status acpi_hw_extended_sleep(u8 sleep_state, u8 flags)
|
|||
|
||||
/* Clear wake status (WAK_STS) */
|
||||
|
||||
status = acpi_write(ACPI_X_WAKE_STATUS, &acpi_gbl_FADT.sleep_status);
|
||||
status =
|
||||
acpi_write((u64)ACPI_X_WAKE_STATUS, &acpi_gbl_FADT.sleep_status);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
@ -147,7 +148,7 @@ acpi_status acpi_hw_extended_sleep(u8 sleep_state, u8 flags)
|
|||
((acpi_gbl_sleep_type_a << ACPI_X_SLEEP_TYPE_POSITION) &
|
||||
ACPI_X_SLEEP_TYPE_MASK);
|
||||
|
||||
status = acpi_write((sleep_type_value | ACPI_X_SLEEP_ENABLE),
|
||||
status = acpi_write((u64)(sleep_type_value | ACPI_X_SLEEP_ENABLE),
|
||||
&acpi_gbl_FADT.sleep_control);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
return_ACPI_STATUS(status);
|
||||
|
|
@ -171,7 +172,7 @@ acpi_status acpi_hw_extended_sleep(u8 sleep_state, u8 flags)
|
|||
* FUNCTION: acpi_hw_extended_wake_prep
|
||||
*
|
||||
* PARAMETERS: sleep_state - Which sleep state we just exited
|
||||
* Flags - ACPI_EXECUTE_BFS to run optional method
|
||||
* flags - ACPI_EXECUTE_BFS to run optional method
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -195,7 +196,7 @@ acpi_status acpi_hw_extended_wake_prep(u8 sleep_state, u8 flags)
|
|||
((acpi_gbl_sleep_type_a << ACPI_X_SLEEP_TYPE_POSITION) &
|
||||
ACPI_X_SLEEP_TYPE_MASK);
|
||||
|
||||
(void)acpi_write((sleep_type_value | ACPI_X_SLEEP_ENABLE),
|
||||
(void)acpi_write((u64)(sleep_type_value | ACPI_X_SLEEP_ENABLE),
|
||||
&acpi_gbl_FADT.sleep_control);
|
||||
}
|
||||
|
||||
|
|
@ -212,7 +213,7 @@ acpi_status acpi_hw_extended_wake_prep(u8 sleep_state, u8 flags)
|
|||
* FUNCTION: acpi_hw_extended_wake
|
||||
*
|
||||
* PARAMETERS: sleep_state - Which sleep state we just exited
|
||||
* Flags - Reserved, set to zero
|
||||
* flags - Reserved, set to zero
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -239,7 +240,7 @@ acpi_status acpi_hw_extended_wake(u8 sleep_state, u8 flags)
|
|||
* and use it to determine whether the system is rebooting or
|
||||
* resuming. Clear WAK_STS for compatibility.
|
||||
*/
|
||||
(void)acpi_write(ACPI_X_WAKE_STATUS, &acpi_gbl_FADT.sleep_status);
|
||||
(void)acpi_write((u64)ACPI_X_WAKE_STATUS, &acpi_gbl_FADT.sleep_status);
|
||||
acpi_gbl_system_awake_and_running = TRUE;
|
||||
|
||||
acpi_hw_execute_sleep_method(METHOD_PATHNAME__SST, ACPI_SST_WORKING);
|
||||
|
|
|
|||
|
|
@ -69,9 +69,9 @@ acpi_hw_write_multiple(u32 value,
|
|||
*
|
||||
* FUNCTION: acpi_hw_validate_register
|
||||
*
|
||||
* PARAMETERS: Reg - GAS register structure
|
||||
* PARAMETERS: reg - GAS register structure
|
||||
* max_bit_width - Max bit_width supported (32 or 64)
|
||||
* Address - Pointer to where the gas->address
|
||||
* address - Pointer to where the gas->address
|
||||
* is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -102,7 +102,7 @@ acpi_hw_validate_register(struct acpi_generic_address *reg,
|
|||
return (AE_BAD_ADDRESS);
|
||||
}
|
||||
|
||||
/* Validate the space_iD */
|
||||
/* Validate the space_ID */
|
||||
|
||||
if ((reg->space_id != ACPI_ADR_SPACE_SYSTEM_MEMORY) &&
|
||||
(reg->space_id != ACPI_ADR_SPACE_SYSTEM_IO)) {
|
||||
|
|
@ -137,8 +137,8 @@ acpi_hw_validate_register(struct acpi_generic_address *reg,
|
|||
*
|
||||
* FUNCTION: acpi_hw_read
|
||||
*
|
||||
* PARAMETERS: Value - Where the value is returned
|
||||
* Reg - GAS register structure
|
||||
* PARAMETERS: value - Where the value is returned
|
||||
* reg - GAS register structure
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -148,7 +148,7 @@ acpi_hw_validate_register(struct acpi_generic_address *reg,
|
|||
*
|
||||
* LIMITATIONS: <These limitations also apply to acpi_hw_write>
|
||||
* bit_width must be exactly 8, 16, or 32.
|
||||
* space_iD must be system_memory or system_iO.
|
||||
* space_ID must be system_memory or system_IO.
|
||||
* bit_offset and access_width are currently ignored, as there has
|
||||
* not been a need to implement these.
|
||||
*
|
||||
|
|
@ -200,8 +200,8 @@ acpi_status acpi_hw_read(u32 *value, struct acpi_generic_address *reg)
|
|||
*
|
||||
* FUNCTION: acpi_hw_write
|
||||
*
|
||||
* PARAMETERS: Value - Value to be written
|
||||
* Reg - GAS register structure
|
||||
* PARAMETERS: value - Value to be written
|
||||
* reg - GAS register structure
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -439,7 +439,7 @@ acpi_hw_register_read(u32 register_id, u32 * return_value)
|
|||
* FUNCTION: acpi_hw_register_write
|
||||
*
|
||||
* PARAMETERS: register_id - ACPI Register ID
|
||||
* Value - The value to write
|
||||
* value - The value to write
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -571,7 +571,7 @@ acpi_status acpi_hw_register_write(u32 register_id, u32 value)
|
|||
*
|
||||
* FUNCTION: acpi_hw_read_multiple
|
||||
*
|
||||
* PARAMETERS: Value - Where the register value is returned
|
||||
* PARAMETERS: value - Where the register value is returned
|
||||
* register_a - First ACPI register (required)
|
||||
* register_b - Second ACPI register (optional)
|
||||
*
|
||||
|
|
@ -624,7 +624,7 @@ acpi_hw_read_multiple(u32 *value,
|
|||
*
|
||||
* FUNCTION: acpi_hw_write_multiple
|
||||
*
|
||||
* PARAMETERS: Value - The value to write
|
||||
* PARAMETERS: value - The value to write
|
||||
* register_a - First ACPI register (required)
|
||||
* register_b - Second ACPI register (optional)
|
||||
*
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ ACPI_MODULE_NAME("hwsleep")
|
|||
* FUNCTION: acpi_hw_legacy_sleep
|
||||
*
|
||||
* PARAMETERS: sleep_state - Which sleep state to enter
|
||||
* Flags - ACPI_EXECUTE_GTS to run optional method
|
||||
* flags - ACPI_EXECUTE_GTS to run optional method
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -95,18 +95,6 @@ acpi_status acpi_hw_legacy_sleep(u8 sleep_state, u8 flags)
|
|||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
||||
if (sleep_state != ACPI_STATE_S5) {
|
||||
/*
|
||||
* Disable BM arbitration. This feature is contained within an
|
||||
* optional register (PM2 Control), so ignore a BAD_ADDRESS
|
||||
* exception.
|
||||
*/
|
||||
status = acpi_write_bit_register(ACPI_BITREG_ARB_DISABLE, 1);
|
||||
if (ACPI_FAILURE(status) && (status != AE_BAD_ADDRESS)) {
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 1) Disable/Clear all GPEs
|
||||
* 2) Enable all wakeup GPEs
|
||||
|
|
@ -226,7 +214,7 @@ acpi_status acpi_hw_legacy_sleep(u8 sleep_state, u8 flags)
|
|||
* FUNCTION: acpi_hw_legacy_wake_prep
|
||||
*
|
||||
* PARAMETERS: sleep_state - Which sleep state we just exited
|
||||
* Flags - ACPI_EXECUTE_BFS to run optional method
|
||||
* flags - ACPI_EXECUTE_BFS to run optional method
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -300,7 +288,7 @@ acpi_status acpi_hw_legacy_wake_prep(u8 sleep_state, u8 flags)
|
|||
* FUNCTION: acpi_hw_legacy_wake
|
||||
*
|
||||
* PARAMETERS: sleep_state - Which sleep state we just exited
|
||||
* Flags - Reserved, set to zero
|
||||
* flags - Reserved, set to zero
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -364,16 +352,6 @@ acpi_status acpi_hw_legacy_wake(u8 sleep_state, u8 flags)
|
|||
[ACPI_EVENT_POWER_BUTTON].
|
||||
status_register_id, ACPI_CLEAR_STATUS);
|
||||
|
||||
/*
|
||||
* Enable BM arbitration. This feature is contained within an
|
||||
* optional register (PM2 Control), so ignore a BAD_ADDRESS
|
||||
* exception.
|
||||
*/
|
||||
status = acpi_write_bit_register(ACPI_BITREG_ARB_DISABLE, 0);
|
||||
if (ACPI_FAILURE(status) && (status != AE_BAD_ADDRESS)) {
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
||||
acpi_hw_execute_sleep_method(METHOD_PATHNAME__SST, ACPI_SST_WORKING);
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ ACPI_MODULE_NAME("hwtimer")
|
|||
*
|
||||
* FUNCTION: acpi_get_timer_resolution
|
||||
*
|
||||
* PARAMETERS: Resolution - Where the resolution is returned
|
||||
* PARAMETERS: resolution - Where the resolution is returned
|
||||
*
|
||||
* RETURN: Status and timer resolution
|
||||
*
|
||||
|
|
@ -84,7 +84,7 @@ ACPI_EXPORT_SYMBOL(acpi_get_timer_resolution)
|
|||
*
|
||||
* FUNCTION: acpi_get_timer
|
||||
*
|
||||
* PARAMETERS: Ticks - Where the timer value is returned
|
||||
* PARAMETERS: ticks - Where the timer value is returned
|
||||
*
|
||||
* RETURN: Status and current timer value (ticks)
|
||||
*
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ acpi_hw_validate_io_request(acpi_io_address address, u32 bit_width);
|
|||
*
|
||||
* The table is used to implement the Microsoft port access rules that
|
||||
* first appeared in Windows XP. Some ports are always illegal, and some
|
||||
* ports are only illegal if the BIOS calls _OSI with a win_xP string or
|
||||
* ports are only illegal if the BIOS calls _OSI with a win_XP string or
|
||||
* later (meaning that the BIOS itelf is post-XP.)
|
||||
*
|
||||
* This provides ACPICA with the desired port protections and
|
||||
|
|
@ -66,7 +66,7 @@ acpi_hw_validate_io_request(acpi_io_address address, u32 bit_width);
|
|||
*
|
||||
* Description of port entries:
|
||||
* DMA: DMA controller
|
||||
* PIC0: Programmable Interrupt Controller (8259_a)
|
||||
* PIC0: Programmable Interrupt Controller (8259A)
|
||||
* PIT1: System Timer 1
|
||||
* PIT2: System Timer 2 failsafe
|
||||
* RTC: Real-time clock
|
||||
|
|
|
|||
|
|
@ -104,8 +104,8 @@ ACPI_EXPORT_SYMBOL(acpi_reset)
|
|||
*
|
||||
* FUNCTION: acpi_read
|
||||
*
|
||||
* PARAMETERS: Value - Where the value is returned
|
||||
* Reg - GAS register structure
|
||||
* PARAMETERS: value - Where the value is returned
|
||||
* reg - GAS register structure
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -113,7 +113,7 @@ ACPI_EXPORT_SYMBOL(acpi_reset)
|
|||
*
|
||||
* LIMITATIONS: <These limitations also apply to acpi_write>
|
||||
* bit_width must be exactly 8, 16, 32, or 64.
|
||||
* space_iD must be system_memory or system_iO.
|
||||
* space_ID must be system_memory or system_IO.
|
||||
* bit_offset and access_width are currently ignored, as there has
|
||||
* not been a need to implement these.
|
||||
*
|
||||
|
|
@ -196,8 +196,8 @@ ACPI_EXPORT_SYMBOL(acpi_read)
|
|||
*
|
||||
* FUNCTION: acpi_write
|
||||
*
|
||||
* PARAMETERS: Value - Value to be written
|
||||
* Reg - GAS register structure
|
||||
* PARAMETERS: value - Value to be written
|
||||
* reg - GAS register structure
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -441,7 +441,7 @@ ACPI_EXPORT_SYMBOL(acpi_write_bit_register)
|
|||
* *sleep_type_a - Where SLP_TYPa is returned
|
||||
* *sleep_type_b - Where SLP_TYPb is returned
|
||||
*
|
||||
* RETURN: Status - ACPI status
|
||||
* RETURN: status - ACPI status
|
||||
*
|
||||
* DESCRIPTION: Obtain the SLP_TYPa and SLP_TYPb values for the requested sleep
|
||||
* state.
|
||||
|
|
|
|||
|
|
@ -205,7 +205,7 @@ acpi_status asmlinkage acpi_enter_sleep_state_s4bios(void)
|
|||
ACPI_FLUSH_CPU_CACHE();
|
||||
|
||||
status = acpi_hw_write_port(acpi_gbl_FADT.smi_command,
|
||||
(u32)acpi_gbl_FADT.S4bios_request, 8);
|
||||
(u32)acpi_gbl_FADT.s4_bios_request, 8);
|
||||
|
||||
do {
|
||||
acpi_os_stall(1000);
|
||||
|
|
@ -349,7 +349,7 @@ ACPI_EXPORT_SYMBOL(acpi_enter_sleep_state_prep)
|
|||
* FUNCTION: acpi_enter_sleep_state
|
||||
*
|
||||
* PARAMETERS: sleep_state - Which sleep state to enter
|
||||
* Flags - ACPI_EXECUTE_GTS to run optional method
|
||||
* flags - ACPI_EXECUTE_GTS to run optional method
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -382,7 +382,7 @@ ACPI_EXPORT_SYMBOL(acpi_enter_sleep_state)
|
|||
* FUNCTION: acpi_leave_sleep_state_prep
|
||||
*
|
||||
* PARAMETERS: sleep_state - Which sleep state we are exiting
|
||||
* Flags - ACPI_EXECUTE_BFS to run optional method
|
||||
* flags - ACPI_EXECUTE_BFS to run optional method
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
|||
|
|
@ -157,7 +157,7 @@ acpi_status acpi_ns_root_initialize(void)
|
|||
|
||||
#if defined (ACPI_ASL_COMPILER)
|
||||
|
||||
/* Save the parameter count for the i_aSL compiler */
|
||||
/* Save the parameter count for the iASL compiler */
|
||||
|
||||
new_node->value = obj_desc->method.param_count;
|
||||
#else
|
||||
|
|
@ -258,11 +258,11 @@ acpi_status acpi_ns_root_initialize(void)
|
|||
* FUNCTION: acpi_ns_lookup
|
||||
*
|
||||
* PARAMETERS: scope_info - Current scope info block
|
||||
* Pathname - Search pathname, in internal format
|
||||
* pathname - Search pathname, in internal format
|
||||
* (as represented in the AML stream)
|
||||
* Type - Type associated with name
|
||||
* type - Type associated with name
|
||||
* interpreter_mode - IMODE_LOAD_PASS2 => add name if not found
|
||||
* Flags - Flags describing the search restrictions
|
||||
* flags - Flags describing the search restrictions
|
||||
* walk_state - Current state of the walk
|
||||
* return_node - Where the Node is placed (if found
|
||||
* or created successfully)
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ ACPI_MODULE_NAME("nsalloc")
|
|||
*
|
||||
* FUNCTION: acpi_ns_create_node
|
||||
*
|
||||
* PARAMETERS: Name - Name of the new node (4 char ACPI name)
|
||||
* PARAMETERS: name - Name of the new node (4 char ACPI name)
|
||||
*
|
||||
* RETURN: New namespace node (Null on failure)
|
||||
*
|
||||
|
|
@ -92,7 +92,7 @@ struct acpi_namespace_node *acpi_ns_create_node(u32 name)
|
|||
*
|
||||
* FUNCTION: acpi_ns_delete_node
|
||||
*
|
||||
* PARAMETERS: Node - Node to be deleted
|
||||
* PARAMETERS: node - Node to be deleted
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -143,7 +143,7 @@ void acpi_ns_delete_node(struct acpi_namespace_node *node)
|
|||
*
|
||||
* FUNCTION: acpi_ns_remove_node
|
||||
*
|
||||
* PARAMETERS: Node - Node to be removed/deleted
|
||||
* PARAMETERS: node - Node to be removed/deleted
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -196,8 +196,8 @@ void acpi_ns_remove_node(struct acpi_namespace_node *node)
|
|||
*
|
||||
* PARAMETERS: walk_state - Current state of the walk
|
||||
* parent_node - The parent of the new Node
|
||||
* Node - The new Node to install
|
||||
* Type - ACPI object type of the new Node
|
||||
* node - The new Node to install
|
||||
* type - ACPI object type of the new Node
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ acpi_ns_dump_one_device(acpi_handle obj_handle,
|
|||
* FUNCTION: acpi_ns_print_pathname
|
||||
*
|
||||
* PARAMETERS: num_segments - Number of ACPI name segments
|
||||
* Pathname - The compressed (internal) path
|
||||
* pathname - The compressed (internal) path
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -107,10 +107,10 @@ void acpi_ns_print_pathname(u32 num_segments, char *pathname)
|
|||
*
|
||||
* FUNCTION: acpi_ns_dump_pathname
|
||||
*
|
||||
* PARAMETERS: Handle - Object
|
||||
* Msg - Prefix message
|
||||
* Level - Desired debug level
|
||||
* Component - Caller's component ID
|
||||
* PARAMETERS: handle - Object
|
||||
* msg - Prefix message
|
||||
* level - Desired debug level
|
||||
* component - Caller's component ID
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -143,8 +143,8 @@ acpi_ns_dump_pathname(acpi_handle handle, char *msg, u32 level, u32 component)
|
|||
* FUNCTION: acpi_ns_dump_one_object
|
||||
*
|
||||
* PARAMETERS: obj_handle - Node to be dumped
|
||||
* Level - Nesting level of the handle
|
||||
* Context - Passed into walk_namespace
|
||||
* level - Nesting level of the handle
|
||||
* context - Passed into walk_namespace
|
||||
* return_value - Not used
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -615,7 +615,7 @@ acpi_ns_dump_one_object(acpi_handle obj_handle,
|
|||
*
|
||||
* FUNCTION: acpi_ns_dump_objects
|
||||
*
|
||||
* PARAMETERS: Type - Object type to be dumped
|
||||
* PARAMETERS: type - Object type to be dumped
|
||||
* display_type - 0 or ACPI_DISPLAY_SUMMARY
|
||||
* max_depth - Maximum depth of dump. Use ACPI_UINT32_MAX
|
||||
* for an effectively unlimited depth.
|
||||
|
|
@ -671,7 +671,7 @@ acpi_ns_dump_objects(acpi_object_type type,
|
|||
*
|
||||
* FUNCTION: acpi_ns_dump_entry
|
||||
*
|
||||
* PARAMETERS: Handle - Node to be dumped
|
||||
* PARAMETERS: handle - Node to be dumped
|
||||
* debug_level - Output level
|
||||
*
|
||||
* RETURN: None
|
||||
|
|
|
|||
|
|
@ -55,9 +55,9 @@ ACPI_MODULE_NAME("nsdumpdv")
|
|||
*
|
||||
* FUNCTION: acpi_ns_dump_one_device
|
||||
*
|
||||
* PARAMETERS: Handle - Node to be dumped
|
||||
* Level - Nesting level of the handle
|
||||
* Context - Passed into walk_namespace
|
||||
* PARAMETERS: handle - Node to be dumped
|
||||
* level - Nesting level of the handle
|
||||
* context - Passed into walk_namespace
|
||||
* return_value - Not used
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
|
|||
|
|
@ -59,11 +59,11 @@ acpi_ns_exec_module_code(union acpi_operand_object *method_obj,
|
|||
*
|
||||
* FUNCTION: acpi_ns_evaluate
|
||||
*
|
||||
* PARAMETERS: Info - Evaluation info block, contains:
|
||||
* PARAMETERS: info - Evaluation info block, contains:
|
||||
* prefix_node - Prefix or Method/Object Node to execute
|
||||
* Pathname - Name of method to execute, If NULL, the
|
||||
* pathname - Name of method to execute, If NULL, the
|
||||
* Node is the object to execute
|
||||
* Parameters - List of parameters to pass to the method,
|
||||
* parameters - List of parameters to pass to the method,
|
||||
* terminated by NULL. Params itself may be
|
||||
* NULL if no parameters are being passed.
|
||||
* return_object - Where to put method's return value (if
|
||||
|
|
@ -71,7 +71,7 @@ acpi_ns_exec_module_code(union acpi_operand_object *method_obj,
|
|||
* parameter_type - Type of Parameter list
|
||||
* return_object - Where to put method's return value (if
|
||||
* any). If NULL, no value is returned.
|
||||
* Flags - ACPI_IGNORE_RETURN_VALUE to delete return
|
||||
* flags - ACPI_IGNORE_RETURN_VALUE to delete return
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -351,7 +351,7 @@ void acpi_ns_exec_module_code_list(void)
|
|||
* FUNCTION: acpi_ns_exec_module_code
|
||||
*
|
||||
* PARAMETERS: method_obj - Object container for the module-level code
|
||||
* Info - Info block for method evaluation
|
||||
* info - Info block for method evaluation
|
||||
*
|
||||
* RETURN: None. Exceptions during method execution are ignored, since
|
||||
* we cannot abort a table load.
|
||||
|
|
|
|||
|
|
@ -224,8 +224,8 @@ acpi_status acpi_ns_initialize_devices(void)
|
|||
* FUNCTION: acpi_ns_init_one_object
|
||||
*
|
||||
* PARAMETERS: obj_handle - Node
|
||||
* Level - Current nesting level
|
||||
* Context - Points to a init info struct
|
||||
* level - Current nesting level
|
||||
* context - Points to a init info struct
|
||||
* return_value - Not used
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -530,7 +530,7 @@ acpi_ns_init_one_device(acpi_handle obj_handle,
|
|||
* we will not run _INI, but we continue to examine the children
|
||||
* of this device.
|
||||
*
|
||||
* From the ACPI spec, description of _STA: (Note - no mention
|
||||
* From the ACPI spec, description of _STA: (note - no mention
|
||||
* of whether to run _INI or not on the device in question)
|
||||
*
|
||||
* "_STA may return bit 0 clear (not present) with bit 3 set
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ static acpi_status acpi_ns_delete_subtree(acpi_handle start_handle);
|
|||
* FUNCTION: acpi_ns_load_table
|
||||
*
|
||||
* PARAMETERS: table_index - Index for table to be loaded
|
||||
* Node - Owning NS node
|
||||
* node - Owning NS node
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -278,7 +278,7 @@ static acpi_status acpi_ns_delete_subtree(acpi_handle start_handle)
|
|||
*
|
||||
* FUNCTION: acpi_ns_unload_name_space
|
||||
*
|
||||
* PARAMETERS: Handle - Root of namespace subtree to be deleted
|
||||
* PARAMETERS: handle - Root of namespace subtree to be deleted
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
|||
|
|
@ -53,8 +53,8 @@ ACPI_MODULE_NAME("nsnames")
|
|||
*
|
||||
* FUNCTION: acpi_ns_build_external_path
|
||||
*
|
||||
* PARAMETERS: Node - NS node whose pathname is needed
|
||||
* Size - Size of the pathname
|
||||
* PARAMETERS: node - NS node whose pathname is needed
|
||||
* size - Size of the pathname
|
||||
* *name_buffer - Where to return the pathname
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -120,7 +120,7 @@ acpi_ns_build_external_path(struct acpi_namespace_node *node,
|
|||
*
|
||||
* FUNCTION: acpi_ns_get_external_pathname
|
||||
*
|
||||
* PARAMETERS: Node - Namespace node whose pathname is needed
|
||||
* PARAMETERS: node - Namespace node whose pathname is needed
|
||||
*
|
||||
* RETURN: Pointer to storage containing the fully qualified name of
|
||||
* the node, In external format (name segments separated by path
|
||||
|
|
@ -168,7 +168,7 @@ char *acpi_ns_get_external_pathname(struct acpi_namespace_node *node)
|
|||
*
|
||||
* FUNCTION: acpi_ns_get_pathname_length
|
||||
*
|
||||
* PARAMETERS: Node - Namespace node
|
||||
* PARAMETERS: node - Namespace node
|
||||
*
|
||||
* RETURN: Length of path, including prefix
|
||||
*
|
||||
|
|
@ -214,7 +214,7 @@ acpi_size acpi_ns_get_pathname_length(struct acpi_namespace_node *node)
|
|||
*
|
||||
* PARAMETERS: target_handle - Handle of named object whose name is
|
||||
* to be found
|
||||
* Buffer - Where the pathname is returned
|
||||
* buffer - Where the pathname is returned
|
||||
*
|
||||
* RETURN: Status, Buffer is filled with pathname if status is AE_OK
|
||||
*
|
||||
|
|
|
|||
|
|
@ -53,9 +53,9 @@ ACPI_MODULE_NAME("nsobject")
|
|||
*
|
||||
* FUNCTION: acpi_ns_attach_object
|
||||
*
|
||||
* PARAMETERS: Node - Parent Node
|
||||
* Object - Object to be attached
|
||||
* Type - Type of object, or ACPI_TYPE_ANY if not
|
||||
* PARAMETERS: node - Parent Node
|
||||
* object - Object to be attached
|
||||
* type - Type of object, or ACPI_TYPE_ANY if not
|
||||
* known
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -191,7 +191,7 @@ acpi_ns_attach_object(struct acpi_namespace_node *node,
|
|||
*
|
||||
* FUNCTION: acpi_ns_detach_object
|
||||
*
|
||||
* PARAMETERS: Node - A Namespace node whose object will be detached
|
||||
* PARAMETERS: node - A Namespace node whose object will be detached
|
||||
*
|
||||
* RETURN: None.
|
||||
*
|
||||
|
|
@ -250,7 +250,7 @@ void acpi_ns_detach_object(struct acpi_namespace_node *node)
|
|||
*
|
||||
* FUNCTION: acpi_ns_get_attached_object
|
||||
*
|
||||
* PARAMETERS: Node - Namespace node
|
||||
* PARAMETERS: node - Namespace node
|
||||
*
|
||||
* RETURN: Current value of the object field from the Node whose
|
||||
* handle is passed
|
||||
|
|
@ -285,7 +285,7 @@ union acpi_operand_object *acpi_ns_get_attached_object(struct
|
|||
*
|
||||
* FUNCTION: acpi_ns_get_secondary_object
|
||||
*
|
||||
* PARAMETERS: Node - Namespace node
|
||||
* PARAMETERS: node - Namespace node
|
||||
*
|
||||
* RETURN: Current value of the object field from the Node whose
|
||||
* handle is passed.
|
||||
|
|
@ -315,9 +315,9 @@ union acpi_operand_object *acpi_ns_get_secondary_object(union
|
|||
*
|
||||
* FUNCTION: acpi_ns_attach_data
|
||||
*
|
||||
* PARAMETERS: Node - Namespace node
|
||||
* Handler - Handler to be associated with the data
|
||||
* Data - Data to be attached
|
||||
* PARAMETERS: node - Namespace node
|
||||
* handler - Handler to be associated with the data
|
||||
* data - Data to be attached
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -372,8 +372,8 @@ acpi_ns_attach_data(struct acpi_namespace_node *node,
|
|||
*
|
||||
* FUNCTION: acpi_ns_detach_data
|
||||
*
|
||||
* PARAMETERS: Node - Namespace node
|
||||
* Handler - Handler associated with the data
|
||||
* PARAMETERS: node - Namespace node
|
||||
* handler - Handler associated with the data
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -416,9 +416,9 @@ acpi_ns_detach_data(struct acpi_namespace_node * node,
|
|||
*
|
||||
* FUNCTION: acpi_ns_get_attached_data
|
||||
*
|
||||
* PARAMETERS: Node - Namespace node
|
||||
* Handler - Handler associated with the data
|
||||
* Data - Where the data is returned
|
||||
* PARAMETERS: node - Namespace node
|
||||
* handler - Handler associated with the data
|
||||
* data - Where the data is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ static const char *acpi_rtype_names[] = {
|
|||
*
|
||||
* FUNCTION: acpi_ns_check_predefined_names
|
||||
*
|
||||
* PARAMETERS: Node - Namespace node for the method/object
|
||||
* PARAMETERS: node - Namespace node for the method/object
|
||||
* user_param_count - Number of parameters actually passed
|
||||
* return_status - Status from the object evaluation
|
||||
* return_object_ptr - Pointer to the object returned from the
|
||||
|
|
@ -275,10 +275,10 @@ cleanup:
|
|||
*
|
||||
* FUNCTION: acpi_ns_check_parameter_count
|
||||
*
|
||||
* PARAMETERS: Pathname - Full pathname to the node (for error msgs)
|
||||
* Node - Namespace node for the method/object
|
||||
* PARAMETERS: pathname - Full pathname to the node (for error msgs)
|
||||
* node - Namespace node for the method/object
|
||||
* user_param_count - Number of args passed in by the caller
|
||||
* Predefined - Pointer to entry in predefined name table
|
||||
* predefined - Pointer to entry in predefined name table
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -364,7 +364,7 @@ acpi_ns_check_parameter_count(char *pathname,
|
|||
*
|
||||
* FUNCTION: acpi_ns_check_for_predefined_name
|
||||
*
|
||||
* PARAMETERS: Node - Namespace node for the method/object
|
||||
* PARAMETERS: node - Namespace node for the method/object
|
||||
*
|
||||
* RETURN: Pointer to entry in predefined table. NULL indicates not found.
|
||||
*
|
||||
|
|
@ -410,7 +410,7 @@ const union acpi_predefined_info *acpi_ns_check_for_predefined_name(struct
|
|||
*
|
||||
* FUNCTION: acpi_ns_check_package
|
||||
*
|
||||
* PARAMETERS: Data - Pointer to validation data structure
|
||||
* PARAMETERS: data - Pointer to validation data structure
|
||||
* return_object_ptr - Pointer to the object returned from the
|
||||
* evaluation of a method or object
|
||||
*
|
||||
|
|
@ -638,7 +638,7 @@ acpi_ns_check_package(struct acpi_predefined_data *data,
|
|||
/* Create the new outer package and populate it */
|
||||
|
||||
status =
|
||||
acpi_ns_wrap_with_package(data, *elements,
|
||||
acpi_ns_wrap_with_package(data, return_object,
|
||||
return_object_ptr);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
return (status);
|
||||
|
|
@ -685,11 +685,11 @@ package_too_small:
|
|||
*
|
||||
* FUNCTION: acpi_ns_check_package_list
|
||||
*
|
||||
* PARAMETERS: Data - Pointer to validation data structure
|
||||
* Package - Pointer to package-specific info for method
|
||||
* Elements - Element list of parent package. All elements
|
||||
* PARAMETERS: data - Pointer to validation data structure
|
||||
* package - Pointer to package-specific info for method
|
||||
* elements - Element list of parent package. All elements
|
||||
* of this list should be of type Package.
|
||||
* Count - Count of subpackages
|
||||
* count - Count of subpackages
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -911,12 +911,12 @@ package_too_small:
|
|||
*
|
||||
* FUNCTION: acpi_ns_check_package_elements
|
||||
*
|
||||
* PARAMETERS: Data - Pointer to validation data structure
|
||||
* Elements - Pointer to the package elements array
|
||||
* Type1 - Object type for first group
|
||||
* Count1 - Count for first group
|
||||
* Type2 - Object type for second group
|
||||
* Count2 - Count for second group
|
||||
* PARAMETERS: data - Pointer to validation data structure
|
||||
* elements - Pointer to the package elements array
|
||||
* type1 - Object type for first group
|
||||
* count1 - Count for first group
|
||||
* type2 - Object type for second group
|
||||
* count2 - Count for second group
|
||||
* start_index - Start of the first group of elements
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -968,7 +968,7 @@ acpi_ns_check_package_elements(struct acpi_predefined_data *data,
|
|||
*
|
||||
* FUNCTION: acpi_ns_check_object_type
|
||||
*
|
||||
* PARAMETERS: Data - Pointer to validation data structure
|
||||
* PARAMETERS: data - Pointer to validation data structure
|
||||
* return_object_ptr - Pointer to the object returned from the
|
||||
* evaluation of a method or object
|
||||
* expected_btypes - Bitmap of expected return type(s)
|
||||
|
|
@ -1102,7 +1102,7 @@ acpi_ns_check_object_type(struct acpi_predefined_data *data,
|
|||
*
|
||||
* FUNCTION: acpi_ns_check_reference
|
||||
*
|
||||
* PARAMETERS: Data - Pointer to validation data structure
|
||||
* PARAMETERS: data - Pointer to validation data structure
|
||||
* return_object - Object returned from the evaluation of a
|
||||
* method or object
|
||||
*
|
||||
|
|
@ -1140,7 +1140,7 @@ acpi_ns_check_reference(struct acpi_predefined_data *data,
|
|||
*
|
||||
* FUNCTION: acpi_ns_get_expected_types
|
||||
*
|
||||
* PARAMETERS: Buffer - Pointer to where the string is returned
|
||||
* PARAMETERS: buffer - Pointer to where the string is returned
|
||||
* expected_btypes - Bitmap of expected return type(s)
|
||||
*
|
||||
* RETURN: Buffer is populated with type names.
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ acpi_ns_convert_to_buffer(union acpi_operand_object *original_object,
|
|||
*
|
||||
* FUNCTION: acpi_ns_repair_object
|
||||
*
|
||||
* PARAMETERS: Data - Pointer to validation data structure
|
||||
* PARAMETERS: data - Pointer to validation data structure
|
||||
* expected_btypes - Object types expected
|
||||
* package_index - Index of object within parent package (if
|
||||
* applicable - ACPI_NOT_PACKAGE_ELEMENT
|
||||
|
|
@ -470,7 +470,7 @@ acpi_ns_convert_to_buffer(union acpi_operand_object *original_object,
|
|||
*
|
||||
* FUNCTION: acpi_ns_repair_null_element
|
||||
*
|
||||
* PARAMETERS: Data - Pointer to validation data structure
|
||||
* PARAMETERS: data - Pointer to validation data structure
|
||||
* expected_btypes - Object types expected
|
||||
* package_index - Index of object within parent package (if
|
||||
* applicable - ACPI_NOT_PACKAGE_ELEMENT
|
||||
|
|
@ -509,17 +509,17 @@ acpi_ns_repair_null_element(struct acpi_predefined_data *data,
|
|||
*/
|
||||
if (expected_btypes & ACPI_RTYPE_INTEGER) {
|
||||
|
||||
/* Need an Integer - create a zero-value integer */
|
||||
/* Need an integer - create a zero-value integer */
|
||||
|
||||
new_object = acpi_ut_create_integer_object((u64)0);
|
||||
} else if (expected_btypes & ACPI_RTYPE_STRING) {
|
||||
|
||||
/* Need a String - create a NULL string */
|
||||
/* Need a string - create a NULL string */
|
||||
|
||||
new_object = acpi_ut_create_string_object(0);
|
||||
} else if (expected_btypes & ACPI_RTYPE_BUFFER) {
|
||||
|
||||
/* Need a Buffer - create a zero-length buffer */
|
||||
/* Need a buffer - create a zero-length buffer */
|
||||
|
||||
new_object = acpi_ut_create_buffer_object(0);
|
||||
} else {
|
||||
|
|
@ -552,7 +552,7 @@ acpi_ns_repair_null_element(struct acpi_predefined_data *data,
|
|||
*
|
||||
* FUNCTION: acpi_ns_remove_null_elements
|
||||
*
|
||||
* PARAMETERS: Data - Pointer to validation data structure
|
||||
* PARAMETERS: data - Pointer to validation data structure
|
||||
* package_type - An acpi_return_package_types value
|
||||
* obj_desc - A Package object
|
||||
*
|
||||
|
|
@ -635,7 +635,7 @@ acpi_ns_remove_null_elements(struct acpi_predefined_data *data,
|
|||
*
|
||||
* FUNCTION: acpi_ns_wrap_with_package
|
||||
*
|
||||
* PARAMETERS: Data - Pointer to validation data structure
|
||||
* PARAMETERS: data - Pointer to validation data structure
|
||||
* original_object - Pointer to the object to repair.
|
||||
* obj_desc_ptr - The new package object is returned here
|
||||
*
|
||||
|
|
|
|||
|
|
@ -149,8 +149,8 @@ static const struct acpi_repair_info acpi_ns_repairable_names[] = {
|
|||
*
|
||||
* FUNCTION: acpi_ns_complex_repairs
|
||||
*
|
||||
* PARAMETERS: Data - Pointer to validation data structure
|
||||
* Node - Namespace node for the method/object
|
||||
* PARAMETERS: data - Pointer to validation data structure
|
||||
* node - Namespace node for the method/object
|
||||
* validate_status - Original status of earlier validation
|
||||
* return_object_ptr - Pointer to the object returned from the
|
||||
* evaluation of a method or object
|
||||
|
|
@ -187,7 +187,7 @@ acpi_ns_complex_repairs(struct acpi_predefined_data *data,
|
|||
*
|
||||
* FUNCTION: acpi_ns_match_repairable_name
|
||||
*
|
||||
* PARAMETERS: Node - Namespace node for the method/object
|
||||
* PARAMETERS: node - Namespace node for the method/object
|
||||
*
|
||||
* RETURN: Pointer to entry in repair table. NULL indicates not found.
|
||||
*
|
||||
|
|
@ -218,7 +218,7 @@ static const struct acpi_repair_info *acpi_ns_match_repairable_name(struct
|
|||
*
|
||||
* FUNCTION: acpi_ns_repair_ALR
|
||||
*
|
||||
* PARAMETERS: Data - Pointer to validation data structure
|
||||
* PARAMETERS: data - Pointer to validation data structure
|
||||
* return_object_ptr - Pointer to the object returned from the
|
||||
* evaluation of a method or object
|
||||
*
|
||||
|
|
@ -247,7 +247,7 @@ acpi_ns_repair_ALR(struct acpi_predefined_data *data,
|
|||
*
|
||||
* FUNCTION: acpi_ns_repair_FDE
|
||||
*
|
||||
* PARAMETERS: Data - Pointer to validation data structure
|
||||
* PARAMETERS: data - Pointer to validation data structure
|
||||
* return_object_ptr - Pointer to the object returned from the
|
||||
* evaluation of a method or object
|
||||
*
|
||||
|
|
@ -335,7 +335,7 @@ acpi_ns_repair_FDE(struct acpi_predefined_data *data,
|
|||
*
|
||||
* FUNCTION: acpi_ns_repair_CID
|
||||
*
|
||||
* PARAMETERS: Data - Pointer to validation data structure
|
||||
* PARAMETERS: data - Pointer to validation data structure
|
||||
* return_object_ptr - Pointer to the object returned from the
|
||||
* evaluation of a method or object
|
||||
*
|
||||
|
|
@ -405,7 +405,7 @@ acpi_ns_repair_CID(struct acpi_predefined_data *data,
|
|||
*
|
||||
* FUNCTION: acpi_ns_repair_HID
|
||||
*
|
||||
* PARAMETERS: Data - Pointer to validation data structure
|
||||
* PARAMETERS: data - Pointer to validation data structure
|
||||
* return_object_ptr - Pointer to the object returned from the
|
||||
* evaluation of a method or object
|
||||
*
|
||||
|
|
@ -487,7 +487,7 @@ acpi_ns_repair_HID(struct acpi_predefined_data *data,
|
|||
*
|
||||
* FUNCTION: acpi_ns_repair_TSS
|
||||
*
|
||||
* PARAMETERS: Data - Pointer to validation data structure
|
||||
* PARAMETERS: data - Pointer to validation data structure
|
||||
* return_object_ptr - Pointer to the object returned from the
|
||||
* evaluation of a method or object
|
||||
*
|
||||
|
|
@ -531,7 +531,7 @@ acpi_ns_repair_TSS(struct acpi_predefined_data *data,
|
|||
*
|
||||
* FUNCTION: acpi_ns_repair_PSS
|
||||
*
|
||||
* PARAMETERS: Data - Pointer to validation data structure
|
||||
* PARAMETERS: data - Pointer to validation data structure
|
||||
* return_object_ptr - Pointer to the object returned from the
|
||||
* evaluation of a method or object
|
||||
*
|
||||
|
|
@ -600,7 +600,7 @@ acpi_ns_repair_PSS(struct acpi_predefined_data *data,
|
|||
*
|
||||
* FUNCTION: acpi_ns_check_sorted_list
|
||||
*
|
||||
* PARAMETERS: Data - Pointer to validation data structure
|
||||
* PARAMETERS: data - Pointer to validation data structure
|
||||
* return_object - Pointer to the top-level returned object
|
||||
* expected_count - Minimum length of each sub-package
|
||||
* sort_index - Sub-package entry to sort on
|
||||
|
|
@ -707,9 +707,9 @@ acpi_ns_check_sorted_list(struct acpi_predefined_data *data,
|
|||
*
|
||||
* FUNCTION: acpi_ns_sort_list
|
||||
*
|
||||
* PARAMETERS: Elements - Package object element list
|
||||
* Count - Element count for above
|
||||
* Index - Sort by which package element
|
||||
* PARAMETERS: elements - Package object element list
|
||||
* count - Element count for above
|
||||
* index - Sort by which package element
|
||||
* sort_direction - Ascending or Descending sort
|
||||
*
|
||||
* RETURN: None
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ acpi_ns_search_parent_tree(u32 target_name,
|
|||
*
|
||||
* PARAMETERS: target_name - Ascii ACPI name to search for
|
||||
* parent_node - Starting node where search will begin
|
||||
* Type - Object type to match
|
||||
* type - Object type to match
|
||||
* return_node - Where the matched Named obj is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -175,8 +175,8 @@ acpi_ns_search_one_scope(u32 target_name,
|
|||
* FUNCTION: acpi_ns_search_parent_tree
|
||||
*
|
||||
* PARAMETERS: target_name - Ascii ACPI name to search for
|
||||
* Node - Starting node where search will begin
|
||||
* Type - Object type to match
|
||||
* node - Starting node where search will begin
|
||||
* type - Object type to match
|
||||
* return_node - Where the matched Node is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -264,11 +264,11 @@ acpi_ns_search_parent_tree(u32 target_name,
|
|||
*
|
||||
* PARAMETERS: target_name - Ascii ACPI name to search for (4 chars)
|
||||
* walk_state - Current state of the walk
|
||||
* Node - Starting node where search will begin
|
||||
* node - Starting node where search will begin
|
||||
* interpreter_mode - Add names only in ACPI_MODE_LOAD_PASS_x.
|
||||
* Otherwise,search only.
|
||||
* Type - Object type to match
|
||||
* Flags - Flags describing the search restrictions
|
||||
* type - Object type to match
|
||||
* flags - Flags describing the search restrictions
|
||||
* return_node - Where the Node is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
|
|||
|
|
@ -62,8 +62,8 @@ acpi_name acpi_ns_find_parent_name(struct acpi_namespace_node *node_to_search);
|
|||
*
|
||||
* FUNCTION: acpi_ns_print_node_pathname
|
||||
*
|
||||
* PARAMETERS: Node - Object
|
||||
* Message - Prefix message
|
||||
* PARAMETERS: node - Object
|
||||
* message - Prefix message
|
||||
*
|
||||
* DESCRIPTION: Print an object's full namespace pathname
|
||||
* Manages allocation/freeing of a pathname buffer
|
||||
|
|
@ -101,7 +101,7 @@ acpi_ns_print_node_pathname(struct acpi_namespace_node *node,
|
|||
*
|
||||
* FUNCTION: acpi_ns_valid_root_prefix
|
||||
*
|
||||
* PARAMETERS: Prefix - Character to be checked
|
||||
* PARAMETERS: prefix - Character to be checked
|
||||
*
|
||||
* RETURN: TRUE if a valid prefix
|
||||
*
|
||||
|
|
@ -119,7 +119,7 @@ u8 acpi_ns_valid_root_prefix(char prefix)
|
|||
*
|
||||
* FUNCTION: acpi_ns_valid_path_separator
|
||||
*
|
||||
* PARAMETERS: Sep - Character to be checked
|
||||
* PARAMETERS: sep - Character to be checked
|
||||
*
|
||||
* RETURN: TRUE if a valid path separator
|
||||
*
|
||||
|
|
@ -137,7 +137,7 @@ static u8 acpi_ns_valid_path_separator(char sep)
|
|||
*
|
||||
* FUNCTION: acpi_ns_get_type
|
||||
*
|
||||
* PARAMETERS: Node - Parent Node to be examined
|
||||
* PARAMETERS: node - Parent Node to be examined
|
||||
*
|
||||
* RETURN: Type field from Node whose handle is passed
|
||||
*
|
||||
|
|
@ -161,7 +161,7 @@ acpi_object_type acpi_ns_get_type(struct acpi_namespace_node * node)
|
|||
*
|
||||
* FUNCTION: acpi_ns_local
|
||||
*
|
||||
* PARAMETERS: Type - A namespace object type
|
||||
* PARAMETERS: type - A namespace object type
|
||||
*
|
||||
* RETURN: LOCAL if names must be found locally in objects of the
|
||||
* passed type, 0 if enclosing scopes should be searched
|
||||
|
|
@ -189,7 +189,7 @@ u32 acpi_ns_local(acpi_object_type type)
|
|||
*
|
||||
* FUNCTION: acpi_ns_get_internal_name_length
|
||||
*
|
||||
* PARAMETERS: Info - Info struct initialized with the
|
||||
* PARAMETERS: info - Info struct initialized with the
|
||||
* external name pointer.
|
||||
*
|
||||
* RETURN: None
|
||||
|
|
@ -260,7 +260,7 @@ void acpi_ns_get_internal_name_length(struct acpi_namestring_info *info)
|
|||
*
|
||||
* FUNCTION: acpi_ns_build_internal_name
|
||||
*
|
||||
* PARAMETERS: Info - Info struct fully initialized
|
||||
* PARAMETERS: info - Info struct fully initialized
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -371,7 +371,7 @@ acpi_status acpi_ns_build_internal_name(struct acpi_namestring_info *info)
|
|||
* FUNCTION: acpi_ns_internalize_name
|
||||
*
|
||||
* PARAMETERS: *external_name - External representation of name
|
||||
* **Converted Name - Where to return the resulting
|
||||
* **Converted name - Where to return the resulting
|
||||
* internal represention of the name
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -575,7 +575,7 @@ acpi_ns_externalize_name(u32 internal_name_length,
|
|||
*
|
||||
* FUNCTION: acpi_ns_validate_handle
|
||||
*
|
||||
* PARAMETERS: Handle - Handle to be validated and typecast to a
|
||||
* PARAMETERS: handle - Handle to be validated and typecast to a
|
||||
* namespace node.
|
||||
*
|
||||
* RETURN: A pointer to a namespace node
|
||||
|
|
@ -651,7 +651,7 @@ void acpi_ns_terminate(void)
|
|||
*
|
||||
* FUNCTION: acpi_ns_opens_scope
|
||||
*
|
||||
* PARAMETERS: Type - A valid namespace type
|
||||
* PARAMETERS: type - A valid namespace type
|
||||
*
|
||||
* RETURN: NEWSCOPE if the passed type "opens a name scope" according
|
||||
* to the ACPI specification, else 0
|
||||
|
|
@ -677,14 +677,14 @@ u32 acpi_ns_opens_scope(acpi_object_type type)
|
|||
*
|
||||
* FUNCTION: acpi_ns_get_node
|
||||
*
|
||||
* PARAMETERS: *Pathname - Name to be found, in external (ASL) format. The
|
||||
* PARAMETERS: *pathname - Name to be found, in external (ASL) format. The
|
||||
* \ (backslash) and ^ (carat) prefixes, and the
|
||||
* . (period) to separate segments are supported.
|
||||
* prefix_node - Root of subtree to be searched, or NS_ALL for the
|
||||
* root of the name space. If Name is fully
|
||||
* qualified (first s8 is '\'), the passed value
|
||||
* of Scope will not be accessed.
|
||||
* Flags - Used to indicate whether to perform upsearch or
|
||||
* flags - Used to indicate whether to perform upsearch or
|
||||
* not.
|
||||
* return_node - Where the Node is returned
|
||||
*
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ struct acpi_namespace_node *acpi_ns_get_next_node(struct acpi_namespace_node
|
|||
*
|
||||
* FUNCTION: acpi_ns_get_next_node_typed
|
||||
*
|
||||
* PARAMETERS: Type - Type of node to be searched for
|
||||
* PARAMETERS: type - Type of node to be searched for
|
||||
* parent_node - Parent node whose children we are
|
||||
* getting
|
||||
* child_node - Previous child that was found.
|
||||
|
|
@ -151,16 +151,16 @@ struct acpi_namespace_node *acpi_ns_get_next_node_typed(acpi_object_type type,
|
|||
*
|
||||
* FUNCTION: acpi_ns_walk_namespace
|
||||
*
|
||||
* PARAMETERS: Type - acpi_object_type to search for
|
||||
* PARAMETERS: type - acpi_object_type to search for
|
||||
* start_node - Handle in namespace where search begins
|
||||
* 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
|
||||
* pre_order_visit - Called during tree pre-order visit
|
||||
* when an object of "Type" is found
|
||||
* post_order_visit - Called during tree post-order visit
|
||||
* 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
|
||||
* early. Otherwise, returns NULL.
|
||||
* RETURNS: Status
|
||||
|
|
|
|||
|
|
@ -58,8 +58,8 @@ static void acpi_ns_resolve_references(struct acpi_evaluate_info *info);
|
|||
*
|
||||
* FUNCTION: acpi_evaluate_object_typed
|
||||
*
|
||||
* PARAMETERS: Handle - Object handle (optional)
|
||||
* Pathname - Object pathname (optional)
|
||||
* PARAMETERS: handle - Object handle (optional)
|
||||
* pathname - Object pathname (optional)
|
||||
* external_params - List of parameters to pass to method,
|
||||
* terminated by NULL. May be NULL
|
||||
* if no parameters are being passed.
|
||||
|
|
@ -152,8 +152,8 @@ ACPI_EXPORT_SYMBOL(acpi_evaluate_object_typed)
|
|||
*
|
||||
* FUNCTION: acpi_evaluate_object
|
||||
*
|
||||
* PARAMETERS: Handle - Object handle (optional)
|
||||
* Pathname - Object pathname (optional)
|
||||
* PARAMETERS: handle - Object handle (optional)
|
||||
* pathname - Object pathname (optional)
|
||||
* external_params - List of parameters to pass to method,
|
||||
* terminated by NULL. May be NULL
|
||||
* if no parameters are being passed.
|
||||
|
|
@ -364,7 +364,7 @@ ACPI_EXPORT_SYMBOL(acpi_evaluate_object)
|
|||
*
|
||||
* FUNCTION: acpi_ns_resolve_references
|
||||
*
|
||||
* PARAMETERS: Info - Evaluation info block
|
||||
* PARAMETERS: info - Evaluation info block
|
||||
*
|
||||
* RETURN: Info->return_object is replaced with the dereferenced object
|
||||
*
|
||||
|
|
@ -431,14 +431,14 @@ static void acpi_ns_resolve_references(struct acpi_evaluate_info *info)
|
|||
*
|
||||
* FUNCTION: acpi_walk_namespace
|
||||
*
|
||||
* PARAMETERS: Type - acpi_object_type to search for
|
||||
* PARAMETERS: type - acpi_object_type to search for
|
||||
* start_object - Handle in namespace where search begins
|
||||
* max_depth - Depth to which search is to reach
|
||||
* pre_order_visit - Called during tree pre-order visit
|
||||
* when an object of "Type" is found
|
||||
* post_order_visit - Called during tree post-order visit
|
||||
* 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
|
||||
* user_function is put if terminated early
|
||||
*
|
||||
|
|
@ -646,7 +646,7 @@ acpi_ns_get_device_callback(acpi_handle obj_handle,
|
|||
*
|
||||
* PARAMETERS: HID - HID to search for. Can be NULL.
|
||||
* user_function - Called when a matching object is found
|
||||
* Context - Passed to user function
|
||||
* context - Passed to user function
|
||||
* return_value - Location where return value of
|
||||
* user_function is put if terminated early
|
||||
*
|
||||
|
|
@ -716,8 +716,8 @@ ACPI_EXPORT_SYMBOL(acpi_get_devices)
|
|||
* FUNCTION: acpi_attach_data
|
||||
*
|
||||
* PARAMETERS: obj_handle - Namespace node
|
||||
* Handler - Handler for this attachment
|
||||
* Data - Pointer to data to be attached
|
||||
* handler - Handler for this attachment
|
||||
* data - Pointer to data to be attached
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -764,7 +764,7 @@ ACPI_EXPORT_SYMBOL(acpi_attach_data)
|
|||
* FUNCTION: acpi_detach_data
|
||||
*
|
||||
* PARAMETERS: obj_handle - Namespace node handle
|
||||
* Handler - Handler used in call to acpi_attach_data
|
||||
* handler - Handler used in call to acpi_attach_data
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -810,8 +810,8 @@ ACPI_EXPORT_SYMBOL(acpi_detach_data)
|
|||
* FUNCTION: acpi_get_data
|
||||
*
|
||||
* PARAMETERS: obj_handle - Namespace node
|
||||
* Handler - Handler used in call to attach_data
|
||||
* Data - Where the data is returned
|
||||
* handler - Handler used in call to attach_data
|
||||
* data - Where the data is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
|||
|
|
@ -61,8 +61,8 @@ static char *acpi_ns_copy_device_id(struct acpica_device_id *dest,
|
|||
*
|
||||
* FUNCTION: acpi_get_handle
|
||||
*
|
||||
* PARAMETERS: Parent - Object to search under (search scope).
|
||||
* Pathname - Pointer to an asciiz string containing the
|
||||
* PARAMETERS: parent - Object to search under (search scope).
|
||||
* pathname - Pointer to an asciiz string containing the
|
||||
* name
|
||||
* ret_handle - Where the return handle is returned
|
||||
*
|
||||
|
|
@ -142,9 +142,9 @@ ACPI_EXPORT_SYMBOL(acpi_get_handle)
|
|||
*
|
||||
* FUNCTION: acpi_get_name
|
||||
*
|
||||
* PARAMETERS: Handle - Handle to be converted to a pathname
|
||||
* PARAMETERS: handle - Handle to be converted to a pathname
|
||||
* name_type - Full pathname or single segment
|
||||
* Buffer - Buffer for returned path
|
||||
* buffer - Buffer for returned path
|
||||
*
|
||||
* RETURN: Pointer to a string containing the fully qualified Name.
|
||||
*
|
||||
|
|
@ -219,8 +219,8 @@ ACPI_EXPORT_SYMBOL(acpi_get_name)
|
|||
*
|
||||
* FUNCTION: acpi_ns_copy_device_id
|
||||
*
|
||||
* PARAMETERS: Dest - Pointer to the destination DEVICE_ID
|
||||
* Source - Pointer to the source DEVICE_ID
|
||||
* PARAMETERS: dest - Pointer to the destination DEVICE_ID
|
||||
* source - Pointer to the source DEVICE_ID
|
||||
* string_area - Pointer to where to copy the dest string
|
||||
*
|
||||
* RETURN: Pointer to the next string area
|
||||
|
|
@ -247,7 +247,7 @@ static char *acpi_ns_copy_device_id(struct acpica_device_id *dest,
|
|||
*
|
||||
* FUNCTION: acpi_get_object_info
|
||||
*
|
||||
* PARAMETERS: Handle - Object Handle
|
||||
* PARAMETERS: handle - Object Handle
|
||||
* return_buffer - Where the info is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -493,7 +493,7 @@ ACPI_EXPORT_SYMBOL(acpi_get_object_info)
|
|||
*
|
||||
* FUNCTION: acpi_install_method
|
||||
*
|
||||
* PARAMETERS: Buffer - An ACPI table containing one control method
|
||||
* PARAMETERS: buffer - An ACPI table containing one control method
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ ACPI_EXPORT_SYMBOL(acpi_get_id)
|
|||
*
|
||||
* FUNCTION: acpi_get_type
|
||||
*
|
||||
* PARAMETERS: Handle - Handle of object whose type is desired
|
||||
* PARAMETERS: handle - Handle of object whose type is desired
|
||||
* ret_type - Where the type will be placed
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -151,7 +151,7 @@ ACPI_EXPORT_SYMBOL(acpi_get_type)
|
|||
*
|
||||
* FUNCTION: acpi_get_parent
|
||||
*
|
||||
* PARAMETERS: Handle - Handle of object whose parent is desired
|
||||
* PARAMETERS: handle - Handle of object whose parent is desired
|
||||
* ret_handle - Where the parent handle will be placed
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -212,8 +212,8 @@ ACPI_EXPORT_SYMBOL(acpi_get_parent)
|
|||
*
|
||||
* FUNCTION: acpi_get_next_object
|
||||
*
|
||||
* PARAMETERS: Type - Type of object to be searched for
|
||||
* Parent - Parent object whose children we are getting
|
||||
* PARAMETERS: type - Type of object to be searched for
|
||||
* parent - Parent object whose children we are getting
|
||||
* last_child - Previous child that was found.
|
||||
* The NEXT child will be returned
|
||||
* ret_handle - Where handle to the next object is placed
|
||||
|
|
|
|||
|
|
@ -210,7 +210,7 @@ char *acpi_ps_get_next_namestring(struct acpi_parse_state *parser_state)
|
|||
* FUNCTION: acpi_ps_get_next_namepath
|
||||
*
|
||||
* PARAMETERS: parser_state - Current parser state object
|
||||
* Arg - Where the namepath will be stored
|
||||
* arg - Where the namepath will be stored
|
||||
* arg_count - If the namepath points to a control method
|
||||
* the method's argument is returned here.
|
||||
* possible_method_call - Whether the namepath can possibly be the
|
||||
|
|
@ -379,7 +379,7 @@ acpi_ps_get_next_namepath(struct acpi_walk_state *walk_state,
|
|||
*
|
||||
* PARAMETERS: parser_state - Current parser state object
|
||||
* arg_type - The argument type (AML_*_ARG)
|
||||
* Arg - Where the argument is returned
|
||||
* arg - Where the argument is returned
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -618,6 +618,7 @@ static union acpi_parse_object *acpi_ps_get_next_field(struct acpi_parse_state
|
|||
|
||||
arg = acpi_ps_alloc_op(AML_INT_BYTELIST_OP);
|
||||
if (!arg) {
|
||||
acpi_ps_free_op(field);
|
||||
return_PTR(NULL);
|
||||
}
|
||||
|
||||
|
|
@ -662,6 +663,7 @@ static union acpi_parse_object *acpi_ps_get_next_field(struct acpi_parse_state
|
|||
} else {
|
||||
arg = acpi_ps_alloc_op(AML_INT_NAMEPATH_OP);
|
||||
if (!arg) {
|
||||
acpi_ps_free_op(field);
|
||||
return_PTR(NULL);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -167,7 +167,7 @@ static acpi_status acpi_ps_get_aml_opcode(struct acpi_walk_state *walk_state)
|
|||
* PARAMETERS: walk_state - Current state
|
||||
* aml_op_start - Begin of named Op in AML
|
||||
* unnamed_op - Early Op (not a named Op)
|
||||
* Op - Returned Op
|
||||
* op - Returned Op
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -323,7 +323,7 @@ acpi_ps_create_op(struct acpi_walk_state *walk_state,
|
|||
|
||||
if (walk_state->op_info->flags & AML_CREATE) {
|
||||
/*
|
||||
* Backup to beginning of create_xXXfield declaration
|
||||
* Backup to beginning of create_XXXfield declaration
|
||||
* body_length is unknown until we parse the body
|
||||
*/
|
||||
op->named.data = aml_op_start;
|
||||
|
|
@ -380,7 +380,7 @@ acpi_ps_create_op(struct acpi_walk_state *walk_state,
|
|||
*
|
||||
* PARAMETERS: walk_state - Current state
|
||||
* aml_op_start - Op start in AML
|
||||
* Op - Current Op
|
||||
* op - Current Op
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -679,8 +679,8 @@ acpi_ps_link_module_code(union acpi_parse_object *parent_op,
|
|||
* FUNCTION: acpi_ps_complete_op
|
||||
*
|
||||
* PARAMETERS: walk_state - Current state
|
||||
* Op - Returned Op
|
||||
* Status - Parse status before complete Op
|
||||
* op - Returned Op
|
||||
* status - Parse status before complete Op
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -853,8 +853,8 @@ acpi_ps_complete_op(struct acpi_walk_state *walk_state,
|
|||
* FUNCTION: acpi_ps_complete_final_op
|
||||
*
|
||||
* PARAMETERS: walk_state - Current state
|
||||
* Op - Current Op
|
||||
* Status - Current parse status before complete last
|
||||
* op - Current Op
|
||||
* status - Current parse status before complete last
|
||||
* Op
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -1165,7 +1165,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
|
|||
|
||||
if (walk_state->op_info->flags & AML_CREATE) {
|
||||
/*
|
||||
* Backup to beginning of create_xXXfield declaration (1 for
|
||||
* Backup to beginning of create_XXXfield declaration (1 for
|
||||
* Opcode)
|
||||
*
|
||||
* body_length is unknown until we parse the body
|
||||
|
|
|
|||
|
|
@ -724,7 +724,7 @@ static const u8 acpi_gbl_long_op_index[NUM_EXTENDED_OPCODE] = {
|
|||
*
|
||||
* FUNCTION: acpi_ps_get_opcode_info
|
||||
*
|
||||
* PARAMETERS: Opcode - The AML opcode
|
||||
* PARAMETERS: opcode - The AML opcode
|
||||
*
|
||||
* RETURN: A pointer to the info about the opcode.
|
||||
*
|
||||
|
|
@ -769,7 +769,7 @@ const struct acpi_opcode_info *acpi_ps_get_opcode_info(u16 opcode)
|
|||
*
|
||||
* FUNCTION: acpi_ps_get_opcode_name
|
||||
*
|
||||
* PARAMETERS: Opcode - The AML opcode
|
||||
* PARAMETERS: opcode - The AML opcode
|
||||
*
|
||||
* RETURN: A pointer to the name of the opcode (ASCII String)
|
||||
* Note: Never returns NULL.
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ ACPI_MODULE_NAME("psparse")
|
|||
*
|
||||
* FUNCTION: acpi_ps_get_opcode_size
|
||||
*
|
||||
* PARAMETERS: Opcode - An AML opcode
|
||||
* PARAMETERS: opcode - An AML opcode
|
||||
*
|
||||
* RETURN: Size of the opcode, in bytes (1 or 2)
|
||||
*
|
||||
|
|
@ -121,7 +121,7 @@ u16 acpi_ps_peek_opcode(struct acpi_parse_state * parser_state)
|
|||
* FUNCTION: acpi_ps_complete_this_op
|
||||
*
|
||||
* PARAMETERS: walk_state - Current State
|
||||
* Op - Op to complete
|
||||
* op - Op to complete
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -311,7 +311,7 @@ acpi_ps_complete_this_op(struct acpi_walk_state * walk_state,
|
|||
* FUNCTION: acpi_ps_next_parse_state
|
||||
*
|
||||
* PARAMETERS: walk_state - Current state
|
||||
* Op - Current parse op
|
||||
* op - Current parse op
|
||||
* callback_status - Status from previous operation
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ u8 acpi_ps_has_completed_scope(struct acpi_parse_state * parser_state)
|
|||
* FUNCTION: acpi_ps_init_scope
|
||||
*
|
||||
* PARAMETERS: parser_state - Current parser state object
|
||||
* Root - the Root Node of this new scope
|
||||
* root - the Root Node of this new scope
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -131,7 +131,7 @@ acpi_ps_init_scope(struct acpi_parse_state * parser_state,
|
|||
* FUNCTION: acpi_ps_push_scope
|
||||
*
|
||||
* PARAMETERS: parser_state - Current parser state object
|
||||
* Op - Current op to be pushed
|
||||
* op - Current op to be pushed
|
||||
* remaining_args - List of args remaining
|
||||
* arg_count - Fixed or variable number of args
|
||||
*
|
||||
|
|
@ -184,7 +184,7 @@ acpi_ps_push_scope(struct acpi_parse_state *parser_state,
|
|||
* FUNCTION: acpi_ps_pop_scope
|
||||
*
|
||||
* PARAMETERS: parser_state - Current parser state object
|
||||
* Op - Where the popped op is returned
|
||||
* op - Where the popped op is returned
|
||||
* arg_list - Where the popped "next argument" is
|
||||
* returned
|
||||
* arg_count - Count of objects in arg_list
|
||||
|
|
|
|||
|
|
@ -58,8 +58,8 @@ union acpi_parse_object *acpi_ps_get_child(union acpi_parse_object *op);
|
|||
*
|
||||
* FUNCTION: acpi_ps_get_arg
|
||||
*
|
||||
* PARAMETERS: Op - Get an argument for this op
|
||||
* Argn - Nth argument to get
|
||||
* PARAMETERS: op - Get an argument for this op
|
||||
* argn - Nth argument to get
|
||||
*
|
||||
* RETURN: The argument (as an Op object). NULL if argument does not exist
|
||||
*
|
||||
|
|
@ -114,8 +114,8 @@ union acpi_parse_object *acpi_ps_get_arg(union acpi_parse_object *op, u32 argn)
|
|||
*
|
||||
* FUNCTION: acpi_ps_append_arg
|
||||
*
|
||||
* PARAMETERS: Op - Append an argument to this Op.
|
||||
* Arg - Argument Op to append
|
||||
* PARAMETERS: op - Append an argument to this Op.
|
||||
* arg - Argument Op to append
|
||||
*
|
||||
* RETURN: None.
|
||||
*
|
||||
|
|
@ -188,8 +188,8 @@ acpi_ps_append_arg(union acpi_parse_object *op, union acpi_parse_object *arg)
|
|||
*
|
||||
* FUNCTION: acpi_ps_get_depth_next
|
||||
*
|
||||
* PARAMETERS: Origin - Root of subtree to search
|
||||
* Op - Last (previous) Op that was found
|
||||
* PARAMETERS: origin - Root of subtree to search
|
||||
* op - Last (previous) Op that was found
|
||||
*
|
||||
* RETURN: Next Op found in the search.
|
||||
*
|
||||
|
|
@ -261,7 +261,7 @@ union acpi_parse_object *acpi_ps_get_depth_next(union acpi_parse_object *origin,
|
|||
*
|
||||
* FUNCTION: acpi_ps_get_child
|
||||
*
|
||||
* PARAMETERS: Op - Get the child of this Op
|
||||
* PARAMETERS: op - Get the child of this Op
|
||||
*
|
||||
* RETURN: Child Op, Null if none is found.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -77,8 +77,8 @@ union acpi_parse_object *acpi_ps_create_scope_op(void)
|
|||
*
|
||||
* FUNCTION: acpi_ps_init_op
|
||||
*
|
||||
* PARAMETERS: Op - A newly allocated Op object
|
||||
* Opcode - Opcode to store in the Op
|
||||
* PARAMETERS: op - A newly allocated Op object
|
||||
* opcode - Opcode to store in the Op
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -103,7 +103,7 @@ void acpi_ps_init_op(union acpi_parse_object *op, u16 opcode)
|
|||
*
|
||||
* FUNCTION: acpi_ps_alloc_op
|
||||
*
|
||||
* PARAMETERS: Opcode - Opcode that will be stored in the new Op
|
||||
* PARAMETERS: opcode - Opcode that will be stored in the new Op
|
||||
*
|
||||
* RETURN: Pointer to the new Op, null on failure
|
||||
*
|
||||
|
|
@ -160,7 +160,7 @@ union acpi_parse_object *acpi_ps_alloc_op(u16 opcode)
|
|||
*
|
||||
* FUNCTION: acpi_ps_free_op
|
||||
*
|
||||
* PARAMETERS: Op - Op to be freed
|
||||
* PARAMETERS: op - Op to be freed
|
||||
*
|
||||
* RETURN: None.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ acpi_ps_update_parameter_list(struct acpi_evaluate_info *info, u16 action);
|
|||
* PARAMETERS: method_name - Valid ACPI name string
|
||||
* debug_level - Optional level mask. 0 to use default
|
||||
* debug_layer - Optional layer mask. 0 to use default
|
||||
* Flags - bit 1: one shot(1) or persistent(0)
|
||||
* flags - bit 1: one shot(1) or persistent(0)
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -105,7 +105,7 @@ acpi_debug_trace(char *name, u32 debug_level, u32 debug_layer, u32 flags)
|
|||
*
|
||||
* FUNCTION: acpi_ps_start_trace
|
||||
*
|
||||
* PARAMETERS: Info - Method info struct
|
||||
* PARAMETERS: info - Method info struct
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -150,7 +150,7 @@ static void acpi_ps_start_trace(struct acpi_evaluate_info *info)
|
|||
*
|
||||
* FUNCTION: acpi_ps_stop_trace
|
||||
*
|
||||
* PARAMETERS: Info - Method info struct
|
||||
* PARAMETERS: info - Method info struct
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -193,10 +193,10 @@ static void acpi_ps_stop_trace(struct acpi_evaluate_info *info)
|
|||
*
|
||||
* FUNCTION: acpi_ps_execute_method
|
||||
*
|
||||
* PARAMETERS: Info - Method info block, contains:
|
||||
* Node - Method Node to execute
|
||||
* PARAMETERS: info - Method info block, contains:
|
||||
* node - Method Node to execute
|
||||
* obj_desc - Method object
|
||||
* Parameters - List of parameters to pass to the method,
|
||||
* parameters - List of parameters to pass to the method,
|
||||
* terminated by NULL. Params itself may be
|
||||
* NULL if no parameters are being passed.
|
||||
* return_object - Where to put method's return value (if
|
||||
|
|
@ -361,9 +361,9 @@ acpi_status acpi_ps_execute_method(struct acpi_evaluate_info *info)
|
|||
*
|
||||
* FUNCTION: acpi_ps_update_parameter_list
|
||||
*
|
||||
* PARAMETERS: Info - See struct acpi_evaluate_info
|
||||
* PARAMETERS: info - See struct acpi_evaluate_info
|
||||
* (Used: parameter_type and Parameters)
|
||||
* Action - Add or Remove reference
|
||||
* action - Add or Remove reference
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
|||
|
|
@ -182,8 +182,8 @@ struct acpi_rsconvert_info acpi_rs_convert_ext_address64[5] = {
|
|||
|
||||
/* Revision ID */
|
||||
|
||||
{ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.ext_address64.revision_iD),
|
||||
AML_OFFSET(ext_address64.revision_iD),
|
||||
{ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.ext_address64.revision_ID),
|
||||
AML_OFFSET(ext_address64.revision_ID),
|
||||
1},
|
||||
/*
|
||||
* These fields are contiguous in both the source and destination:
|
||||
|
|
@ -215,7 +215,7 @@ static struct acpi_rsconvert_info acpi_rs_convert_general_flags[6] = {
|
|||
AML_OFFSET(address.resource_type),
|
||||
1},
|
||||
|
||||
/* General Flags - Consume, Decode, min_fixed, max_fixed */
|
||||
/* General flags - Consume, Decode, min_fixed, max_fixed */
|
||||
|
||||
{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.address.producer_consumer),
|
||||
AML_OFFSET(address.flags),
|
||||
|
|
@ -293,8 +293,8 @@ static struct acpi_rsconvert_info acpi_rs_convert_io_flags[4] = {
|
|||
*
|
||||
* FUNCTION: acpi_rs_get_address_common
|
||||
*
|
||||
* PARAMETERS: Resource - Pointer to the internal resource struct
|
||||
* Aml - Pointer to the AML resource descriptor
|
||||
* PARAMETERS: resource - Pointer to the internal resource struct
|
||||
* aml - Pointer to the AML resource descriptor
|
||||
*
|
||||
* RETURN: TRUE if the resource_type field is OK, FALSE otherwise
|
||||
*
|
||||
|
|
@ -343,8 +343,8 @@ acpi_rs_get_address_common(struct acpi_resource *resource,
|
|||
*
|
||||
* FUNCTION: acpi_rs_set_address_common
|
||||
*
|
||||
* PARAMETERS: Aml - Pointer to the AML resource descriptor
|
||||
* Resource - Pointer to the internal resource struct
|
||||
* PARAMETERS: aml - Pointer to the AML resource descriptor
|
||||
* resource - Pointer to the internal resource struct
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@ acpi_rs_stream_option_length(u32 resource_length,
|
|||
*
|
||||
* FUNCTION: acpi_rs_get_aml_length
|
||||
*
|
||||
* PARAMETERS: Resource - Pointer to the resource linked list
|
||||
* PARAMETERS: resource - Pointer to the resource linked list
|
||||
* size_needed - Where the required size is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
|
|||
|
|
@ -190,8 +190,8 @@ acpi_rs_create_resource_list(union acpi_operand_object *aml_buffer,
|
|||
*
|
||||
* FUNCTION: acpi_rs_create_pci_routing_table
|
||||
*
|
||||
* PARAMETERS: package_object - Pointer to a union acpi_operand_object
|
||||
* package
|
||||
* PARAMETERS: package_object - Pointer to a package containing one
|
||||
* of more ACPI_OPERAND_OBJECTs
|
||||
* output_buffer - Pointer to the user's buffer
|
||||
*
|
||||
* RETURN: Status AE_OK if okay, else a valid acpi_status code.
|
||||
|
|
@ -199,7 +199,7 @@ acpi_rs_create_resource_list(union acpi_operand_object *aml_buffer,
|
|||
* AE_BUFFER_OVERFLOW and output_buffer->Length will point
|
||||
* to the size buffer needed.
|
||||
*
|
||||
* DESCRIPTION: Takes the union acpi_operand_object package and creates a
|
||||
* DESCRIPTION: Takes the union acpi_operand_object package and creates a
|
||||
* linked list of PCI interrupt descriptions
|
||||
*
|
||||
* NOTE: It is the caller's responsibility to ensure that the start of the
|
||||
|
|
|
|||
|
|
@ -703,7 +703,7 @@ acpi_rs_dump_resource_source(struct acpi_resource_source *resource_source)
|
|||
*
|
||||
* FUNCTION: acpi_rs_dump_address_common
|
||||
*
|
||||
* PARAMETERS: Resource - Pointer to an internal resource descriptor
|
||||
* PARAMETERS: resource - Pointer to an internal resource descriptor
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -850,8 +850,8 @@ void acpi_rs_dump_irq_list(u8 * route_table)
|
|||
*
|
||||
* FUNCTION: acpi_rs_out*
|
||||
*
|
||||
* PARAMETERS: Title - Name of the resource field
|
||||
* Value - Value of the resource field
|
||||
* PARAMETERS: title - Name of the resource field
|
||||
* value - Value of the resource field
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -898,8 +898,8 @@ static void acpi_rs_out_title(char *title)
|
|||
*
|
||||
* FUNCTION: acpi_rs_dump*List
|
||||
*
|
||||
* PARAMETERS: Length - Number of elements in the list
|
||||
* Data - Start of the list
|
||||
* PARAMETERS: length - Number of elements in the list
|
||||
* data - Start of the list
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ acpi_rs_convert_aml_to_resources(u8 * aml,
|
|||
*
|
||||
* FUNCTION: acpi_rs_convert_resources_to_aml
|
||||
*
|
||||
* PARAMETERS: Resource - Pointer to the resource linked list
|
||||
* PARAMETERS: resource - Pointer to the resource linked list
|
||||
* aml_size_needed - Calculated size of the byte stream
|
||||
* needed from calling acpi_rs_get_aml_length()
|
||||
* The size of the output_buffer is
|
||||
|
|
|
|||
|
|
@ -57,9 +57,9 @@ ACPI_MODULE_NAME("rsmisc")
|
|||
*
|
||||
* FUNCTION: acpi_rs_convert_aml_to_resource
|
||||
*
|
||||
* PARAMETERS: Resource - Pointer to the resource descriptor
|
||||
* Aml - Where the AML descriptor is returned
|
||||
* Info - Pointer to appropriate conversion table
|
||||
* PARAMETERS: resource - Pointer to the resource descriptor
|
||||
* aml - Where the AML descriptor is returned
|
||||
* info - Pointer to appropriate conversion table
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -406,7 +406,7 @@ acpi_rs_convert_aml_to_resource(struct acpi_resource *resource,
|
|||
|
||||
case ACPI_RSC_EXIT_NE:
|
||||
/*
|
||||
* Control - Exit conversion if not equal
|
||||
* control - Exit conversion if not equal
|
||||
*/
|
||||
switch (info->resource_offset) {
|
||||
case ACPI_RSC_COMPARE_AML_LENGTH:
|
||||
|
|
@ -454,9 +454,9 @@ acpi_rs_convert_aml_to_resource(struct acpi_resource *resource,
|
|||
*
|
||||
* FUNCTION: acpi_rs_convert_resource_to_aml
|
||||
*
|
||||
* PARAMETERS: Resource - Pointer to the resource descriptor
|
||||
* Aml - Where the AML descriptor is returned
|
||||
* Info - Pointer to appropriate conversion table
|
||||
* PARAMETERS: resource - Pointer to the resource descriptor
|
||||
* aml - Where the AML descriptor is returned
|
||||
* info - Pointer to appropriate conversion table
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -726,7 +726,7 @@ acpi_rs_convert_resource_to_aml(struct acpi_resource *resource,
|
|||
|
||||
case ACPI_RSC_EXIT_LE:
|
||||
/*
|
||||
* Control - Exit conversion if less than or equal
|
||||
* control - Exit conversion if less than or equal
|
||||
*/
|
||||
if (item_count <= info->value) {
|
||||
goto exit;
|
||||
|
|
@ -735,7 +735,7 @@ acpi_rs_convert_resource_to_aml(struct acpi_resource *resource,
|
|||
|
||||
case ACPI_RSC_EXIT_NE:
|
||||
/*
|
||||
* Control - Exit conversion if not equal
|
||||
* control - Exit conversion if not equal
|
||||
*/
|
||||
switch (COMPARE_OPCODE(info)) {
|
||||
case ACPI_RSC_COMPARE_VALUE:
|
||||
|
|
@ -757,7 +757,7 @@ acpi_rs_convert_resource_to_aml(struct acpi_resource *resource,
|
|||
|
||||
case ACPI_RSC_EXIT_EQ:
|
||||
/*
|
||||
* Control - Exit conversion if equal
|
||||
* control - Exit conversion if equal
|
||||
*/
|
||||
if (*ACPI_ADD_PTR(u8, resource,
|
||||
COMPARE_TARGET(info)) ==
|
||||
|
|
@ -783,7 +783,7 @@ acpi_rs_convert_resource_to_aml(struct acpi_resource *resource,
|
|||
#if 0
|
||||
/* Previous resource validations */
|
||||
|
||||
if (aml->ext_address64.revision_iD != AML_RESOURCE_EXTENDED_ADDRESS_REVISION) {
|
||||
if (aml->ext_address64.revision_ID != AML_RESOURCE_EXTENDED_ADDRESS_REVISION) {
|
||||
return_ACPI_STATUS(AE_SUPPORT);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -53,8 +53,8 @@ ACPI_MODULE_NAME("rsutils")
|
|||
*
|
||||
* FUNCTION: acpi_rs_decode_bitmask
|
||||
*
|
||||
* PARAMETERS: Mask - Bitmask to decode
|
||||
* List - Where the converted list is returned
|
||||
* PARAMETERS: mask - Bitmask to decode
|
||||
* list - Where the converted list is returned
|
||||
*
|
||||
* RETURN: Count of bits set (length of list)
|
||||
*
|
||||
|
|
@ -86,8 +86,8 @@ u8 acpi_rs_decode_bitmask(u16 mask, u8 * list)
|
|||
*
|
||||
* FUNCTION: acpi_rs_encode_bitmask
|
||||
*
|
||||
* PARAMETERS: List - List of values to encode
|
||||
* Count - Length of list
|
||||
* PARAMETERS: list - List of values to encode
|
||||
* count - Length of list
|
||||
*
|
||||
* RETURN: Encoded bitmask
|
||||
*
|
||||
|
|
@ -115,8 +115,8 @@ u16 acpi_rs_encode_bitmask(u8 * list, u8 count)
|
|||
*
|
||||
* FUNCTION: acpi_rs_move_data
|
||||
*
|
||||
* PARAMETERS: Destination - Pointer to the destination descriptor
|
||||
* Source - Pointer to the source descriptor
|
||||
* PARAMETERS: destination - Pointer to the destination descriptor
|
||||
* source - Pointer to the source descriptor
|
||||
* item_count - How many items to move
|
||||
* move_type - Byte width
|
||||
*
|
||||
|
|
@ -183,7 +183,7 @@ acpi_rs_move_data(void *destination, void *source, u16 item_count, u8 move_type)
|
|||
*
|
||||
* PARAMETERS: total_length - Length of the AML descriptor, including
|
||||
* the header and length fields.
|
||||
* Aml - Pointer to the raw AML descriptor
|
||||
* aml - Pointer to the raw AML descriptor
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -235,7 +235,7 @@ acpi_rs_set_resource_length(acpi_rsdesc_size total_length,
|
|||
* PARAMETERS: descriptor_type - Byte to be inserted as the type
|
||||
* total_length - Length of the AML descriptor, including
|
||||
* the header and length fields.
|
||||
* Aml - Pointer to the raw AML descriptor
|
||||
* aml - Pointer to the raw AML descriptor
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -265,8 +265,8 @@ acpi_rs_set_resource_header(u8 descriptor_type,
|
|||
*
|
||||
* FUNCTION: acpi_rs_strcpy
|
||||
*
|
||||
* PARAMETERS: Destination - Pointer to the destination string
|
||||
* Source - Pointer to the source string
|
||||
* PARAMETERS: destination - Pointer to the destination string
|
||||
* source - Pointer to the source string
|
||||
*
|
||||
* RETURN: String length, including NULL terminator
|
||||
*
|
||||
|
|
@ -300,7 +300,7 @@ static u16 acpi_rs_strcpy(char *destination, char *source)
|
|||
* minimum_length - Minimum length of the descriptor (minus
|
||||
* any optional fields)
|
||||
* resource_source - Where the resource_source is returned
|
||||
* Aml - Pointer to the raw AML descriptor
|
||||
* aml - Pointer to the raw AML descriptor
|
||||
* string_ptr - (optional) where to store the actual
|
||||
* resource_source string
|
||||
*
|
||||
|
|
@ -386,7 +386,7 @@ acpi_rs_get_resource_source(acpi_rs_length resource_length,
|
|||
*
|
||||
* FUNCTION: acpi_rs_set_resource_source
|
||||
*
|
||||
* PARAMETERS: Aml - Pointer to the raw AML descriptor
|
||||
* PARAMETERS: aml - Pointer to the raw AML descriptor
|
||||
* minimum_length - Minimum length of the descriptor (minus
|
||||
* any optional fields)
|
||||
* resource_source - Internal resource_source
|
||||
|
|
@ -445,7 +445,7 @@ acpi_rs_set_resource_source(union aml_resource * aml,
|
|||
*
|
||||
* FUNCTION: acpi_rs_get_prt_method_data
|
||||
*
|
||||
* PARAMETERS: Node - Device node
|
||||
* PARAMETERS: node - Device node
|
||||
* ret_buffer - Pointer to a buffer structure for the
|
||||
* results
|
||||
*
|
||||
|
|
@ -494,7 +494,7 @@ acpi_rs_get_prt_method_data(struct acpi_namespace_node * node,
|
|||
*
|
||||
* FUNCTION: acpi_rs_get_crs_method_data
|
||||
*
|
||||
* PARAMETERS: Node - Device node
|
||||
* PARAMETERS: node - Device node
|
||||
* ret_buffer - Pointer to a buffer structure for the
|
||||
* results
|
||||
*
|
||||
|
|
@ -534,7 +534,7 @@ acpi_rs_get_crs_method_data(struct acpi_namespace_node *node,
|
|||
*/
|
||||
status = acpi_rs_create_resource_list(obj_desc, ret_buffer);
|
||||
|
||||
/* On exit, we must delete the object returned by evaluate_object */
|
||||
/* On exit, we must delete the object returned by evaluateObject */
|
||||
|
||||
acpi_ut_remove_reference(obj_desc);
|
||||
return_ACPI_STATUS(status);
|
||||
|
|
@ -544,7 +544,7 @@ acpi_rs_get_crs_method_data(struct acpi_namespace_node *node,
|
|||
*
|
||||
* FUNCTION: acpi_rs_get_prs_method_data
|
||||
*
|
||||
* PARAMETERS: Node - Device node
|
||||
* PARAMETERS: node - Device node
|
||||
* ret_buffer - Pointer to a buffer structure for the
|
||||
* results
|
||||
*
|
||||
|
|
@ -585,7 +585,7 @@ acpi_rs_get_prs_method_data(struct acpi_namespace_node *node,
|
|||
*/
|
||||
status = acpi_rs_create_resource_list(obj_desc, ret_buffer);
|
||||
|
||||
/* On exit, we must delete the object returned by evaluate_object */
|
||||
/* On exit, we must delete the object returned by evaluateObject */
|
||||
|
||||
acpi_ut_remove_reference(obj_desc);
|
||||
return_ACPI_STATUS(status);
|
||||
|
|
@ -596,7 +596,7 @@ acpi_rs_get_prs_method_data(struct acpi_namespace_node *node,
|
|||
*
|
||||
* FUNCTION: acpi_rs_get_aei_method_data
|
||||
*
|
||||
* PARAMETERS: Node - Device node
|
||||
* PARAMETERS: node - Device node
|
||||
* ret_buffer - Pointer to a buffer structure for the
|
||||
* results
|
||||
*
|
||||
|
|
@ -636,7 +636,7 @@ acpi_rs_get_aei_method_data(struct acpi_namespace_node *node,
|
|||
*/
|
||||
status = acpi_rs_create_resource_list(obj_desc, ret_buffer);
|
||||
|
||||
/* On exit, we must delete the object returned by evaluate_object */
|
||||
/* On exit, we must delete the object returned by evaluateObject */
|
||||
|
||||
acpi_ut_remove_reference(obj_desc);
|
||||
return_ACPI_STATUS(status);
|
||||
|
|
@ -646,8 +646,8 @@ acpi_rs_get_aei_method_data(struct acpi_namespace_node *node,
|
|||
*
|
||||
* FUNCTION: acpi_rs_get_method_data
|
||||
*
|
||||
* PARAMETERS: Handle - Handle to the containing object
|
||||
* Path - Path to method, relative to Handle
|
||||
* PARAMETERS: handle - Handle to the containing object
|
||||
* path - Path to method, relative to Handle
|
||||
* ret_buffer - Pointer to a buffer structure for the
|
||||
* results
|
||||
*
|
||||
|
|
@ -697,7 +697,7 @@ acpi_rs_get_method_data(acpi_handle handle,
|
|||
*
|
||||
* FUNCTION: acpi_rs_set_srs_method_data
|
||||
*
|
||||
* PARAMETERS: Node - Device node
|
||||
* PARAMETERS: node - Device node
|
||||
* in_buffer - Pointer to a buffer structure of the
|
||||
* parameter
|
||||
*
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ acpi_rs_validate_parameters(acpi_handle device_handle,
|
|||
* FUNCTION: acpi_rs_validate_parameters
|
||||
*
|
||||
* PARAMETERS: device_handle - Handle to a device
|
||||
* Buffer - Pointer to a data buffer
|
||||
* buffer - Pointer to a data buffer
|
||||
* return_node - Pointer to where the device node is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -351,8 +351,8 @@ ACPI_EXPORT_SYMBOL(acpi_get_event_resources)
|
|||
*
|
||||
* FUNCTION: acpi_resource_to_address64
|
||||
*
|
||||
* PARAMETERS: Resource - Pointer to a resource
|
||||
* Out - Pointer to the users's return buffer
|
||||
* PARAMETERS: resource - Pointer to a resource
|
||||
* out - Pointer to the users's return buffer
|
||||
* (a struct acpi_resource_address64)
|
||||
*
|
||||
* RETURN: Status
|
||||
|
|
@ -415,9 +415,9 @@ ACPI_EXPORT_SYMBOL(acpi_resource_to_address64)
|
|||
* FUNCTION: acpi_get_vendor_resource
|
||||
*
|
||||
* PARAMETERS: device_handle - Handle for the parent device object
|
||||
* Name - Method name for the parent resource
|
||||
* name - Method name for the parent resource
|
||||
* (METHOD_NAME__CRS or METHOD_NAME__PRS)
|
||||
* Uuid - Pointer to the UUID to be matched.
|
||||
* uuid - Pointer to the UUID to be matched.
|
||||
* includes both subtype and 16-byte UUID
|
||||
* ret_buffer - Where the vendor resource is returned
|
||||
*
|
||||
|
|
@ -526,11 +526,11 @@ acpi_rs_match_vendor_resource(struct acpi_resource *resource, void *context)
|
|||
*
|
||||
* PARAMETERS: device_handle - Handle to the device object for the
|
||||
* device we are querying
|
||||
* Name - Method name of the resources we want.
|
||||
* name - Method name of the resources we want.
|
||||
* (METHOD_NAME__CRS, METHOD_NAME__PRS, or
|
||||
* METHOD_NAME__AEI)
|
||||
* user_function - Called for each resource
|
||||
* Context - Passed to user_function
|
||||
* context - Passed to user_function
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
|||
|
|
@ -49,9 +49,10 @@
|
|||
ACPI_MODULE_NAME("tbfadt")
|
||||
|
||||
/* Local prototypes */
|
||||
static ACPI_INLINE void
|
||||
static void
|
||||
acpi_tb_init_generic_address(struct acpi_generic_address *generic_address,
|
||||
u8 space_id, u8 byte_width, u64 address);
|
||||
u8 space_id,
|
||||
u8 byte_width, u64 address, char *register_name);
|
||||
|
||||
static void acpi_tb_convert_fadt(void);
|
||||
|
||||
|
|
@ -172,7 +173,7 @@ static struct acpi_fadt_pm_info fadt_pm_info_table[] = {
|
|||
*
|
||||
* PARAMETERS: generic_address - GAS struct to be initialized
|
||||
* byte_width - Width of this register
|
||||
* Address - Address of the register
|
||||
* address - Address of the register
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -182,10 +183,25 @@ static struct acpi_fadt_pm_info fadt_pm_info_table[] = {
|
|||
*
|
||||
******************************************************************************/
|
||||
|
||||
static ACPI_INLINE void
|
||||
static void
|
||||
acpi_tb_init_generic_address(struct acpi_generic_address *generic_address,
|
||||
u8 space_id, u8 byte_width, u64 address)
|
||||
u8 space_id,
|
||||
u8 byte_width, u64 address, char *register_name)
|
||||
{
|
||||
u8 bit_width;
|
||||
|
||||
/* Bit width field in the GAS is only one byte long, 255 max */
|
||||
|
||||
bit_width = (u8)(byte_width * 8);
|
||||
|
||||
if (byte_width > 31) { /* (31*8)=248 */
|
||||
ACPI_ERROR((AE_INFO,
|
||||
"%s - 32-bit FADT register is too long (%u bytes, %u bits) "
|
||||
"to convert to GAS struct - 255 bits max, truncating",
|
||||
register_name, byte_width, (byte_width * 8)));
|
||||
|
||||
bit_width = 255;
|
||||
}
|
||||
|
||||
/*
|
||||
* The 64-bit Address field is non-aligned in the byte packed
|
||||
|
|
@ -196,7 +212,7 @@ acpi_tb_init_generic_address(struct acpi_generic_address *generic_address,
|
|||
/* All other fields are byte-wide */
|
||||
|
||||
generic_address->space_id = space_id;
|
||||
generic_address->bit_width = (u8)ACPI_MUL_8(byte_width);
|
||||
generic_address->bit_width = bit_width;
|
||||
generic_address->bit_offset = 0;
|
||||
generic_address->access_width = 0; /* Access width ANY */
|
||||
}
|
||||
|
|
@ -267,8 +283,8 @@ void acpi_tb_parse_fadt(u32 table_index)
|
|||
*
|
||||
* FUNCTION: acpi_tb_create_local_fadt
|
||||
*
|
||||
* PARAMETERS: Table - Pointer to BIOS FADT
|
||||
* Length - Length of the table
|
||||
* PARAMETERS: table - Pointer to BIOS FADT
|
||||
* length - Length of the table
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -287,11 +303,11 @@ void acpi_tb_create_local_fadt(struct acpi_table_header *table, u32 length)
|
|||
* a warning.
|
||||
*/
|
||||
if (length > sizeof(struct acpi_table_fadt)) {
|
||||
ACPI_WARNING((AE_INFO,
|
||||
"FADT (revision %u) is longer than ACPI 5.0 version, "
|
||||
"truncating length %u to %u",
|
||||
table->revision, length,
|
||||
(u32)sizeof(struct acpi_table_fadt)));
|
||||
ACPI_BIOS_WARNING((AE_INFO,
|
||||
"FADT (revision %u) is longer than ACPI 5.0 version, "
|
||||
"truncating length %u to %u",
|
||||
table->revision, length,
|
||||
(u32)sizeof(struct acpi_table_fadt)));
|
||||
}
|
||||
|
||||
/* Clear the entire local FADT */
|
||||
|
|
@ -436,11 +452,13 @@ static void acpi_tb_convert_fadt(void)
|
|||
* they must match.
|
||||
*/
|
||||
if (address64->address && address32 &&
|
||||
(address64->address != (u64) address32)) {
|
||||
ACPI_ERROR((AE_INFO,
|
||||
"32/64X address mismatch in %s: 0x%8.8X/0x%8.8X%8.8X, using 32",
|
||||
fadt_info_table[i].name, address32,
|
||||
ACPI_FORMAT_UINT64(address64->address)));
|
||||
(address64->address != (u64)address32)) {
|
||||
ACPI_BIOS_ERROR((AE_INFO,
|
||||
"32/64X address mismatch in FADT/%s: "
|
||||
"0x%8.8X/0x%8.8X%8.8X, using 32",
|
||||
fadt_info_table[i].name, address32,
|
||||
ACPI_FORMAT_UINT64(address64->
|
||||
address)));
|
||||
}
|
||||
|
||||
/* Always use 32-bit address if it is valid (non-null) */
|
||||
|
|
@ -456,7 +474,8 @@ static void acpi_tb_convert_fadt(void)
|
|||
&acpi_gbl_FADT,
|
||||
fadt_info_table
|
||||
[i].length),
|
||||
(u64) address32);
|
||||
(u64) address32,
|
||||
fadt_info_table[i].name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -465,7 +484,7 @@ static void acpi_tb_convert_fadt(void)
|
|||
*
|
||||
* FUNCTION: acpi_tb_validate_fadt
|
||||
*
|
||||
* PARAMETERS: Table - Pointer to the FADT to be validated
|
||||
* PARAMETERS: table - Pointer to the FADT to be validated
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -494,25 +513,25 @@ static void acpi_tb_validate_fadt(void)
|
|||
* DSDT/X_DSDT) would indicate the presence of two FACS or two DSDT tables.
|
||||
*/
|
||||
if (acpi_gbl_FADT.facs &&
|
||||
(acpi_gbl_FADT.Xfacs != (u64) acpi_gbl_FADT.facs)) {
|
||||
ACPI_WARNING((AE_INFO,
|
||||
"32/64X FACS address mismatch in FADT - "
|
||||
"0x%8.8X/0x%8.8X%8.8X, using 32",
|
||||
acpi_gbl_FADT.facs,
|
||||
ACPI_FORMAT_UINT64(acpi_gbl_FADT.Xfacs)));
|
||||
(acpi_gbl_FADT.Xfacs != (u64)acpi_gbl_FADT.facs)) {
|
||||
ACPI_BIOS_WARNING((AE_INFO,
|
||||
"32/64X FACS address mismatch in FADT - "
|
||||
"0x%8.8X/0x%8.8X%8.8X, using 32",
|
||||
acpi_gbl_FADT.facs,
|
||||
ACPI_FORMAT_UINT64(acpi_gbl_FADT.Xfacs)));
|
||||
|
||||
acpi_gbl_FADT.Xfacs = (u64) acpi_gbl_FADT.facs;
|
||||
acpi_gbl_FADT.Xfacs = (u64)acpi_gbl_FADT.facs;
|
||||
}
|
||||
|
||||
if (acpi_gbl_FADT.dsdt &&
|
||||
(acpi_gbl_FADT.Xdsdt != (u64) acpi_gbl_FADT.dsdt)) {
|
||||
ACPI_WARNING((AE_INFO,
|
||||
"32/64X DSDT address mismatch in FADT - "
|
||||
"0x%8.8X/0x%8.8X%8.8X, using 32",
|
||||
acpi_gbl_FADT.dsdt,
|
||||
ACPI_FORMAT_UINT64(acpi_gbl_FADT.Xdsdt)));
|
||||
(acpi_gbl_FADT.Xdsdt != (u64)acpi_gbl_FADT.dsdt)) {
|
||||
ACPI_BIOS_WARNING((AE_INFO,
|
||||
"32/64X DSDT address mismatch in FADT - "
|
||||
"0x%8.8X/0x%8.8X%8.8X, using 32",
|
||||
acpi_gbl_FADT.dsdt,
|
||||
ACPI_FORMAT_UINT64(acpi_gbl_FADT.Xdsdt)));
|
||||
|
||||
acpi_gbl_FADT.Xdsdt = (u64) acpi_gbl_FADT.dsdt;
|
||||
acpi_gbl_FADT.Xdsdt = (u64)acpi_gbl_FADT.dsdt;
|
||||
}
|
||||
|
||||
/* If Hardware Reduced flag is set, we are all done */
|
||||
|
|
@ -542,10 +561,10 @@ static void acpi_tb_validate_fadt(void)
|
|||
*/
|
||||
if (address64->address &&
|
||||
(address64->bit_width != ACPI_MUL_8(length))) {
|
||||
ACPI_WARNING((AE_INFO,
|
||||
"32/64X length mismatch in %s: %u/%u",
|
||||
name, ACPI_MUL_8(length),
|
||||
address64->bit_width));
|
||||
ACPI_BIOS_WARNING((AE_INFO,
|
||||
"32/64X length mismatch in FADT/%s: %u/%u",
|
||||
name, ACPI_MUL_8(length),
|
||||
address64->bit_width));
|
||||
}
|
||||
|
||||
if (fadt_info_table[i].type & ACPI_FADT_REQUIRED) {
|
||||
|
|
@ -554,29 +573,29 @@ static void acpi_tb_validate_fadt(void)
|
|||
* Both the address and length must be non-zero.
|
||||
*/
|
||||
if (!address64->address || !length) {
|
||||
ACPI_ERROR((AE_INFO,
|
||||
"Required field %s has zero address and/or length:"
|
||||
" 0x%8.8X%8.8X/0x%X",
|
||||
name,
|
||||
ACPI_FORMAT_UINT64(address64->
|
||||
address),
|
||||
length));
|
||||
ACPI_BIOS_ERROR((AE_INFO,
|
||||
"Required FADT field %s has zero address and/or length: "
|
||||
"0x%8.8X%8.8X/0x%X",
|
||||
name,
|
||||
ACPI_FORMAT_UINT64(address64->
|
||||
address),
|
||||
length));
|
||||
}
|
||||
} else if (fadt_info_table[i].type & ACPI_FADT_SEPARATE_LENGTH) {
|
||||
/*
|
||||
* Field is optional (PM2Control, GPE0, GPE1) AND has its own
|
||||
* Field is optional (Pm2_control, GPE0, GPE1) AND has its own
|
||||
* length field. If present, both the address and length must
|
||||
* be valid.
|
||||
*/
|
||||
if ((address64->address && !length) ||
|
||||
(!address64->address && length)) {
|
||||
ACPI_WARNING((AE_INFO,
|
||||
"Optional field %s has zero address or length: "
|
||||
"0x%8.8X%8.8X/0x%X",
|
||||
name,
|
||||
ACPI_FORMAT_UINT64(address64->
|
||||
address),
|
||||
length));
|
||||
ACPI_BIOS_WARNING((AE_INFO,
|
||||
"Optional FADT field %s has zero address or length: "
|
||||
"0x%8.8X%8.8X/0x%X",
|
||||
name,
|
||||
ACPI_FORMAT_UINT64
|
||||
(address64->address),
|
||||
length));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -621,12 +640,12 @@ static void acpi_tb_setup_fadt_registers(void)
|
|||
(fadt_info_table[i].default_length > 0) &&
|
||||
(fadt_info_table[i].default_length !=
|
||||
target64->bit_width)) {
|
||||
ACPI_WARNING((AE_INFO,
|
||||
"Invalid length for %s: %u, using default %u",
|
||||
fadt_info_table[i].name,
|
||||
target64->bit_width,
|
||||
fadt_info_table[i].
|
||||
default_length));
|
||||
ACPI_BIOS_WARNING((AE_INFO,
|
||||
"Invalid length for FADT/%s: %u, using default %u",
|
||||
fadt_info_table[i].name,
|
||||
target64->bit_width,
|
||||
fadt_info_table[i].
|
||||
default_length));
|
||||
|
||||
/* Incorrect size, set width to the default */
|
||||
|
||||
|
|
@ -670,7 +689,8 @@ static void acpi_tb_setup_fadt_registers(void)
|
|||
source64->address +
|
||||
(fadt_pm_info_table[i].
|
||||
register_num *
|
||||
pm1_register_byte_width));
|
||||
pm1_register_byte_width),
|
||||
"PmRegisters");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ ACPI_MODULE_NAME("tbfind")
|
|||
*
|
||||
* FUNCTION: acpi_tb_find_table
|
||||
*
|
||||
* PARAMETERS: Signature - String with ACPI table signature
|
||||
* PARAMETERS: signature - String with ACPI table signature
|
||||
* oem_id - String with the table OEM ID
|
||||
* oem_table_id - String with the OEM Table ID
|
||||
* table_index - Where the table index is returned
|
||||
|
|
|
|||
|
|
@ -138,13 +138,14 @@ acpi_tb_add_table(struct acpi_table_desc *table_desc, u32 *table_index)
|
|||
if ((table_desc->pointer->signature[0] != 0x00) &&
|
||||
(!ACPI_COMPARE_NAME(table_desc->pointer->signature, ACPI_SIG_SSDT))
|
||||
&& (ACPI_STRNCMP(table_desc->pointer->signature, "OEM", 3))) {
|
||||
ACPI_ERROR((AE_INFO,
|
||||
"Table has invalid signature [%4.4s] (0x%8.8X), must be SSDT or OEMx",
|
||||
acpi_ut_valid_acpi_name(*(u32 *)table_desc->
|
||||
pointer->
|
||||
signature) ? table_desc->
|
||||
pointer->signature : "????",
|
||||
*(u32 *)table_desc->pointer->signature));
|
||||
ACPI_BIOS_ERROR((AE_INFO,
|
||||
"Table has invalid signature [%4.4s] (0x%8.8X), "
|
||||
"must be SSDT or OEMx",
|
||||
acpi_ut_valid_acpi_name(*(u32 *)table_desc->
|
||||
pointer->
|
||||
signature) ?
|
||||
table_desc->pointer->signature : "????",
|
||||
*(u32 *)table_desc->pointer->signature));
|
||||
|
||||
return_ACPI_STATUS(AE_BAD_SIGNATURE);
|
||||
}
|
||||
|
|
@ -396,10 +397,10 @@ acpi_status acpi_tb_resize_root_table_list(void)
|
|||
*
|
||||
* FUNCTION: acpi_tb_store_table
|
||||
*
|
||||
* PARAMETERS: Address - Table address
|
||||
* Table - Table header
|
||||
* Length - Table length
|
||||
* Flags - flags
|
||||
* PARAMETERS: address - Table address
|
||||
* table - Table header
|
||||
* length - Table length
|
||||
* flags - flags
|
||||
*
|
||||
* RETURN: Status and table index.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -178,8 +178,8 @@ u8 acpi_tb_tables_loaded(void)
|
|||
*
|
||||
* FUNCTION: acpi_tb_fix_string
|
||||
*
|
||||
* PARAMETERS: String - String to be repaired
|
||||
* Length - Maximum length
|
||||
* PARAMETERS: string - String to be repaired
|
||||
* length - Maximum length
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -205,7 +205,7 @@ static void acpi_tb_fix_string(char *string, acpi_size length)
|
|||
* FUNCTION: acpi_tb_cleanup_table_header
|
||||
*
|
||||
* PARAMETERS: out_header - Where the cleaned header is returned
|
||||
* Header - Input ACPI table header
|
||||
* header - Input ACPI table header
|
||||
*
|
||||
* RETURN: Returns the cleaned header in out_header
|
||||
*
|
||||
|
|
@ -231,8 +231,8 @@ acpi_tb_cleanup_table_header(struct acpi_table_header *out_header,
|
|||
*
|
||||
* FUNCTION: acpi_tb_print_table_header
|
||||
*
|
||||
* PARAMETERS: Address - Table physical address
|
||||
* Header - Table header
|
||||
* PARAMETERS: address - Table physical address
|
||||
* header - Table header
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
|
|
@ -296,8 +296,8 @@ acpi_tb_print_table_header(acpi_physical_address address,
|
|||
*
|
||||
* FUNCTION: acpi_tb_validate_checksum
|
||||
*
|
||||
* PARAMETERS: Table - ACPI table to verify
|
||||
* Length - Length of entire table
|
||||
* PARAMETERS: table - ACPI table to verify
|
||||
* length - Length of entire table
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -317,10 +317,11 @@ acpi_status acpi_tb_verify_checksum(struct acpi_table_header *table, u32 length)
|
|||
/* Checksum ok? (should be zero) */
|
||||
|
||||
if (checksum) {
|
||||
ACPI_WARNING((AE_INFO,
|
||||
"Incorrect checksum in table [%4.4s] - 0x%2.2X, should be 0x%2.2X",
|
||||
table->signature, table->checksum,
|
||||
(u8) (table->checksum - checksum)));
|
||||
ACPI_BIOS_WARNING((AE_INFO,
|
||||
"Incorrect checksum in table [%4.4s] - 0x%2.2X, "
|
||||
"should be 0x%2.2X",
|
||||
table->signature, table->checksum,
|
||||
(u8)(table->checksum - checksum)));
|
||||
|
||||
#if (ACPI_CHECKSUM_ABORT)
|
||||
|
||||
|
|
@ -335,8 +336,8 @@ acpi_status acpi_tb_verify_checksum(struct acpi_table_header *table, u32 length)
|
|||
*
|
||||
* FUNCTION: acpi_tb_checksum
|
||||
*
|
||||
* PARAMETERS: Buffer - Pointer to memory region to be checked
|
||||
* Length - Length of this memory region
|
||||
* PARAMETERS: buffer - Pointer to memory region to be checked
|
||||
* length - Length of this memory region
|
||||
*
|
||||
* RETURN: Checksum (u8)
|
||||
*
|
||||
|
|
@ -377,8 +378,9 @@ void acpi_tb_check_dsdt_header(void)
|
|||
|
||||
if (acpi_gbl_original_dsdt_header.length != acpi_gbl_DSDT->length ||
|
||||
acpi_gbl_original_dsdt_header.checksum != acpi_gbl_DSDT->checksum) {
|
||||
ACPI_ERROR((AE_INFO,
|
||||
"The DSDT has been corrupted or replaced - old, new headers below"));
|
||||
ACPI_BIOS_ERROR((AE_INFO,
|
||||
"The DSDT has been corrupted or replaced - "
|
||||
"old, new headers below"));
|
||||
acpi_tb_print_table_header(0, &acpi_gbl_original_dsdt_header);
|
||||
acpi_tb_print_table_header(0, acpi_gbl_DSDT);
|
||||
|
||||
|
|
@ -438,8 +440,8 @@ struct acpi_table_header *acpi_tb_copy_dsdt(u32 table_index)
|
|||
*
|
||||
* FUNCTION: acpi_tb_install_table
|
||||
*
|
||||
* PARAMETERS: Address - Physical address of DSDT or FACS
|
||||
* Signature - Table signature, NULL if no need to
|
||||
* PARAMETERS: address - Physical address of DSDT or FACS
|
||||
* signature - Table signature, NULL if no need to
|
||||
* match
|
||||
* table_index - Index into root table array
|
||||
*
|
||||
|
|
@ -480,9 +482,10 @@ acpi_tb_install_table(acpi_physical_address address,
|
|||
/* If a particular signature is expected (DSDT/FACS), it must match */
|
||||
|
||||
if (signature && !ACPI_COMPARE_NAME(table->signature, signature)) {
|
||||
ACPI_ERROR((AE_INFO,
|
||||
"Invalid signature 0x%X for ACPI table, expected [%s]",
|
||||
*ACPI_CAST_PTR(u32, table->signature), signature));
|
||||
ACPI_BIOS_ERROR((AE_INFO,
|
||||
"Invalid signature 0x%X for ACPI table, expected [%s]",
|
||||
*ACPI_CAST_PTR(u32, table->signature),
|
||||
signature));
|
||||
goto unmap_and_exit;
|
||||
}
|
||||
|
||||
|
|
@ -589,10 +592,10 @@ acpi_tb_get_root_table_entry(u8 *table_entry, u32 table_entry_size)
|
|||
|
||||
/* Will truncate 64-bit address to 32 bits, issue warning */
|
||||
|
||||
ACPI_WARNING((AE_INFO,
|
||||
"64-bit Physical Address in XSDT is too large (0x%8.8X%8.8X),"
|
||||
" truncating",
|
||||
ACPI_FORMAT_UINT64(address64)));
|
||||
ACPI_BIOS_WARNING((AE_INFO,
|
||||
"64-bit Physical Address in XSDT is too large (0x%8.8X%8.8X),"
|
||||
" truncating",
|
||||
ACPI_FORMAT_UINT64(address64)));
|
||||
}
|
||||
#endif
|
||||
return ((acpi_physical_address) (address64));
|
||||
|
|
@ -603,7 +606,7 @@ acpi_tb_get_root_table_entry(u8 *table_entry, u32 table_entry_size)
|
|||
*
|
||||
* FUNCTION: acpi_tb_parse_root_table
|
||||
*
|
||||
* PARAMETERS: Rsdp - Pointer to the RSDP
|
||||
* PARAMETERS: rsdp - Pointer to the RSDP
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
@ -694,8 +697,9 @@ acpi_tb_parse_root_table(acpi_physical_address rsdp_address)
|
|||
acpi_os_unmap_memory(table, sizeof(struct acpi_table_header));
|
||||
|
||||
if (length < sizeof(struct acpi_table_header)) {
|
||||
ACPI_ERROR((AE_INFO, "Invalid length 0x%X in RSDT/XSDT",
|
||||
length));
|
||||
ACPI_BIOS_ERROR((AE_INFO,
|
||||
"Invalid table length 0x%X in RSDT/XSDT",
|
||||
length));
|
||||
return_ACPI_STATUS(AE_INVALID_TABLE_LENGTH);
|
||||
}
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue