aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/acpica
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2015-12-29 00:57:01 -0500
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2015-12-31 21:47:35 -0500
commit5e568304a2971332bb7b80fd6cf2a0f77e487d32 (patch)
treedac320518e8c817cb6b0e49a76f825e4ed9eb14c /drivers/acpi/acpica
parent7910617efb5188c0b8dedab1857b12d078957a79 (diff)
ACPICA: Debug Object: Cleanup output
ACPICA commit 05492c4a7d1e106eb871a5e1357ed564d25740e5 1) Make the timer value output optional 2) Allow empty lines via null string or simple newline 3) No need for the object type name for strings and integers 4) Miscellaneous cleanup of output Link: https://github.com/acpica/acpica/commit/05492c4a Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/acpica')
-rw-r--r--drivers/acpi/acpica/exdebug.c67
1 files changed, 47 insertions, 20 deletions
diff --git a/drivers/acpi/acpica/exdebug.c b/drivers/acpi/acpica/exdebug.c
index 815442bbd051..a2033353d030 100644
--- a/drivers/acpi/acpica/exdebug.c
+++ b/drivers/acpi/acpica/exdebug.c
@@ -88,20 +88,39 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
88 return_VOID; 88 return_VOID;
89 } 89 }
90 90
91 /* 91 /* Null string or newline -- don't emit the line header */
92 * We will emit the current timer value (in microseconds) with each 92
93 * debug output. Only need the lower 26 bits. This allows for 67 93 if ((ACPI_GET_DESCRIPTOR_TYPE(source_desc) == ACPI_DESC_TYPE_OPERAND) &&
94 * million microseconds or 67 seconds before rollover. 94 (source_desc->common.type == ACPI_TYPE_STRING)) {
95 */ 95 if ((source_desc->string.length == 0) ||
96 timer = ((u32)acpi_os_get_timer() / 10); /* (100 nanoseconds to microseconds) */ 96 ((source_desc->string.length == 1) &&
97 timer &= 0x03FFFFFF; 97 (*source_desc->string.pointer == '\n'))) {
98 acpi_os_printf("\n");
99 return_VOID;
100 }
101 }
98 102
99 /* 103 /*
100 * Print line header as long as we are not in the middle of an 104 * Print line header as long as we are not in the middle of an
101 * object display 105 * object display
102 */ 106 */
103 if (!((level > 0) && index == 0)) { 107 if (!((level > 0) && index == 0)) {
104 acpi_os_printf("[ACPI Debug %.8u] %*s", timer, level, " "); 108 if (acpi_gbl_display_debug_timer) {
109 /*
110 * We will emit the current timer value (in microseconds) with each
111 * debug output. Only need the lower 26 bits. This allows for 67
112 * million microseconds or 67 seconds before rollover.
113 *
114 * Convert 100 nanosecond units to microseconds
115 */
116 timer = ((u32)acpi_os_get_timer() / 10);
117 timer &= 0x03FFFFFF;
118
119 acpi_os_printf("[ACPI Debug T=0x%8.8X] %*s", timer,
120 level, " ");
121 } else {
122 acpi_os_printf("[ACPI Debug] %*s", level, " ");
123 }
105 } 124 }
106 125
107 /* Display the index for package output only */ 126 /* Display the index for package output only */
@@ -116,8 +135,15 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
116 } 135 }
117 136
118 if (ACPI_GET_DESCRIPTOR_TYPE(source_desc) == ACPI_DESC_TYPE_OPERAND) { 137 if (ACPI_GET_DESCRIPTOR_TYPE(source_desc) == ACPI_DESC_TYPE_OPERAND) {
119 acpi_os_printf("%s ", 138
120 acpi_ut_get_object_type_name(source_desc)); 139 /* No object type prefix needed for integers and strings */
140
141 if ((source_desc->common.type != ACPI_TYPE_INTEGER) &&
142 (source_desc->common.type != ACPI_TYPE_STRING)) {
143 acpi_os_printf("%s ",
144 acpi_ut_get_object_type_name
145 (source_desc));
146 }
121 147
122 if (!acpi_ut_valid_internal_object(source_desc)) { 148 if (!acpi_ut_valid_internal_object(source_desc)) {
123 acpi_os_printf("%p, Invalid Internal Object!\n", 149 acpi_os_printf("%p, Invalid Internal Object!\n",
@@ -126,7 +152,7 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
126 } 152 }
127 } else if (ACPI_GET_DESCRIPTOR_TYPE(source_desc) == 153 } else if (ACPI_GET_DESCRIPTOR_TYPE(source_desc) ==
128 ACPI_DESC_TYPE_NAMED) { 154 ACPI_DESC_TYPE_NAMED) {
129 acpi_os_printf("%s: %p\n", 155 acpi_os_printf("%s (Node %p)\n",
130 acpi_ut_get_type_name(((struct 156 acpi_ut_get_type_name(((struct
131 acpi_namespace_node *) 157 acpi_namespace_node *)
132 source_desc)->type), 158 source_desc)->type),
@@ -164,14 +190,12 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
164 190
165 case ACPI_TYPE_STRING: 191 case ACPI_TYPE_STRING:
166 192
167 acpi_os_printf("[0x%.2X] \"%s\"\n", 193 acpi_os_printf("\"%s\"\n", source_desc->string.pointer);
168 source_desc->string.length,
169 source_desc->string.pointer);
170 break; 194 break;
171 195
172 case ACPI_TYPE_PACKAGE: 196 case ACPI_TYPE_PACKAGE:
173 197
174 acpi_os_printf("[Contains 0x%.2X Elements]\n", 198 acpi_os_printf("(Contains 0x%.2X Elements):\n",
175 source_desc->package.count); 199 source_desc->package.count);
176 200
177 /* Output the entire contents of the package */ 201 /* Output the entire contents of the package */
@@ -250,11 +274,14 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
250 if (ACPI_GET_DESCRIPTOR_TYPE 274 if (ACPI_GET_DESCRIPTOR_TYPE
251 (source_desc->reference.object) == 275 (source_desc->reference.object) ==
252 ACPI_DESC_TYPE_NAMED) { 276 ACPI_DESC_TYPE_NAMED) {
253 acpi_ex_do_debug_object(((struct 277
254 acpi_namespace_node *) 278 /* Reference object is a namespace node */
279
280 acpi_ex_do_debug_object(ACPI_CAST_PTR
281 (union
282 acpi_operand_object,
255 source_desc->reference. 283 source_desc->reference.
256 object)->object, 284 object), level + 4, 0);
257 level + 4, 0);
258 } else { 285 } else {
259 object_desc = source_desc->reference.object; 286 object_desc = source_desc->reference.object;
260 value = source_desc->reference.value; 287 value = source_desc->reference.value;
@@ -300,7 +327,7 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
300 327
301 default: 328 default:
302 329
303 acpi_os_printf("%p\n", source_desc); 330 acpi_os_printf("(Descriptor %p)\n", source_desc);
304 break; 331 break;
305 } 332 }
306 333