ACPICA: Dispatcher: Add trace support for interpreter
[firefly-linux-kernel-4.4.55.git] / drivers / acpi / acpica / dsmethod.c
index e0ae8f4e9b35cdba28f1cff3f66a9ea0f8a338ae..0fa6f19aab3a866c446802d5aa24a0fbafe083de 100644 (file)
@@ -327,6 +327,7 @@ acpi_ds_begin_method_execution(struct acpi_namespace_node *method_node,
                               struct acpi_walk_state *walk_state)
 {
        acpi_status status = AE_OK;
+       char *pathname = NULL;
 
        ACPI_FUNCTION_TRACE_PTR(ds_begin_method_execution, method_node);
 
@@ -334,6 +335,18 @@ acpi_ds_begin_method_execution(struct acpi_namespace_node *method_node,
                return_ACPI_STATUS(AE_NULL_ENTRY);
        }
 
+       pathname = acpi_ns_get_normalized_pathname(method_node, TRUE);
+       if (pathname) {
+               ACPI_DEBUG_PRINT((ACPI_DB_TRACE_POINT,
+                                 "Begin method [0x%p:%s] execution.\n",
+                                 obj_desc->method.aml_start, pathname));
+               ACPI_FREE(pathname);
+       } else {
+               ACPI_DEBUG_PRINT((ACPI_DB_TRACE_POINT,
+                                 "Begin method [0x%p] execution.\n",
+                                 obj_desc->method.aml_start));
+       }
+
        /* Prevent wraparound of thread count */
 
        if (obj_desc->method.thread_count == ACPI_UINT8_MAX) {
@@ -695,6 +708,7 @@ void
 acpi_ds_terminate_control_method(union acpi_operand_object *method_desc,
                                 struct acpi_walk_state *walk_state)
 {
+       char *pathname = NULL;
 
        ACPI_FUNCTION_TRACE_PTR(ds_terminate_control_method, walk_state);
 
@@ -832,5 +846,22 @@ acpi_ds_terminate_control_method(union acpi_operand_object *method_desc,
                }
        }
 
+       if (method_desc->method.node) {
+               pathname = acpi_ns_get_normalized_pathname((struct
+                                                           acpi_namespace_node
+                                                           *)method_desc->
+                                                          method.node, TRUE);
+       }
+       if (pathname) {
+               ACPI_DEBUG_PRINT((ACPI_DB_TRACE_POINT,
+                                 "End method [0x%p:%s] execution.\n",
+                                 method_desc->method.aml_start, pathname));
+               ACPI_FREE(pathname);
+       } else {
+               ACPI_DEBUG_PRINT((ACPI_DB_TRACE_POINT,
+                                 "End method [0x%p] execution.\n",
+                                 method_desc->method.aml_start));
+       }
+
        return_VOID;
 }