aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/acpica/acmacros.h3
-rw-r--r--drivers/acpi/acpica/acutils.h5
-rw-r--r--drivers/acpi/acpica/nsrepair.c8
-rw-r--r--drivers/acpi/acpica/utmisc.c42
4 files changed, 54 insertions, 4 deletions
diff --git a/drivers/acpi/acpica/acmacros.h b/drivers/acpi/acpica/acmacros.h
index 3acd9c6760ea..7d9ba6e57554 100644
--- a/drivers/acpi/acpica/acmacros.h
+++ b/drivers/acpi/acpica/acmacros.h
@@ -341,6 +341,7 @@
341#define ACPI_ERROR_NAMESPACE(s, e) acpi_ns_report_error (AE_INFO, s, e); 341#define ACPI_ERROR_NAMESPACE(s, e) acpi_ns_report_error (AE_INFO, s, e);
342#define ACPI_ERROR_METHOD(s, n, p, e) acpi_ns_report_method_error (AE_INFO, s, n, p, e); 342#define ACPI_ERROR_METHOD(s, n, p, e) acpi_ns_report_method_error (AE_INFO, s, n, p, e);
343#define ACPI_WARN_PREDEFINED(plist) acpi_ut_predefined_warning plist 343#define ACPI_WARN_PREDEFINED(plist) acpi_ut_predefined_warning plist
344#define ACPI_INFO_PREDEFINED(plist) acpi_ut_predefined_info plist
344 345
345#else 346#else
346 347
@@ -349,6 +350,8 @@
349#define ACPI_ERROR_NAMESPACE(s, e) 350#define ACPI_ERROR_NAMESPACE(s, e)
350#define ACPI_ERROR_METHOD(s, n, p, e) 351#define ACPI_ERROR_METHOD(s, n, p, e)
351#define ACPI_WARN_PREDEFINED(plist) 352#define ACPI_WARN_PREDEFINED(plist)
353#define ACPI_INFO_PREDEFINED(plist)
354
352#endif /* ACPI_NO_ERROR_MESSAGES */ 355#endif /* ACPI_NO_ERROR_MESSAGES */
353 356
354/* 357/*
diff --git a/drivers/acpi/acpica/acutils.h b/drivers/acpi/acpica/acutils.h
index 863a264b829e..f920d89b3b15 100644
--- a/drivers/acpi/acpica/acutils.h
+++ b/drivers/acpi/acpica/acutils.h
@@ -481,6 +481,11 @@ acpi_ut_predefined_warning(const char *module_name,
481 char *pathname, 481 char *pathname,
482 u8 node_flags, const char *format, ...); 482 u8 node_flags, const char *format, ...);
483 483
484void ACPI_INTERNAL_VAR_XFACE
485acpi_ut_predefined_info(const char *module_name,
486 u32 line_number,
487 char *pathname, u8 node_flags, const char *format, ...);
488
484/* Values for Base above (16=Hex, 10=Decimal) */ 489/* Values for Base above (16=Hex, 10=Decimal) */
485 490
486#define ACPI_ANY_BASE 0 491#define ACPI_ANY_BASE 0
diff --git a/drivers/acpi/acpica/nsrepair.c b/drivers/acpi/acpica/nsrepair.c
index f2f5269fed6d..d563f1a564a7 100644
--- a/drivers/acpi/acpica/nsrepair.c
+++ b/drivers/acpi/acpica/nsrepair.c
@@ -185,14 +185,14 @@ acpi_ns_repair_object(struct acpi_predefined_data *data,
185 return_object->common.reference_count--; 185 return_object->common.reference_count--;
186 } 186 }
187 187
188 ACPI_WARN_PREDEFINED((AE_INFO, data->pathname, data->node_flags, 188 ACPI_INFO_PREDEFINED((AE_INFO, data->pathname, data->node_flags,
189 "Converted %s to expected %s at index %u", 189 "Converted %s to expected %s at index %u",
190 acpi_ut_get_object_type_name 190 acpi_ut_get_object_type_name
191 (return_object), 191 (return_object),
192 acpi_ut_get_object_type_name(new_object), 192 acpi_ut_get_object_type_name(new_object),
193 package_index)); 193 package_index));
194 } else { 194 } else {
195 ACPI_WARN_PREDEFINED((AE_INFO, data->pathname, data->node_flags, 195 ACPI_INFO_PREDEFINED((AE_INFO, data->pathname, data->node_flags,
196 "Converted %s to expected %s", 196 "Converted %s to expected %s",
197 acpi_ut_get_object_type_name 197 acpi_ut_get_object_type_name
198 (return_object), 198 (return_object),
@@ -254,8 +254,8 @@ acpi_ns_repair_package_list(struct acpi_predefined_data *data,
254 *obj_desc_ptr = pkg_obj_desc; 254 *obj_desc_ptr = pkg_obj_desc;
255 data->flags |= ACPI_OBJECT_REPAIRED; 255 data->flags |= ACPI_OBJECT_REPAIRED;
256 256
257 ACPI_WARN_PREDEFINED((AE_INFO, data->pathname, data->node_flags, 257 ACPI_INFO_PREDEFINED((AE_INFO, data->pathname, data->node_flags,
258 "Incorrectly formed Package, attempting repair")); 258 "Repaired Incorrectly formed Package"));
259 259
260 return (AE_OK); 260 return (AE_OK);
261} 261}
diff --git a/drivers/acpi/acpica/utmisc.c b/drivers/acpi/acpica/utmisc.c
index 61f6315fce9f..6c6a5137b728 100644
--- a/drivers/acpi/acpica/utmisc.c
+++ b/drivers/acpi/acpica/utmisc.c
@@ -1161,3 +1161,45 @@ acpi_ut_predefined_warning(const char *module_name,
1161 ACPI_COMMON_MSG_SUFFIX; 1161 ACPI_COMMON_MSG_SUFFIX;
1162 va_end(args); 1162 va_end(args);
1163} 1163}
1164
1165/*******************************************************************************
1166 *
1167 * FUNCTION: acpi_ut_predefined_info
1168 *
1169 * PARAMETERS: module_name - Caller's module name (for error output)
1170 * line_number - Caller's line number (for error output)
1171 * Pathname - Full pathname to the node
1172 * node_flags - From Namespace node for the method/object
1173 * Format - Printf format string + additional args
1174 *
1175 * RETURN: None
1176 *
1177 * DESCRIPTION: Info messages for the predefined validation module. Messages
1178 * are only emitted the first time a problem with a particular
1179 * method/object is detected. This prevents a flood of
1180 * messages for methods that are repeatedly evaluated.
1181 *
1182 ******************************************************************************/
1183
1184void ACPI_INTERNAL_VAR_XFACE
1185acpi_ut_predefined_info(const char *module_name,
1186 u32 line_number,
1187 char *pathname, u8 node_flags, const char *format, ...)
1188{
1189 va_list args;
1190
1191 /*
1192 * Warning messages for this method/object will be disabled after the
1193 * first time a validation fails or an object is successfully repaired.
1194 */
1195 if (node_flags & ANOBJ_EVALUATED) {
1196 return;
1197 }
1198
1199 acpi_os_printf("ACPI Info for %s: ", pathname);
1200
1201 va_start(args, format);
1202 acpi_os_vprintf(format, args);
1203 ACPI_COMMON_MSG_SUFFIX;
1204 va_end(args);
1205}