vserver 1.9.3
[linux-2.6.git] / drivers / acpi / events / evmisc.c
index 1bfb10d..35e61d5 100644 (file)
@@ -88,9 +88,10 @@ acpi_ev_is_notify_object (
  *
  * FUNCTION:    acpi_ev_queue_notify_request
  *
- * PARAMETERS:
+ * PARAMETERS:  Node            - NS node for the notified object
+ *              notify_value    - Value from the Notify() request
  *
- * RETURN:      None.
+ * RETURN:      Status
  *
  * DESCRIPTION: Dispatch a device notification event to a previously
  *              installed handler.
@@ -139,14 +140,12 @@ acpi_ev_queue_notify_request (
                                acpi_notify_value_names[notify_value]));
        }
        else {
-               ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-                               "notify value: 0x%2.2x **Device Specific**\n",
+               ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Notify value: 0x%2.2X **Device Specific**\n",
                                notify_value));
        }
 
-       /*
-        * Get the notify object attached to the NS Node
-        */
+       /* Get the notify object attached to the NS Node */
+
        obj_desc = acpi_ns_get_attached_object (node);
        if (obj_desc) {
                /* We have the notify object, Get the right handler */
@@ -194,11 +193,13 @@ acpi_ev_queue_notify_request (
        }
 
        if (!handler_obj) {
-               /* There is no per-device notify handler for this device */
-
+               /*
+                * There is no per-device notify handler for this device.
+                * This may or may not be a problem.
+                */
                ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-                       "No notify handler for [%4.4s] node %p\n",
-                       acpi_ut_get_node_name (node), node));
+                       "No notify handler for Notify(%4.4s, %X) node %p\n",
+                       acpi_ut_get_node_name (node), notify_value, node));
        }
 
        return (status);
@@ -209,7 +210,7 @@ acpi_ev_queue_notify_request (
  *
  * FUNCTION:    acpi_ev_notify_dispatch
  *
- * PARAMETERS:
+ * PARAMETERS:  Context         - To be passsed to the notify handler
  *
  * RETURN:      None.
  *
@@ -276,6 +277,8 @@ acpi_ev_notify_dispatch (
  *
  * FUNCTION:    acpi_ev_global_lock_thread
  *
+ * PARAMETERS:  Context         - From thread interface, not used
+ *
  * RETURN:      None
  *
  * DESCRIPTION: Invoked by SCI interrupt handler upon acquisition of the
@@ -309,7 +312,9 @@ acpi_ev_global_lock_thread (
  *
  * FUNCTION:    acpi_ev_global_lock_handler
  *
- * RETURN:      Status
+ * PARAMETERS:  Context         - From thread interface, not used
+ *
+ * RETURN:      ACPI_INTERRUPT_HANDLED or ACPI_INTERRUPT_NOT_HANDLED
  *
  * DESCRIPTION: Invoked directly from the SCI handler when a global lock
  *              release interrupt occurs.  Grab the global lock and queue
@@ -356,6 +361,8 @@ acpi_ev_global_lock_handler (
  *
  * FUNCTION:    acpi_ev_init_global_lock_handler
  *
+ * PARAMETERS:  None
+ *
  * RETURN:      Status
  *
  * DESCRIPTION: Install a handler for the global lock release event
@@ -395,6 +402,8 @@ acpi_ev_init_global_lock_handler (void)
  *
  * FUNCTION:    acpi_ev_acquire_global_lock
  *
+ * PARAMETERS:  Timeout         - Max time to wait for the lock, in millisec.
+ *
  * RETURN:      Status
  *
  * DESCRIPTION: Attempt to gain ownership of the Global Lock.
@@ -462,6 +471,10 @@ acpi_ev_acquire_global_lock (
  *
  * FUNCTION:    acpi_ev_release_global_lock
  *
+ * PARAMETERS:  None
+ *
+ * RETURN:      Status
+ *
  * DESCRIPTION: Releases ownership of the Global Lock.
  *
  ******************************************************************************/
@@ -548,7 +561,7 @@ acpi_ev_terminate (void)
 
                /* Disable all GPEs in all GPE blocks */
 
-               status = acpi_ev_walk_gpe_list (acpi_hw_disable_gpe_block);
+               status = acpi_ev_walk_gpe_list (acpi_hw_disable_gpe_block, ACPI_NOT_ISR);
 
                /* Remove SCI handler */
 
@@ -558,6 +571,10 @@ acpi_ev_terminate (void)
                }
        }
 
+       /* Deallocate all handler objects installed within GPE info structs */
+
+       status = acpi_ev_walk_gpe_list (acpi_ev_delete_gpe_handlers, ACPI_NOT_ISR);
+
        /* Return to original mode if necessary */
 
        if (acpi_gbl_original_mode == ACPI_SYS_MODE_LEGACY) {