ACPICA: Events: Deploys acpi_ev_find_region_handler()
ACPICA commit b916a0a0ae9e81db1a85523c63ec6aa32d5c70c8 There are code fragments that can be substituted by acpi_ev_find_region_handler(). This patch cleans up these code fragments. Lv Zheng. Link: https://github.com/acpica/acpica/commit/b916a0a0 Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:

committed by
Rafael J. Wysocki

parent
7b73806485
commit
f31a99cefd
@@ -55,10 +55,6 @@ static acpi_status
|
||||
acpi_ev_install_handler(acpi_handle obj_handle,
|
||||
u32 level, void *context, void **return_value);
|
||||
|
||||
static union acpi_operand_object
|
||||
*acpi_ev_find_region_handler(acpi_adr_space_type space_id,
|
||||
union acpi_operand_object *handler_obj);
|
||||
|
||||
/* These are the address spaces that will get default handlers */
|
||||
|
||||
u8 acpi_gbl_default_address_spaces[ACPI_NUM_DEFAULT_SPACES] = {
|
||||
@@ -251,35 +247,30 @@ acpi_ev_install_handler(acpi_handle obj_handle,
|
||||
|
||||
/* Check if this Device already has a handler for this address space */
|
||||
|
||||
next_handler_obj = obj_desc->device.handler;
|
||||
while (next_handler_obj) {
|
||||
next_handler_obj =
|
||||
acpi_ev_find_region_handler(handler_obj->address_space.
|
||||
space_id,
|
||||
obj_desc->device.handler);
|
||||
if (next_handler_obj) {
|
||||
|
||||
/* Found a handler, is it for the same address space? */
|
||||
|
||||
if (next_handler_obj->address_space.space_id ==
|
||||
handler_obj->address_space.space_id) {
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_OPREGION,
|
||||
"Found handler for region [%s] in device %p(%p) "
|
||||
"handler %p\n",
|
||||
acpi_ut_get_region_name
|
||||
(handler_obj->address_space.
|
||||
space_id), obj_desc,
|
||||
next_handler_obj,
|
||||
handler_obj));
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_OPREGION,
|
||||
"Found handler for region [%s] in device %p(%p) handler %p\n",
|
||||
acpi_ut_get_region_name(handler_obj->
|
||||
address_space.
|
||||
space_id),
|
||||
obj_desc, next_handler_obj,
|
||||
handler_obj));
|
||||
|
||||
/*
|
||||
* Since the object we found it on was a device, then it
|
||||
* means that someone has already installed a handler for
|
||||
* the branch of the namespace from this device on. Just
|
||||
* bail out telling the walk routine to not traverse this
|
||||
* branch. This preserves the scoping rule for handlers.
|
||||
*/
|
||||
return (AE_CTRL_DEPTH);
|
||||
}
|
||||
|
||||
/* Walk the linked list of handlers attached to this device */
|
||||
|
||||
next_handler_obj = next_handler_obj->address_space.next;
|
||||
/*
|
||||
* Since the object we found it on was a device, then it means
|
||||
* that someone has already installed a handler for the branch
|
||||
* of the namespace from this device on. Just bail out telling
|
||||
* the walk routine to not traverse this branch. This preserves
|
||||
* the scoping rule for handlers.
|
||||
*/
|
||||
return (AE_CTRL_DEPTH);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -325,9 +316,10 @@ acpi_ev_install_handler(acpi_handle obj_handle,
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
static union acpi_operand_object
|
||||
*acpi_ev_find_region_handler(acpi_adr_space_type space_id,
|
||||
union acpi_operand_object *handler_obj)
|
||||
union acpi_operand_object *acpi_ev_find_region_handler(acpi_adr_space_type
|
||||
space_id,
|
||||
union acpi_operand_object
|
||||
*handler_obj)
|
||||
{
|
||||
|
||||
/* Walk the handler list for this device */
|
||||
|
Reference in New Issue
Block a user