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 | } | ||
