aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2009-12-11 02:23:22 -0500
committerLen Brown <len.brown@intel.com>2009-12-15 17:29:36 -0500
commit3a58176e4fa47d8232e04131b023f3f2ecd7084b (patch)
treeee064fd4d8bcc7ba16926241262cec6b74caec03
parentea7c5ec148044776d5e134e52a3e1aca8d662dbe (diff)
ACPICA: Remove messages if predefined repair(s) are successful
Repair mechanism was considered too wordy. Now, messages are only unconditionally emitted if the return object cannot be repaired. Existing messages for successful repairs were converted to ACPI_DEBUG_PRINT messages for now. ACPICA BZ 827. http://www.acpica.org/bugzilla/show_bug.cgi?id=827 Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Lin Ming <ming.m.lin@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r--drivers/acpi/acpica/nspredef.c10
-rw-r--r--drivers/acpi/acpica/nsrepair.c32
-rw-r--r--drivers/acpi/acpica/nsrepair2.c21
-rw-r--r--include/acpi/acoutput.h8
4 files changed, 41 insertions, 30 deletions
diff --git a/drivers/acpi/acpica/nspredef.c b/drivers/acpi/acpica/nspredef.c
index c6297f57fea8..e352467413f5 100644
--- a/drivers/acpi/acpica/nspredef.c
+++ b/drivers/acpi/acpica/nspredef.c
@@ -462,11 +462,11 @@ acpi_ns_check_package(struct acpi_predefined_data *data,
462 if (count < expected_count) { 462 if (count < expected_count) {
463 goto package_too_small; 463 goto package_too_small;
464 } else if (count > expected_count) { 464 } else if (count > expected_count) {
465 ACPI_WARN_PREDEFINED((AE_INFO, data->pathname, 465 ACPI_DEBUG_PRINT((ACPI_DB_REPAIR,
466 data->node_flags, 466 "%s: Return Package is larger than needed - "
467 "Return Package is larger than needed - " 467 "found %u, expected %u\n",
468 "found %u, expected %u", count, 468 data->pathname, count,
469 expected_count)); 469 expected_count));
470 } 470 }
471 471
472 /* Validate all elements of the returned package */ 472 /* Validate all elements of the returned package */
diff --git a/drivers/acpi/acpica/nsrepair.c b/drivers/acpi/acpica/nsrepair.c
index 062a016d4554..907f60c9c9e5 100644
--- a/drivers/acpi/acpica/nsrepair.c
+++ b/drivers/acpi/acpica/nsrepair.c
@@ -118,6 +118,8 @@ acpi_ns_repair_object(struct acpi_predefined_data *data,
118 union acpi_operand_object *new_object; 118 union acpi_operand_object *new_object;
119 acpi_status status; 119 acpi_status status;
120 120
121 ACPI_FUNCTION_NAME(ns_repair_object);
122
121 /* 123 /*
122 * At this point, we know that the type of the returned object was not 124 * At this point, we know that the type of the returned object was not
123 * one of the expected types for this predefined name. Attempt to 125 * one of the expected types for this predefined name. Attempt to
@@ -171,19 +173,18 @@ acpi_ns_repair_object(struct acpi_predefined_data *data,
171 return_object->common.reference_count--; 173 return_object->common.reference_count--;
172 } 174 }
173 175
174 ACPI_INFO_PREDEFINED((AE_INFO, data->pathname, data->node_flags, 176 ACPI_DEBUG_PRINT((ACPI_DB_REPAIR,
175 "Converted %s to expected %s at index %u", 177 "%s: Converted %s to expected %s at index %u\n",
176 acpi_ut_get_object_type_name 178 data->pathname,
177 (return_object), 179 acpi_ut_get_object_type_name(return_object),
178 acpi_ut_get_object_type_name(new_object), 180 acpi_ut_get_object_type_name(new_object),
179 package_index)); 181 package_index));
180 } else { 182 } else {
181 ACPI_INFO_PREDEFINED((AE_INFO, data->pathname, data->node_flags, 183 ACPI_DEBUG_PRINT((ACPI_DB_REPAIR,
182 "Converted %s to expected %s", 184 "%s: Converted %s to expected %s\n",
183 acpi_ut_get_object_type_name 185 data->pathname,
184 (return_object), 186 acpi_ut_get_object_type_name(return_object),
185 acpi_ut_get_object_type_name 187 acpi_ut_get_object_type_name(new_object)));
186 (new_object)));
187 } 188 }
188 189
189 /* Delete old object, install the new return object */ 190 /* Delete old object, install the new return object */
@@ -528,6 +529,8 @@ acpi_ns_repair_package_list(struct acpi_predefined_data *data,
528{ 529{
529 union acpi_operand_object *pkg_obj_desc; 530 union acpi_operand_object *pkg_obj_desc;
530 531
532 ACPI_FUNCTION_NAME(ns_repair_package_list);
533
531 /* 534 /*
532 * Create the new outer package and populate it. The new package will 535 * Create the new outer package and populate it. The new package will
533 * have a single element, the lone subpackage. 536 * have a single element, the lone subpackage.
@@ -544,8 +547,9 @@ acpi_ns_repair_package_list(struct acpi_predefined_data *data,
544 *obj_desc_ptr = pkg_obj_desc; 547 *obj_desc_ptr = pkg_obj_desc;
545 data->flags |= ACPI_OBJECT_REPAIRED; 548 data->flags |= ACPI_OBJECT_REPAIRED;
546 549
547 ACPI_INFO_PREDEFINED((AE_INFO, data->pathname, data->node_flags, 550 ACPI_DEBUG_PRINT((ACPI_DB_REPAIR,
548 "Repaired Incorrectly formed Package")); 551 "%s: Repaired incorrectly formed Package\n",
552 data->pathname));
549 553
550 return (AE_OK); 554 return (AE_OK);
551} 555}
diff --git a/drivers/acpi/acpica/nsrepair2.c b/drivers/acpi/acpica/nsrepair2.c
index 846df7047a81..199333880c8d 100644
--- a/drivers/acpi/acpica/nsrepair2.c
+++ b/drivers/acpi/acpica/nsrepair2.c
@@ -255,6 +255,8 @@ acpi_ns_repair_FDE(struct acpi_predefined_data *data,
255 u32 *dword_buffer; 255 u32 *dword_buffer;
256 u32 i; 256 u32 i;
257 257
258 ACPI_FUNCTION_NAME(ns_repair_FDE);
259
258 switch (return_object->common.type) { 260 switch (return_object->common.type) {
259 case ACPI_TYPE_BUFFER: 261 case ACPI_TYPE_BUFFER:
260 262
@@ -296,8 +298,9 @@ acpi_ns_repair_FDE(struct acpi_predefined_data *data,
296 byte_buffer++; 298 byte_buffer++;
297 } 299 }
298 300
299 ACPI_INFO_PREDEFINED((AE_INFO, data->pathname, data->node_flags, 301 ACPI_DEBUG_PRINT((ACPI_DB_REPAIR,
300 "Expanded Byte Buffer to expected DWord Buffer")); 302 "%s Expanded Byte Buffer to expected DWord Buffer\n",
303 data->pathname));
301 break; 304 break;
302 305
303 default: 306 default:
@@ -445,6 +448,8 @@ acpi_ns_check_sorted_list(struct acpi_predefined_data *data,
445 u32 previous_value; 448 u32 previous_value;
446 acpi_status status; 449 acpi_status status;
447 450
451 ACPI_FUNCTION_NAME(ns_check_sorted_list);
452
448 /* The top-level object must be a package */ 453 /* The top-level object must be a package */
449 454
450 if (return_object->common.type != ACPI_TYPE_PACKAGE) { 455 if (return_object->common.type != ACPI_TYPE_PACKAGE) {
@@ -460,8 +465,9 @@ acpi_ns_check_sorted_list(struct acpi_predefined_data *data,
460 */ 465 */
461 status = acpi_ns_remove_null_elements(return_object); 466 status = acpi_ns_remove_null_elements(return_object);
462 if (status == AE_NULL_ENTRY) { 467 if (status == AE_NULL_ENTRY) {
463 ACPI_INFO_PREDEFINED((AE_INFO, data->pathname, data->node_flags, 468 ACPI_DEBUG_PRINT((ACPI_DB_REPAIR,
464 "NULL elements removed from package")); 469 "%s: NULL elements removed from package\n",
470 data->pathname));
465 471
466 /* Exit if package is now zero length */ 472 /* Exit if package is now zero length */
467 473
@@ -522,10 +528,9 @@ acpi_ns_check_sorted_list(struct acpi_predefined_data *data,
522 528
523 data->flags |= ACPI_OBJECT_REPAIRED; 529 data->flags |= ACPI_OBJECT_REPAIRED;
524 530
525 ACPI_INFO_PREDEFINED((AE_INFO, data->pathname, 531 ACPI_DEBUG_PRINT((ACPI_DB_REPAIR,
526 data->node_flags, 532 "%s: Repaired unsorted list - now sorted by %s\n",
527 "Repaired unsorted list - now sorted by %s", 533 data->pathname, sort_key_name));
528 sort_key_name));
529 return (AE_OK); 534 return (AE_OK);
530 } 535 }
531 536
diff --git a/include/acpi/acoutput.h b/include/acpi/acoutput.h
index 5c823d5ab783..d814da4b5365 100644
--- a/include/acpi/acoutput.h
+++ b/include/acpi/acoutput.h
@@ -85,7 +85,8 @@
85#define ACPI_LV_INIT 0x00000001 85#define ACPI_LV_INIT 0x00000001
86#define ACPI_LV_DEBUG_OBJECT 0x00000002 86#define ACPI_LV_DEBUG_OBJECT 0x00000002
87#define ACPI_LV_INFO 0x00000004 87#define ACPI_LV_INFO 0x00000004
88#define ACPI_LV_ALL_EXCEPTIONS 0x00000007 88#define ACPI_LV_REPAIR 0x00000008
89#define ACPI_LV_ALL_EXCEPTIONS 0x0000000F
89 90
90/* Trace verbosity level 1 [Standard Trace Level] */ 91/* Trace verbosity level 1 [Standard Trace Level] */
91 92
@@ -143,6 +144,7 @@
143#define ACPI_DB_INIT ACPI_DEBUG_LEVEL (ACPI_LV_INIT) 144#define ACPI_DB_INIT ACPI_DEBUG_LEVEL (ACPI_LV_INIT)
144#define ACPI_DB_DEBUG_OBJECT ACPI_DEBUG_LEVEL (ACPI_LV_DEBUG_OBJECT) 145#define ACPI_DB_DEBUG_OBJECT ACPI_DEBUG_LEVEL (ACPI_LV_DEBUG_OBJECT)
145#define ACPI_DB_INFO ACPI_DEBUG_LEVEL (ACPI_LV_INFO) 146#define ACPI_DB_INFO ACPI_DEBUG_LEVEL (ACPI_LV_INFO)
147#define ACPI_DB_REPAIR ACPI_DEBUG_LEVEL (ACPI_LV_REPAIR)
146#define ACPI_DB_ALL_EXCEPTIONS ACPI_DEBUG_LEVEL (ACPI_LV_ALL_EXCEPTIONS) 148#define ACPI_DB_ALL_EXCEPTIONS ACPI_DEBUG_LEVEL (ACPI_LV_ALL_EXCEPTIONS)
147 149
148/* Trace level -- also used in the global "DebugLevel" */ 150/* Trace level -- also used in the global "DebugLevel" */
@@ -174,8 +176,8 @@
174 176
175/* Defaults for debug_level, debug and normal */ 177/* Defaults for debug_level, debug and normal */
176 178
177#define ACPI_DEBUG_DEFAULT (ACPI_LV_INFO) 179#define ACPI_DEBUG_DEFAULT (ACPI_LV_INFO | ACPI_LV_REPAIR)
178#define ACPI_NORMAL_DEFAULT (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT) 180#define ACPI_NORMAL_DEFAULT (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT | ACPI_LV_REPAIR)
179#define ACPI_DEBUG_ALL (ACPI_LV_AML_DISASSEMBLE | ACPI_LV_ALL_EXCEPTIONS | ACPI_LV_ALL) 181#define ACPI_DEBUG_ALL (ACPI_LV_AML_DISASSEMBLE | ACPI_LV_ALL_EXCEPTIONS | ACPI_LV_ALL)
180 182
181#if defined (ACPI_DEBUG_OUTPUT) || !defined (ACPI_NO_ERROR_MESSAGES) 183#if defined (ACPI_DEBUG_OUTPUT) || !defined (ACPI_NO_ERROR_MESSAGES)