Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aa6abd2b authored by Lv Zheng's avatar Lv Zheng Committed by Rafael J. Wysocki
Browse files

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: default avatarLv Zheng <lv.zheng@intel.com>
Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent f31a99ce
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -957,7 +957,7 @@ void acpi_db_display_handlers(void)


			handler_obj =
			handler_obj =
			    acpi_ev_find_region_handler(space_id,
			    acpi_ev_find_region_handler(space_id,
							obj_desc->device.
							obj_desc->common_notify.
							handler);
							handler);
			if (handler_obj) {
			if (handler_obj) {
				acpi_os_printf(ACPI_HANDLER_PRESENT_STRING,
				acpi_os_printf(ACPI_HANDLER_PRESENT_STRING,
@@ -980,7 +980,7 @@ found_handler: ;


		/* Find all handlers for user-defined space_IDs */
		/* Find all handlers for user-defined space_IDs */


		handler_obj = obj_desc->device.handler;
		handler_obj = obj_desc->common_notify.handler;
		while (handler_obj) {
		while (handler_obj) {
			if (handler_obj->address_space.space_id >=
			if (handler_obj->address_space.space_id >=
			    ACPI_USER_REGION_BEGIN) {
			    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 */
	/* Display all handlers associated with this device */


	handler_obj = obj_desc->device.handler;
	handler_obj = obj_desc->common_notify.handler;
	while (handler_obj) {
	while (handler_obj) {
		acpi_os_printf(ACPI_PREDEFINED_PREFIX,
		acpi_os_printf(ACPI_PREDEFINED_PREFIX,
			       acpi_ut_get_region_name((u8)handler_obj->
			       acpi_ut_get_region_name((u8)handler_obj->
+7 −5
Original line number Original line Diff line number Diff line
@@ -159,7 +159,7 @@ acpi_ev_has_default_handler(struct acpi_namespace_node *node,


	obj_desc = acpi_ns_get_attached_object(node);
	obj_desc = acpi_ns_get_attached_object(node);
	if (obj_desc) {
	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 */
		/* Walk the linked list of handlers for this object */


@@ -250,7 +250,8 @@ acpi_ev_install_handler(acpi_handle obj_handle,
		next_handler_obj =
		next_handler_obj =
		    acpi_ev_find_region_handler(handler_obj->address_space.
		    acpi_ev_find_region_handler(handler_obj->address_space.
						space_id,
						space_id,
						obj_desc->device.handler);
						obj_desc->common_notify.
						handler);
		if (next_handler_obj) {
		if (next_handler_obj) {


			/* Found a handler, is it for the same address space? */
			/* 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.
		 * the handler is not already installed.
		 */
		 */
		handler_obj = acpi_ev_find_region_handler(space_id,
		handler_obj = acpi_ev_find_region_handler(space_id,
							  obj_desc->device.
							  obj_desc->
							  common_notify.
							  handler);
							  handler);


		if (handler_obj) {
		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 */
	/* 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.
	 * The Device object is the first reference on the handler_obj.
	 * Each region that uses the handler adds a reference.
	 * 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
	 * Walk the namespace finding all of the regions this handler will
+1 −9
Original line number Original line Diff line number Diff line
@@ -566,18 +566,10 @@ acpi_ev_initialize_region(union acpi_operand_object *region_obj,


			switch (node->type) {
			switch (node->type) {
			case ACPI_TYPE_DEVICE:
			case ACPI_TYPE_DEVICE:

				handler_obj = obj_desc->device.handler;
				break;

			case ACPI_TYPE_PROCESSOR:
			case ACPI_TYPE_PROCESSOR:

				handler_obj = obj_desc->processor.handler;
				break;

			case ACPI_TYPE_THERMAL:
			case ACPI_TYPE_THERMAL:


				handler_obj = obj_desc->thermal_zone.handler;
				handler_obj = obj_desc->common_notify.handler;
				break;
				break;


			case ACPI_TYPE_METHOD:
			case ACPI_TYPE_METHOD:
+2 −2
Original line number Original line Diff line number Diff line
@@ -216,8 +216,8 @@ acpi_remove_address_space_handler(acpi_handle device,


	/* Find the address handler the user requested */
	/* Find the address handler the user requested */


	handler_obj = obj_desc->device.handler;
	handler_obj = obj_desc->common_notify.handler;
	last_obj_ptr = &obj_desc->device.handler;
	last_obj_ptr = &obj_desc->common_notify.handler;
	while (handler_obj) {
	while (handler_obj) {


		/* We have a handler, see if user requested this one */
		/* We have a handler, see if user requested this one */