aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/events/evmisc.c
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2006-01-27 16:43:00 -0500
committerLen Brown <len.brown@intel.com>2006-01-31 03:25:09 -0500
commitb8e4d89357fc434618a59c1047cac72641191805 (patch)
treeac97fcc6fdc277c682365900663872c96f2420bd /drivers/acpi/events/evmisc.c
parent292dd876ee765c478b27c93cc51e93a558ed58bf (diff)
[ACPI] ACPICA 20060127
Implemented support in the Resource Manager to allow unresolved namestring references within resource package objects for the _PRT method. This support is in addition to the previously implemented unresolved reference support within the AML parser. If the interpreter slack mode is enabled (true on Linux unless acpi=strict), these unresolved references will be passed through to the caller as a NULL package entry. http://bugzilla.kernel.org/show_bug.cgi?id=5741 Implemented and deployed new macros and functions for error and warning messages across the subsystem. These macros are simpler and generate less code than their predecessors. The new macros ACPI_ERROR, ACPI_EXCEPTION, ACPI_WARNING, and ACPI_INFO replace the ACPI_REPORT_* macros. Implemented the acpi_cpu_flags type to simplify host OS integration of the Acquire/Release Lock OSL interfaces. Suggested by Steven Rostedt and Andrew Morton. Fixed a problem where Alias ASL operators are sometimes not correctly resolved. causing AE_AML_INTERNAL http://bugzilla.kernel.org/show_bug.cgi?id=5189 http://bugzilla.kernel.org/show_bug.cgi?id=5674 Fixed several problems with the implementation of the ConcatenateResTemplate ASL operator. As per the ACPI specification, zero length buffers are now treated as a single EndTag. One-length buffers always cause a fatal exception. Non-zero length buffers that do not end with a full 2-byte EndTag cause a fatal exception. Fixed a possible structure overwrite in the AcpiGetObjectInfo external interface. (With assistance from Thomas Renninger) Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/events/evmisc.c')
-rw-r--r--drivers/acpi/events/evmisc.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/drivers/acpi/events/evmisc.c b/drivers/acpi/events/evmisc.c
index 78883239784a..0909ba69577e 100644
--- a/drivers/acpi/events/evmisc.c
+++ b/drivers/acpi/events/evmisc.c
@@ -303,7 +303,8 @@ static void ACPI_SYSTEM_XFACE acpi_ev_global_lock_thread(void *context)
303 acpi_os_signal_semaphore(acpi_gbl_global_lock_semaphore, 303 acpi_os_signal_semaphore(acpi_gbl_global_lock_semaphore,
304 acpi_gbl_global_lock_thread_count); 304 acpi_gbl_global_lock_thread_count);
305 if (ACPI_FAILURE(status)) { 305 if (ACPI_FAILURE(status)) {
306 ACPI_REPORT_ERROR(("Could not signal Global Lock semaphore\n")); 306 ACPI_ERROR((AE_INFO,
307 "Could not signal Global Lock semaphore"));
307 } 308 }
308 } 309 }
309} 310}
@@ -344,7 +345,8 @@ static u32 acpi_ev_global_lock_handler(void *context)
344 acpi_ev_global_lock_thread, 345 acpi_ev_global_lock_thread,
345 context); 346 context);
346 if (ACPI_FAILURE(status)) { 347 if (ACPI_FAILURE(status)) {
347 ACPI_REPORT_ERROR(("Could not queue Global Lock thread, %s\n", acpi_format_exception(status))); 348 ACPI_EXCEPTION((AE_INFO, status,
349 "Could not queue Global Lock thread"));
348 350
349 return (ACPI_INTERRUPT_NOT_HANDLED); 351 return (ACPI_INTERRUPT_NOT_HANDLED);
350 } 352 }
@@ -384,7 +386,8 @@ acpi_status acpi_ev_init_global_lock_handler(void)
384 * with an error. 386 * with an error.
385 */ 387 */
386 if (status == AE_NO_HARDWARE_RESPONSE) { 388 if (status == AE_NO_HARDWARE_RESPONSE) {
387 ACPI_REPORT_ERROR(("No response from Global Lock hardware, disabling lock\n")); 389 ACPI_ERROR((AE_INFO,
390 "No response from Global Lock hardware, disabling lock"));
388 391
389 acpi_gbl_global_lock_present = FALSE; 392 acpi_gbl_global_lock_present = FALSE;
390 status = AE_OK; 393 status = AE_OK;
@@ -480,7 +483,8 @@ acpi_status acpi_ev_release_global_lock(void)
480 ACPI_FUNCTION_TRACE("ev_release_global_lock"); 483 ACPI_FUNCTION_TRACE("ev_release_global_lock");
481 484
482 if (!acpi_gbl_global_lock_thread_count) { 485 if (!acpi_gbl_global_lock_thread_count) {
483 ACPI_REPORT_WARNING(("Cannot release HW Global Lock, it has not been acquired\n")); 486 ACPI_WARNING((AE_INFO,
487 "Cannot release HW Global Lock, it has not been acquired"));
484 return_ACPI_STATUS(AE_NOT_ACQUIRED); 488 return_ACPI_STATUS(AE_NOT_ACQUIRED);
485 } 489 }
486 490
@@ -542,7 +546,9 @@ void acpi_ev_terminate(void)
542 for (i = 0; i < ACPI_NUM_FIXED_EVENTS; i++) { 546 for (i = 0; i < ACPI_NUM_FIXED_EVENTS; i++) {
543 status = acpi_disable_event((u32) i, 0); 547 status = acpi_disable_event((u32) i, 0);
544 if (ACPI_FAILURE(status)) { 548 if (ACPI_FAILURE(status)) {
545 ACPI_REPORT_ERROR(("Could not disable fixed event %d\n", (u32) i)); 549 ACPI_ERROR((AE_INFO,
550 "Could not disable fixed event %d",
551 (u32) i));
546 } 552 }
547 } 553 }
548 554
@@ -554,7 +560,7 @@ void acpi_ev_terminate(void)
554 560
555 status = acpi_ev_remove_sci_handler(); 561 status = acpi_ev_remove_sci_handler();
556 if (ACPI_FAILURE(status)) { 562 if (ACPI_FAILURE(status)) {
557 ACPI_REPORT_ERROR(("Could not remove SCI handler\n")); 563 ACPI_ERROR((AE_INFO, "Could not remove SCI handler"));
558 } 564 }
559 } 565 }
560 566
@@ -567,7 +573,7 @@ void acpi_ev_terminate(void)
567 if (acpi_gbl_original_mode == ACPI_SYS_MODE_LEGACY) { 573 if (acpi_gbl_original_mode == ACPI_SYS_MODE_LEGACY) {
568 status = acpi_disable(); 574 status = acpi_disable();
569 if (ACPI_FAILURE(status)) { 575 if (ACPI_FAILURE(status)) {
570 ACPI_REPORT_WARNING(("acpi_disable failed\n")); 576 ACPI_WARNING((AE_INFO, "acpi_disable failed"));
571 } 577 }
572 } 578 }
573 return_VOID; 579 return_VOID;