ACPICA: Remove some code duplication from acpi_ev_address_space_dispatch
authorHans de Goede <hdegoede@redhat.com>
Thu, 18 Feb 2021 23:17:08 +0000 (15:17 -0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 19 Feb 2021 15:03:25 +0000 (16:03 +0100)
ACPICA commit 383f50ff8cb7424ca16a6c0234f103b41d4a783e

The handling of the space_id == ACPI_ADR_SPACE_GSBUS and
space_id == ACPI_ADR_SPACE_GPIO cases is almost identical,
fold the 2 cases into 1 to remove some code duplication.

Link: https://github.com/acpica/acpica/commit/383f50ff
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Erik Kaneda <erik.kaneda@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpica/evregion.c

index 2a3c13e..4ef43c8 100644 (file)
@@ -244,7 +244,8 @@ acpi_ev_address_space_dispatch(union acpi_operand_object *region_obj,
         *      the previous Connection)
         *   2) bit_width is the actual bit length of the field (number of pins)
         */
-       if ((region_obj->region.space_id == ACPI_ADR_SPACE_GSBUS) &&
+       if ((region_obj->region.space_id == ACPI_ADR_SPACE_GSBUS ||
+            region_obj->region.space_id == ACPI_ADR_SPACE_GPIO) &&
            context && field_obj) {
 
                status =
@@ -260,25 +261,11 @@ acpi_ev_address_space_dispatch(union acpi_operand_object *region_obj,
                context->connection = field_obj->field.resource_buffer;
                context->length = field_obj->field.resource_length;
                context->access_length = field_obj->field.access_length;
-       }
-       if ((region_obj->region.space_id == ACPI_ADR_SPACE_GPIO) &&
-           context && field_obj) {
 
-               status =
-                   acpi_os_acquire_mutex(context_mutex, ACPI_WAIT_FOREVER);
-               if (ACPI_FAILURE(status)) {
-                       goto re_enter_interpreter;
+               if (region_obj->region.space_id == ACPI_ADR_SPACE_GPIO) {
+                       address = field_obj->field.pin_number_index;
+                       bit_width = field_obj->field.bit_length;
                }
-
-               context_locked = TRUE;
-
-               /* Get the Connection (resource_template) buffer */
-
-               context->connection = field_obj->field.resource_buffer;
-               context->length = field_obj->field.resource_length;
-               context->access_length = field_obj->field.access_length;
-               address = field_obj->field.pin_number_index;
-               bit_width = field_obj->field.bit_length;
        }
 
        /* Call the handler */