diff options
-rw-r--r-- | drivers/acpi/acpica/acmacros.h | 3 | ||||
-rw-r--r-- | drivers/acpi/acpica/acutils.h | 5 | ||||
-rw-r--r-- | drivers/acpi/acpica/nsrepair.c | 8 | ||||
-rw-r--r-- | drivers/acpi/acpica/utmisc.c | 42 |
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 | ||
484 | void ACPI_INTERNAL_VAR_XFACE | ||
485 | acpi_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 | |||
1184 | void ACPI_INTERNAL_VAR_XFACE | ||
1185 | acpi_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 | } | ||