mirror of
https://github.com/armbian/linux.git
synced 2026-01-06 10:13:00 -08:00
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: ACPI: ACPI_DOCK: Initialize the atomic notifier list ACPI: acpi_os_allocate() fixes ACPI: SBS: fix initialization, sem2mutex ACPI: add 'const' to several ACPI file_operations ACPI: delete some defaults from ACPI Kconfig ACPI: "Device `[%s]' is not power manageable" make message debug only ACPI: ACPI_DOCK Kconfig Revert "Revert "ACPI: dock driver"" ACPI: acpi_os_get_thread_id() returns current ACPI: ACPICA 20060707
This commit is contained in:
@@ -132,6 +132,12 @@ config ACPI_FAN
|
||||
This driver adds support for ACPI fan devices, allowing user-mode
|
||||
applications to perform basic fan control (on, off, status).
|
||||
|
||||
config ACPI_DOCK
|
||||
tristate "Dock"
|
||||
depends on EXPERIMENTAL
|
||||
help
|
||||
This driver adds support for ACPI controlled docking stations
|
||||
|
||||
config ACPI_PROCESSOR
|
||||
tristate "Processor"
|
||||
default y
|
||||
@@ -206,6 +212,7 @@ config ACPI_IBM
|
||||
config ACPI_IBM_DOCK
|
||||
bool "Legacy Docking Station Support"
|
||||
depends on ACPI_IBM
|
||||
depends on ACPI_DOCK=n
|
||||
default n
|
||||
---help---
|
||||
Allows the ibm_acpi driver to handle docking station events.
|
||||
|
||||
@@ -42,6 +42,7 @@ obj-$(CONFIG_ACPI_BATTERY) += battery.o
|
||||
obj-$(CONFIG_ACPI_BUTTON) += button.o
|
||||
obj-$(CONFIG_ACPI_EC) += ec.o
|
||||
obj-$(CONFIG_ACPI_FAN) += fan.o
|
||||
obj-$(CONFIG_ACPI_DOCK) += dock.o
|
||||
obj-$(CONFIG_ACPI_VIDEO) += video.o
|
||||
obj-$(CONFIG_ACPI_HOTKEY) += hotkey.o
|
||||
obj-y += pci_root.o pci_link.o pci_irq.o pci_bind.o
|
||||
|
||||
@@ -72,7 +72,7 @@ struct acpi_ac {
|
||||
unsigned long state;
|
||||
};
|
||||
|
||||
static struct file_operations acpi_ac_fops = {
|
||||
static const struct file_operations acpi_ac_fops = {
|
||||
.open = acpi_ac_open_fs,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
|
||||
@@ -557,7 +557,7 @@ static int acpi_battery_alarm_open_fs(struct inode *inode, struct file *file)
|
||||
return single_open(file, acpi_battery_read_alarm, PDE(inode)->data);
|
||||
}
|
||||
|
||||
static struct file_operations acpi_battery_info_ops = {
|
||||
static const struct file_operations acpi_battery_info_ops = {
|
||||
.open = acpi_battery_info_open_fs,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
@@ -565,7 +565,7 @@ static struct file_operations acpi_battery_info_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
static struct file_operations acpi_battery_state_ops = {
|
||||
static const struct file_operations acpi_battery_state_ops = {
|
||||
.open = acpi_battery_state_open_fs,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
@@ -573,7 +573,7 @@ static struct file_operations acpi_battery_state_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
static struct file_operations acpi_battery_alarm_ops = {
|
||||
static const struct file_operations acpi_battery_alarm_ops = {
|
||||
.open = acpi_battery_alarm_open_fs,
|
||||
.read = seq_read,
|
||||
.write = acpi_battery_write_alarm,
|
||||
|
||||
@@ -192,8 +192,8 @@ int acpi_bus_set_power(acpi_handle handle, int state)
|
||||
/* Make sure this is a valid target state */
|
||||
|
||||
if (!device->flags.power_manageable) {
|
||||
printk(KERN_DEBUG "Device `[%s]' is not power manageable",
|
||||
device->kobj.name);
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device `[%s]' is not power manageable",
|
||||
device->kobj.name));
|
||||
return -ENODEV;
|
||||
}
|
||||
/*
|
||||
|
||||
@@ -87,14 +87,14 @@ struct acpi_button {
|
||||
unsigned long pushed;
|
||||
};
|
||||
|
||||
static struct file_operations acpi_button_info_fops = {
|
||||
static const struct file_operations acpi_button_info_fops = {
|
||||
.open = acpi_button_info_open_fs,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static struct file_operations acpi_button_state_fops = {
|
||||
static const struct file_operations acpi_button_state_fops = {
|
||||
.open = acpi_button_state_open_fs,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
|
||||
@@ -39,50 +39,43 @@ ACPI_MODULE_NAME("cm_sbs")
|
||||
static struct proc_dir_entry *acpi_ac_dir;
|
||||
static struct proc_dir_entry *acpi_battery_dir;
|
||||
|
||||
static struct semaphore cm_sbs_sem;
|
||||
static DEFINE_MUTEX(cm_sbs_mutex);
|
||||
|
||||
static int lock_ac_dir_cnt = 0;
|
||||
static int lock_battery_dir_cnt = 0;
|
||||
static int lock_ac_dir_cnt;
|
||||
static int lock_battery_dir_cnt;
|
||||
|
||||
struct proc_dir_entry *acpi_lock_ac_dir(void)
|
||||
{
|
||||
|
||||
down(&cm_sbs_sem);
|
||||
if (!acpi_ac_dir) {
|
||||
mutex_lock(&cm_sbs_mutex);
|
||||
if (!acpi_ac_dir)
|
||||
acpi_ac_dir = proc_mkdir(ACPI_AC_CLASS, acpi_root_dir);
|
||||
}
|
||||
if (acpi_ac_dir) {
|
||||
lock_ac_dir_cnt++;
|
||||
} else {
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_ERROR,
|
||||
"Cannot create %s\n", ACPI_AC_CLASS));
|
||||
}
|
||||
up(&cm_sbs_sem);
|
||||
mutex_unlock(&cm_sbs_mutex);
|
||||
return acpi_ac_dir;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(acpi_lock_ac_dir);
|
||||
|
||||
void acpi_unlock_ac_dir(struct proc_dir_entry *acpi_ac_dir_param)
|
||||
{
|
||||
|
||||
down(&cm_sbs_sem);
|
||||
if (acpi_ac_dir_param) {
|
||||
mutex_lock(&cm_sbs_mutex);
|
||||
if (acpi_ac_dir_param)
|
||||
lock_ac_dir_cnt--;
|
||||
}
|
||||
if (lock_ac_dir_cnt == 0 && acpi_ac_dir_param && acpi_ac_dir) {
|
||||
remove_proc_entry(ACPI_AC_CLASS, acpi_root_dir);
|
||||
acpi_ac_dir = 0;
|
||||
}
|
||||
up(&cm_sbs_sem);
|
||||
mutex_unlock(&cm_sbs_mutex);
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(acpi_unlock_ac_dir);
|
||||
|
||||
struct proc_dir_entry *acpi_lock_battery_dir(void)
|
||||
{
|
||||
|
||||
down(&cm_sbs_sem);
|
||||
mutex_lock(&cm_sbs_mutex);
|
||||
if (!acpi_battery_dir) {
|
||||
acpi_battery_dir =
|
||||
proc_mkdir(ACPI_BATTERY_CLASS, acpi_root_dir);
|
||||
@@ -93,39 +86,28 @@ struct proc_dir_entry *acpi_lock_battery_dir(void)
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_ERROR,
|
||||
"Cannot create %s\n", ACPI_BATTERY_CLASS));
|
||||
}
|
||||
up(&cm_sbs_sem);
|
||||
mutex_unlock(&cm_sbs_mutex);
|
||||
return acpi_battery_dir;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(acpi_lock_battery_dir);
|
||||
|
||||
void acpi_unlock_battery_dir(struct proc_dir_entry *acpi_battery_dir_param)
|
||||
{
|
||||
|
||||
down(&cm_sbs_sem);
|
||||
if (acpi_battery_dir_param) {
|
||||
mutex_lock(&cm_sbs_mutex);
|
||||
if (acpi_battery_dir_param)
|
||||
lock_battery_dir_cnt--;
|
||||
}
|
||||
if (lock_battery_dir_cnt == 0 && acpi_battery_dir_param
|
||||
&& acpi_battery_dir) {
|
||||
remove_proc_entry(ACPI_BATTERY_CLASS, acpi_root_dir);
|
||||
acpi_battery_dir = 0;
|
||||
}
|
||||
up(&cm_sbs_sem);
|
||||
mutex_unlock(&cm_sbs_mutex);
|
||||
return;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(acpi_unlock_battery_dir);
|
||||
|
||||
static int __init acpi_cm_sbs_init(void)
|
||||
{
|
||||
|
||||
if (acpi_disabled)
|
||||
return 0;
|
||||
|
||||
init_MUTEX(&cm_sbs_sem);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
subsys_initcall(acpi_cm_sbs_init);
|
||||
|
||||
@@ -116,16 +116,6 @@ acpi_ds_init_one_object(acpi_handle obj_handle,
|
||||
|
||||
case ACPI_TYPE_METHOD:
|
||||
|
||||
/*
|
||||
* Set the execution data width (32 or 64) based upon the
|
||||
* revision number of the parent ACPI table.
|
||||
* TBD: This is really for possible future support of integer width
|
||||
* on a per-table basis. Currently, we just use a global for the width.
|
||||
*/
|
||||
if (info->table_desc->pointer->revision == 1) {
|
||||
node->flags |= ANOBJ_DATA_WIDTH_32;
|
||||
}
|
||||
|
||||
info->method_count++;
|
||||
break;
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@ acpi_ds_create_method_mutex(union acpi_operand_object *method_desc)
|
||||
union acpi_operand_object *mutex_desc;
|
||||
acpi_status status;
|
||||
|
||||
ACPI_FUNCTION_NAME(ds_create_method_mutex);
|
||||
ACPI_FUNCTION_TRACE(ds_create_method_mutex);
|
||||
|
||||
/* Create the new mutex object */
|
||||
|
||||
@@ -493,7 +493,7 @@ acpi_ds_restart_control_method(struct acpi_walk_state *walk_state,
|
||||
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
|
||||
"****Restart [%4.4s] Op %p ReturnValueFromCallee %p\n",
|
||||
(char *)&walk_state->method_node->name,
|
||||
acpi_ut_get_node_name(walk_state->method_node),
|
||||
walk_state->method_call_op, return_desc));
|
||||
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
|
||||
@@ -610,6 +610,7 @@ acpi_ds_terminate_control_method(union acpi_operand_object *method_desc,
|
||||
|
||||
acpi_os_release_mutex(method_desc->method.mutex->mutex.
|
||||
os_mutex);
|
||||
method_desc->method.mutex->mutex.owner_thread = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -620,27 +621,11 @@ acpi_ds_terminate_control_method(union acpi_operand_object *method_desc,
|
||||
*/
|
||||
method_node = walk_state->method_node;
|
||||
|
||||
/* Lock namespace for possible update */
|
||||
|
||||
status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
return_VOID;
|
||||
}
|
||||
|
||||
/*
|
||||
* Delete any namespace entries created immediately underneath
|
||||
* the method
|
||||
*/
|
||||
if (method_node && method_node->child) {
|
||||
acpi_ns_delete_namespace_subtree(method_node);
|
||||
}
|
||||
|
||||
/*
|
||||
* Delete any namespace entries created anywhere else within
|
||||
* Delete any namespace objects created anywhere within
|
||||
* the namespace by the execution of this method
|
||||
*/
|
||||
acpi_ns_delete_namespace_by_owner(method_desc->method.owner_id);
|
||||
status = acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
}
|
||||
|
||||
/* Decrement the thread count on the method */
|
||||
|
||||
@@ -313,10 +313,10 @@ acpi_ds_exec_begin_op(struct acpi_walk_state *walk_state,
|
||||
case AML_CLASS_EXECUTE:
|
||||
case AML_CLASS_CREATE:
|
||||
/*
|
||||
* Most operators with arguments.
|
||||
* Most operators with arguments (except create_xxx_field operators)
|
||||
* Start a new result/operand state
|
||||
*/
|
||||
if (walk_state->opcode != AML_CREATE_FIELD_OP) {
|
||||
if (walk_state->op_info->object_type != ACPI_TYPE_BUFFER_FIELD) {
|
||||
status = acpi_ds_result_stack_push(walk_state);
|
||||
}
|
||||
break;
|
||||
|
||||
740
drivers/acpi/dock.c
Normal file
740
drivers/acpi/dock.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -929,7 +929,7 @@ static int acpi_ec_info_open_fs(struct inode *inode, struct file *file)
|
||||
return single_open(file, acpi_ec_read_info, PDE(inode)->data);
|
||||
}
|
||||
|
||||
static struct file_operations acpi_ec_info_ops = {
|
||||
static const struct file_operations acpi_ec_info_ops = {
|
||||
.open = acpi_ec_info_open_fs,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
|
||||
@@ -99,7 +99,7 @@ static unsigned int acpi_system_poll_event(struct file *file, poll_table * wait)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct file_operations acpi_system_event_ops = {
|
||||
static const struct file_operations acpi_system_event_ops = {
|
||||
.open = acpi_system_open_event,
|
||||
.read = acpi_system_read_event,
|
||||
.release = acpi_system_close_event,
|
||||
|
||||
@@ -528,34 +528,40 @@ acpi_ev_detach_region(union acpi_operand_object *region_obj,
|
||||
}
|
||||
}
|
||||
|
||||
/* Call the setup handler with the deactivate notification */
|
||||
/*
|
||||
* If the region has been activated, call the setup handler
|
||||
* with the deactivate notification
|
||||
*/
|
||||
if (region_obj->region.flags & AOPOBJ_SETUP_COMPLETE) {
|
||||
region_setup = handler_obj->address_space.setup;
|
||||
status =
|
||||
region_setup(region_obj,
|
||||
ACPI_REGION_DEACTIVATE,
|
||||
handler_obj->address_space.
|
||||
context, region_context);
|
||||
|
||||
region_setup = handler_obj->address_space.setup;
|
||||
status =
|
||||
region_setup(region_obj, ACPI_REGION_DEACTIVATE,
|
||||
handler_obj->address_space.context,
|
||||
region_context);
|
||||
/* Init routine may fail, Just ignore errors */
|
||||
|
||||
/* Init routine may fail, Just ignore errors */
|
||||
if (ACPI_FAILURE(status)) {
|
||||
ACPI_EXCEPTION((AE_INFO, status,
|
||||
"from region handler - deactivate, [%s]",
|
||||
acpi_ut_get_region_name
|
||||
(region_obj->region.
|
||||
space_id)));
|
||||
}
|
||||
|
||||
if (ACPI_FAILURE(status)) {
|
||||
ACPI_EXCEPTION((AE_INFO, status,
|
||||
"from region init, [%s]",
|
||||
acpi_ut_get_region_name
|
||||
(region_obj->region.space_id)));
|
||||
region_obj->region.flags &=
|
||||
~(AOPOBJ_SETUP_COMPLETE);
|
||||
}
|
||||
|
||||
region_obj->region.flags &= ~(AOPOBJ_SETUP_COMPLETE);
|
||||
|
||||
/*
|
||||
* Remove handler reference in the region
|
||||
*
|
||||
* NOTE: this doesn't mean that the region goes away
|
||||
* The region is just inaccessible as indicated to
|
||||
* the _REG method
|
||||
* NOTE: this doesn't mean that the region goes away, the region
|
||||
* is just inaccessible as indicated to the _REG method
|
||||
*
|
||||
* If the region is on the handler's list
|
||||
* this better be the region's handler
|
||||
* If the region is on the handler's list, this must be the
|
||||
* region's handler
|
||||
*/
|
||||
region_obj->region.handler = NULL;
|
||||
acpi_ut_remove_reference(handler_obj);
|
||||
|
||||
@@ -428,7 +428,7 @@ acpi_remove_notify_handler(acpi_handle device,
|
||||
node = acpi_ns_map_handle_to_node(device);
|
||||
if (!node) {
|
||||
status = AE_BAD_PARAMETER;
|
||||
goto unlock;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/* Root Object */
|
||||
@@ -442,7 +442,7 @@ acpi_remove_notify_handler(acpi_handle device,
|
||||
((handler_type & ACPI_DEVICE_NOTIFY) &&
|
||||
!acpi_gbl_device_notify.handler)) {
|
||||
status = AE_NOT_EXIST;
|
||||
goto unlock;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/* Make sure all deferred tasks are completed */
|
||||
@@ -474,7 +474,7 @@ acpi_remove_notify_handler(acpi_handle device,
|
||||
|
||||
if (!acpi_ev_is_notify_object(node)) {
|
||||
status = AE_TYPE;
|
||||
goto unlock;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/* Check for an existing internal object */
|
||||
@@ -482,17 +482,21 @@ acpi_remove_notify_handler(acpi_handle device,
|
||||
obj_desc = acpi_ns_get_attached_object(node);
|
||||
if (!obj_desc) {
|
||||
status = AE_NOT_EXIST;
|
||||
goto unlock;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/* Object exists - make sure there's an existing handler */
|
||||
|
||||
if (handler_type & ACPI_SYSTEM_NOTIFY) {
|
||||
notify_obj = obj_desc->common_notify.system_notify;
|
||||
if ((!notify_obj) ||
|
||||
(notify_obj->notify.handler != handler)) {
|
||||
if (!notify_obj) {
|
||||
status = AE_NOT_EXIST;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
if (notify_obj->notify.handler != handler) {
|
||||
status = AE_BAD_PARAMETER;
|
||||
goto unlock;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
/* Make sure all deferred tasks are completed */
|
||||
|
||||
@@ -510,10 +514,14 @@ acpi_remove_notify_handler(acpi_handle device,
|
||||
|
||||
if (handler_type & ACPI_DEVICE_NOTIFY) {
|
||||
notify_obj = obj_desc->common_notify.device_notify;
|
||||
if ((!notify_obj) ||
|
||||
(notify_obj->notify.handler != handler)) {
|
||||
if (!notify_obj) {
|
||||
status = AE_NOT_EXIST;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
if (notify_obj->notify.handler != handler) {
|
||||
status = AE_BAD_PARAMETER;
|
||||
goto unlock;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
/* Make sure all deferred tasks are completed */
|
||||
|
||||
@@ -530,9 +538,9 @@ acpi_remove_notify_handler(acpi_handle device,
|
||||
}
|
||||
}
|
||||
|
||||
unlock:
|
||||
unlock_and_exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
||||
exit:
|
||||
exit:
|
||||
if (ACPI_FAILURE(status))
|
||||
ACPI_EXCEPTION((AE_INFO, status, "Removing notify handler"));
|
||||
return_ACPI_STATUS(status);
|
||||
@@ -586,7 +594,7 @@ acpi_install_gpe_handler(acpi_handle gpe_device,
|
||||
gpe_event_info = acpi_ev_get_gpe_event_info(gpe_device, gpe_number);
|
||||
if (!gpe_event_info) {
|
||||
status = AE_BAD_PARAMETER;
|
||||
goto unlock;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/* Make sure that there isn't a handler there already */
|
||||
@@ -594,7 +602,7 @@ acpi_install_gpe_handler(acpi_handle gpe_device,
|
||||
if ((gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK) ==
|
||||
ACPI_GPE_DISPATCH_HANDLER) {
|
||||
status = AE_ALREADY_EXISTS;
|
||||
goto unlock;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/* Allocate and init handler object */
|
||||
@@ -602,7 +610,7 @@ acpi_install_gpe_handler(acpi_handle gpe_device,
|
||||
handler = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_handler_info));
|
||||
if (!handler) {
|
||||
status = AE_NO_MEMORY;
|
||||
goto unlock;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
handler->address = address;
|
||||
@@ -613,7 +621,7 @@ acpi_install_gpe_handler(acpi_handle gpe_device,
|
||||
|
||||
status = acpi_ev_disable_gpe(gpe_event_info);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
goto unlock;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/* Install the handler */
|
||||
@@ -628,9 +636,9 @@ acpi_install_gpe_handler(acpi_handle gpe_device,
|
||||
|
||||
acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
|
||||
|
||||
unlock:
|
||||
unlock_and_exit:
|
||||
(void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
|
||||
exit:
|
||||
exit:
|
||||
if (ACPI_FAILURE(status))
|
||||
ACPI_EXCEPTION((AE_INFO, status,
|
||||
"Installing notify handler failed"));
|
||||
|
||||
@@ -155,7 +155,11 @@ acpi_remove_address_space_handler(acpi_handle device,
|
||||
/* Convert and validate the device handle */
|
||||
|
||||
node = acpi_ns_map_handle_to_node(device);
|
||||
if (!node) {
|
||||
if (!node ||
|
||||
((node->type != ACPI_TYPE_DEVICE) &&
|
||||
(node->type != ACPI_TYPE_PROCESSOR) &&
|
||||
(node->type != ACPI_TYPE_THERMAL) &&
|
||||
(node != acpi_gbl_root_node))) {
|
||||
status = AE_BAD_PARAMETER;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
@@ -178,6 +182,13 @@ acpi_remove_address_space_handler(acpi_handle device,
|
||||
|
||||
if (handler_obj->address_space.space_id == space_id) {
|
||||
|
||||
/* Handler must be the same as the installed handler */
|
||||
|
||||
if (handler_obj->address_space.handler != handler) {
|
||||
status = AE_BAD_PARAMETER;
|
||||
goto unlock_and_exit;
|
||||
}
|
||||
|
||||
/* Matched space_id, first dereference this in the Regions */
|
||||
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_OPREGION,
|
||||
|
||||
@@ -502,7 +502,6 @@ acpi_status acpi_ex_unload_table(union acpi_operand_object *ddb_handle)
|
||||
* (Offset contains the table_id)
|
||||
*/
|
||||
acpi_ns_delete_namespace_by_owner(table_info->owner_id);
|
||||
acpi_ut_release_owner_id(&table_info->owner_id);
|
||||
|
||||
/* Delete the table itself */
|
||||
|
||||
|
||||
@@ -170,6 +170,9 @@ acpi_ex_convert_to_integer(union acpi_operand_object *obj_desc,
|
||||
return_ACPI_STATUS(AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Converted value: %8.8X%8.8X\n",
|
||||
ACPI_FORMAT_UINT64(result)));
|
||||
|
||||
/* Save the Result */
|
||||
|
||||
return_desc->integer.value = result;
|
||||
|
||||
@@ -267,9 +267,9 @@ acpi_ex_release_mutex(union acpi_operand_object *obj_desc,
|
||||
&& (obj_desc->mutex.os_mutex != ACPI_GLOBAL_LOCK)) {
|
||||
ACPI_ERROR((AE_INFO,
|
||||
"Thread %X cannot release Mutex [%4.4s] acquired by thread %X",
|
||||
walk_state->thread->thread_id,
|
||||
(u32) walk_state->thread->thread_id,
|
||||
acpi_ut_get_node_name(obj_desc->mutex.node),
|
||||
obj_desc->mutex.owner_thread->thread_id));
|
||||
(u32) obj_desc->mutex.owner_thread->thread_id));
|
||||
return_ACPI_STATUS(AE_AML_NOT_OWNER);
|
||||
}
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ ACPI_MODULE_NAME("exsystem")
|
||||
*
|
||||
* DESCRIPTION: Implements a semaphore wait with a check to see if the
|
||||
* semaphore is available immediately. If it is not, the
|
||||
* interpreter is released.
|
||||
* interpreter is released before waiting.
|
||||
*
|
||||
******************************************************************************/
|
||||
acpi_status acpi_ex_system_wait_semaphore(acpi_semaphore semaphore, u16 timeout)
|
||||
@@ -110,9 +110,9 @@ acpi_status acpi_ex_system_wait_semaphore(acpi_semaphore semaphore, u16 timeout)
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Implements a semaphore wait with a check to see if the
|
||||
* semaphore is available immediately. If it is not, the
|
||||
* interpreter is released.
|
||||
* DESCRIPTION: Implements a mutex wait with a check to see if the
|
||||
* mutex is available immediately. If it is not, the
|
||||
* interpreter is released before waiting.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user