forked from luck/tmp_suning_uos_patched
ACPICA: Events: Uses common_notify for address space handlers
ACPICA commit 5ea0fb75fdf1aa7c0aba067dfa4d5dc3a9279461 The address space handlers can be attached to not only Device but also Processor/thermal_zone objects, so it is better to use their common class 'CommonNotify' instead. Lv Zheng. Link: https://github.com/acpica/acpica/commit/5ea0fb75 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:
parent
f31a99cefd
commit
aa6abd2be1
@ -957,7 +957,7 @@ void acpi_db_display_handlers(void)
|
||||
|
||||
handler_obj =
|
||||
acpi_ev_find_region_handler(space_id,
|
||||
obj_desc->device.
|
||||
obj_desc->common_notify.
|
||||
handler);
|
||||
if (handler_obj) {
|
||||
acpi_os_printf(ACPI_HANDLER_PRESENT_STRING,
|
||||
@ -980,7 +980,7 @@ found_handler: ;
|
||||
|
||||
/* Find all handlers for user-defined space_IDs */
|
||||
|
||||
handler_obj = obj_desc->device.handler;
|
||||
handler_obj = obj_desc->common_notify.handler;
|
||||
while (handler_obj) {
|
||||
if (handler_obj->address_space.space_id >=
|
||||
ACPI_USER_REGION_BEGIN) {
|
||||
@ -1082,7 +1082,7 @@ acpi_db_display_non_root_handlers(acpi_handle obj_handle,
|
||||
|
||||
/* Display all handlers associated with this device */
|
||||
|
||||
handler_obj = obj_desc->device.handler;
|
||||
handler_obj = obj_desc->common_notify.handler;
|
||||
while (handler_obj) {
|
||||
acpi_os_printf(ACPI_PREDEFINED_PREFIX,
|
||||
acpi_ut_get_region_name((u8)handler_obj->
|
||||
|
@ -159,7 +159,7 @@ acpi_ev_has_default_handler(struct acpi_namespace_node *node,
|
||||
|
||||
obj_desc = acpi_ns_get_attached_object(node);
|
||||
if (obj_desc) {
|
||||
handler_obj = obj_desc->device.handler;
|
||||
handler_obj = obj_desc->common_notify.handler;
|
||||
|
||||
/* Walk the linked list of handlers for this object */
|
||||
|
||||
@ -250,7 +250,8 @@ acpi_ev_install_handler(acpi_handle obj_handle,
|
||||
next_handler_obj =
|
||||
acpi_ev_find_region_handler(handler_obj->address_space.
|
||||
space_id,
|
||||
obj_desc->device.handler);
|
||||
obj_desc->common_notify.
|
||||
handler);
|
||||
if (next_handler_obj) {
|
||||
|
||||
/* Found a handler, is it for the same address space? */
|
||||
@ -444,7 +445,8 @@ acpi_ev_install_space_handler(struct acpi_namespace_node * node,
|
||||
* the handler is not already installed.
|
||||
*/
|
||||
handler_obj = acpi_ev_find_region_handler(space_id,
|
||||
obj_desc->device.
|
||||
obj_desc->
|
||||
common_notify.
|
||||
handler);
|
||||
|
||||
if (handler_obj) {
|
||||
@ -531,13 +533,13 @@ acpi_ev_install_space_handler(struct acpi_namespace_node * node,
|
||||
|
||||
/* Install at head of Device.address_space list */
|
||||
|
||||
handler_obj->address_space.next = obj_desc->device.handler;
|
||||
handler_obj->address_space.next = obj_desc->common_notify.handler;
|
||||
|
||||
/*
|
||||
* The Device object is the first reference on the handler_obj.
|
||||
* Each region that uses the handler adds a reference.
|
||||
*/
|
||||
obj_desc->device.handler = handler_obj;
|
||||
obj_desc->common_notify.handler = handler_obj;
|
||||
|
||||
/*
|
||||
* Walk the namespace finding all of the regions this handler will
|
||||
|
@ -566,18 +566,10 @@ acpi_ev_initialize_region(union acpi_operand_object *region_obj,
|
||||
|
||||
switch (node->type) {
|
||||
case ACPI_TYPE_DEVICE:
|
||||
|
||||
handler_obj = obj_desc->device.handler;
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_PROCESSOR:
|
||||
|
||||
handler_obj = obj_desc->processor.handler;
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_THERMAL:
|
||||
|
||||
handler_obj = obj_desc->thermal_zone.handler;
|
||||
handler_obj = obj_desc->common_notify.handler;
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_METHOD:
|
||||
|
@ -216,8 +216,8 @@ acpi_remove_address_space_handler(acpi_handle device,
|
||||
|
||||
/* Find the address handler the user requested */
|
||||
|
||||
handler_obj = obj_desc->device.handler;
|
||||
last_obj_ptr = &obj_desc->device.handler;
|
||||
handler_obj = obj_desc->common_notify.handler;
|
||||
last_obj_ptr = &obj_desc->common_notify.handler;
|
||||
while (handler_obj) {
|
||||
|
||||
/* We have a handler, see if user requested this one */
|
||||
|
Loading…
Reference in New Issue
Block a user