diff options
author | Lv Zheng <lv.zheng@intel.com> | 2015-12-29 14:02:00 +0800 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-01-01 03:47:37 +0100 |
commit | f31a99cefd05f798eee8b592e22175ff3fe1876b (patch) | |
tree | 6256bae4642ea41ae3f82fc55fc6db8ffa9c2e8e /drivers/acpi/acpica/evhandler.c | |
parent | 7b73806485ada16059ecc1851793dbe865181c53 (diff) | |
download | blackbird-op-linux-f31a99cefd05f798eee8b592e22175ff3fe1876b.tar.gz blackbird-op-linux-f31a99cefd05f798eee8b592e22175ff3fe1876b.zip |
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>
Diffstat (limited to 'drivers/acpi/acpica/evhandler.c')
-rw-r--r-- | drivers/acpi/acpica/evhandler.c | 58 |
1 files changed, 25 insertions, 33 deletions
diff --git a/drivers/acpi/acpica/evhandler.c b/drivers/acpi/acpica/evhandler.c index 5d6a3b590645..6a7fc1163bc9 100644 --- a/drivers/acpi/acpica/evhandler.c +++ b/drivers/acpi/acpica/evhandler.c @@ -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)); - - /* - * 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; + 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); } /* @@ -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 */ |