Pull remove-hotkey into release branch
[powerpc.git] / drivers / acpi / events / evxfevnt.c
index ec9ce84..17065e9 100644 (file)
@@ -5,7 +5,7 @@
  *****************************************************************************/
 
 /*
- * Copyright (C) 2000 - 2006, R. Byron Moore
+ * Copyright (C) 2000 - 2007, R. Byron Moore
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * POSSIBILITY OF SUCH DAMAGES.
  */
 
-#include <linux/module.h>
-
 #include <acpi/acpi.h>
 #include <acpi/acevents.h>
 #include <acpi/acnamesp.h>
+#include <acpi/actables.h>
 
 #define _COMPONENT          ACPI_EVENTS
 ACPI_MODULE_NAME("evxfevnt")
@@ -65,15 +64,16 @@ acpi_status acpi_enable(void)
 {
        acpi_status status = AE_OK;
 
-       ACPI_FUNCTION_TRACE("acpi_enable");
+       ACPI_FUNCTION_TRACE(acpi_enable);
 
-       /* Make sure we have the FADT */
+       /* ACPI tables must be present */
 
-       if (!acpi_gbl_FADT) {
-               ACPI_WARNING((AE_INFO, "No FADT information present!"));
+       if (!acpi_tb_tables_loaded()) {
                return_ACPI_STATUS(AE_NO_ACPI_TABLES);
        }
 
+       /* Check current mode */
+
        if (acpi_hw_get_mode() == ACPI_SYS_MODE_ACPI) {
                ACPI_DEBUG_PRINT((ACPI_DB_INIT,
                                  "System is already in ACPI mode\n"));
@@ -94,6 +94,8 @@ acpi_status acpi_enable(void)
        return_ACPI_STATUS(status);
 }
 
+ACPI_EXPORT_SYMBOL(acpi_enable)
+
 /*******************************************************************************
  *
  * FUNCTION:    acpi_disable
@@ -105,17 +107,11 @@ acpi_status acpi_enable(void)
  * DESCRIPTION: Transfers the system into LEGACY (non-ACPI) mode.
  *
  ******************************************************************************/
-
 acpi_status acpi_disable(void)
 {
        acpi_status status = AE_OK;
 
-       ACPI_FUNCTION_TRACE("acpi_disable");
-
-       if (!acpi_gbl_FADT) {
-               ACPI_WARNING((AE_INFO, "No FADT information present!"));
-               return_ACPI_STATUS(AE_NO_ACPI_TABLES);
-       }
+       ACPI_FUNCTION_TRACE(acpi_disable);
 
        if (acpi_hw_get_mode() == ACPI_SYS_MODE_LEGACY) {
                ACPI_DEBUG_PRINT((ACPI_DB_INIT,
@@ -137,6 +133,8 @@ acpi_status acpi_disable(void)
        return_ACPI_STATUS(status);
 }
 
+ACPI_EXPORT_SYMBOL(acpi_disable)
+
 /*******************************************************************************
  *
  * FUNCTION:    acpi_enable_event
@@ -149,13 +147,12 @@ acpi_status acpi_disable(void)
  * DESCRIPTION: Enable an ACPI event (fixed)
  *
  ******************************************************************************/
-
 acpi_status acpi_enable_event(u32 event, u32 flags)
 {
        acpi_status status = AE_OK;
        u32 value;
 
-       ACPI_FUNCTION_TRACE("acpi_enable_event");
+       ACPI_FUNCTION_TRACE(acpi_enable_event);
 
        /* Decode the Fixed Event */
 
@@ -169,7 +166,7 @@ acpi_status acpi_enable_event(u32 event, u32 flags)
         */
        status =
            acpi_set_register(acpi_gbl_fixed_event_info[event].
-                             enable_register_id, 1, ACPI_MTX_LOCK);
+                             enable_register_id, 1);
        if (ACPI_FAILURE(status)) {
                return_ACPI_STATUS(status);
        }
@@ -178,7 +175,7 @@ acpi_status acpi_enable_event(u32 event, u32 flags)
 
        status =
            acpi_get_register(acpi_gbl_fixed_event_info[event].
-                             enable_register_id, &value, ACPI_MTX_LOCK);
+                             enable_register_id, &value);
        if (ACPI_FAILURE(status)) {
                return_ACPI_STATUS(status);
        }
@@ -193,7 +190,7 @@ acpi_status acpi_enable_event(u32 event, u32 flags)
        return_ACPI_STATUS(status);
 }
 
-EXPORT_SYMBOL(acpi_enable_event);
+ACPI_EXPORT_SYMBOL(acpi_enable_event)
 
 /*******************************************************************************
  *
@@ -208,13 +205,12 @@ EXPORT_SYMBOL(acpi_enable_event);
  * DESCRIPTION: Set the type of an individual GPE
  *
  ******************************************************************************/
-
 acpi_status acpi_set_gpe_type(acpi_handle gpe_device, u32 gpe_number, u8 type)
 {
        acpi_status status = AE_OK;
        struct acpi_gpe_event_info *gpe_event_info;
 
-       ACPI_FUNCTION_TRACE("acpi_set_gpe_type");
+       ACPI_FUNCTION_TRACE(acpi_set_gpe_type);
 
        /* Ensure that we have a valid GPE number */
 
@@ -236,7 +232,7 @@ acpi_status acpi_set_gpe_type(acpi_handle gpe_device, u32 gpe_number, u8 type)
        return_ACPI_STATUS(status);
 }
 
-EXPORT_SYMBOL(acpi_set_gpe_type);
+ACPI_EXPORT_SYMBOL(acpi_set_gpe_type)
 
 /*******************************************************************************
  *
@@ -252,13 +248,12 @@ EXPORT_SYMBOL(acpi_set_gpe_type);
  * DESCRIPTION: Enable an ACPI event (general purpose)
  *
  ******************************************************************************/
-
 acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags)
 {
        acpi_status status = AE_OK;
        struct acpi_gpe_event_info *gpe_event_info;
 
-       ACPI_FUNCTION_TRACE("acpi_enable_gpe");
+       ACPI_FUNCTION_TRACE(acpi_enable_gpe);
 
        /* Use semaphore lock if not executing at interrupt level */
 
@@ -288,7 +283,7 @@ acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags)
        return_ACPI_STATUS(status);
 }
 
-EXPORT_SYMBOL(acpi_enable_gpe);
+ACPI_EXPORT_SYMBOL(acpi_enable_gpe)
 
 /*******************************************************************************
  *
@@ -304,13 +299,12 @@ EXPORT_SYMBOL(acpi_enable_gpe);
  * DESCRIPTION: Disable an ACPI event (general purpose)
  *
  ******************************************************************************/
-
 acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags)
 {
        acpi_status status = AE_OK;
        struct acpi_gpe_event_info *gpe_event_info;
 
-       ACPI_FUNCTION_TRACE("acpi_disable_gpe");
+       ACPI_FUNCTION_TRACE(acpi_disable_gpe);
 
        /* Use semaphore lock if not executing at interrupt level */
 
@@ -338,6 +332,8 @@ acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags)
        return_ACPI_STATUS(status);
 }
 
+ACPI_EXPORT_SYMBOL(acpi_disable_gpe)
+
 /*******************************************************************************
  *
  * FUNCTION:    acpi_disable_event
@@ -350,13 +346,12 @@ acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags)
  * DESCRIPTION: Disable an ACPI event (fixed)
  *
  ******************************************************************************/
-
 acpi_status acpi_disable_event(u32 event, u32 flags)
 {
        acpi_status status = AE_OK;
        u32 value;
 
-       ACPI_FUNCTION_TRACE("acpi_disable_event");
+       ACPI_FUNCTION_TRACE(acpi_disable_event);
 
        /* Decode the Fixed Event */
 
@@ -370,14 +365,14 @@ acpi_status acpi_disable_event(u32 event, u32 flags)
         */
        status =
            acpi_set_register(acpi_gbl_fixed_event_info[event].
-                             enable_register_id, 0, ACPI_MTX_LOCK);
+                             enable_register_id, 0);
        if (ACPI_FAILURE(status)) {
                return_ACPI_STATUS(status);
        }
 
        status =
            acpi_get_register(acpi_gbl_fixed_event_info[event].
-                             enable_register_id, &value, ACPI_MTX_LOCK);
+                             enable_register_id, &value);
        if (ACPI_FAILURE(status)) {
                return_ACPI_STATUS(status);
        }
@@ -392,7 +387,7 @@ acpi_status acpi_disable_event(u32 event, u32 flags)
        return_ACPI_STATUS(status);
 }
 
-EXPORT_SYMBOL(acpi_disable_event);
+ACPI_EXPORT_SYMBOL(acpi_disable_event)
 
 /*******************************************************************************
  *
@@ -405,12 +400,11 @@ EXPORT_SYMBOL(acpi_disable_event);
  * DESCRIPTION: Clear an ACPI event (fixed)
  *
  ******************************************************************************/
-
 acpi_status acpi_clear_event(u32 event)
 {
        acpi_status status = AE_OK;
 
-       ACPI_FUNCTION_TRACE("acpi_clear_event");
+       ACPI_FUNCTION_TRACE(acpi_clear_event);
 
        /* Decode the Fixed Event */
 
@@ -424,12 +418,12 @@ acpi_status acpi_clear_event(u32 event)
         */
        status =
            acpi_set_register(acpi_gbl_fixed_event_info[event].
-                             status_register_id, 1, ACPI_MTX_LOCK);
+                             status_register_id, 1);
 
        return_ACPI_STATUS(status);
 }
 
-EXPORT_SYMBOL(acpi_clear_event);
+ACPI_EXPORT_SYMBOL(acpi_clear_event)
 
 /*******************************************************************************
  *
@@ -444,13 +438,12 @@ EXPORT_SYMBOL(acpi_clear_event);
  * DESCRIPTION: Clear an ACPI event (general purpose)
  *
  ******************************************************************************/
-
 acpi_status acpi_clear_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags)
 {
        acpi_status status = AE_OK;
        struct acpi_gpe_event_info *gpe_event_info;
 
-       ACPI_FUNCTION_TRACE("acpi_clear_gpe");
+       ACPI_FUNCTION_TRACE(acpi_clear_gpe);
 
        /* Use semaphore lock if not executing at interrupt level */
 
@@ -478,6 +471,8 @@ acpi_status acpi_clear_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags)
        return_ACPI_STATUS(status);
 }
 
+ACPI_EXPORT_SYMBOL(acpi_clear_gpe)
+
 #ifdef ACPI_FUTURE_USAGE
 /*******************************************************************************
  *
@@ -492,12 +487,11 @@ acpi_status acpi_clear_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags)
  * DESCRIPTION: Obtains and returns the current status of the event
  *
  ******************************************************************************/
-
 acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status)
 {
        acpi_status status = AE_OK;
 
-       ACPI_FUNCTION_TRACE("acpi_get_event_status");
+       ACPI_FUNCTION_TRACE(acpi_get_event_status);
 
        if (!event_status) {
                return_ACPI_STATUS(AE_BAD_PARAMETER);
@@ -513,11 +507,13 @@ acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status)
 
        status =
            acpi_get_register(acpi_gbl_fixed_event_info[event].
-                             status_register_id, event_status, ACPI_MTX_LOCK);
+                             status_register_id, event_status);
 
        return_ACPI_STATUS(status);
 }
 
+ACPI_EXPORT_SYMBOL(acpi_get_event_status)
+
 /*******************************************************************************
  *
  * FUNCTION:    acpi_get_gpe_status
@@ -533,7 +529,6 @@ acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status)
  * DESCRIPTION: Get status of an event (general purpose)
  *
  ******************************************************************************/
-
 acpi_status
 acpi_get_gpe_status(acpi_handle gpe_device,
                    u32 gpe_number, u32 flags, acpi_event_status * event_status)
@@ -541,7 +536,7 @@ acpi_get_gpe_status(acpi_handle gpe_device,
        acpi_status status = AE_OK;
        struct acpi_gpe_event_info *gpe_event_info;
 
-       ACPI_FUNCTION_TRACE("acpi_get_gpe_status");
+       ACPI_FUNCTION_TRACE(acpi_get_gpe_status);
 
        /* Use semaphore lock if not executing at interrupt level */
 
@@ -570,6 +565,8 @@ acpi_get_gpe_status(acpi_handle gpe_device,
        }
        return_ACPI_STATUS(status);
 }
+
+ACPI_EXPORT_SYMBOL(acpi_get_gpe_status)
 #endif                         /*  ACPI_FUTURE_USAGE  */
 
 /*******************************************************************************
@@ -586,7 +583,6 @@ acpi_get_gpe_status(acpi_handle gpe_device,
  * DESCRIPTION: Create and Install a block of GPE registers
  *
  ******************************************************************************/
-
 acpi_status
 acpi_install_gpe_block(acpi_handle gpe_device,
                       struct acpi_generic_address *gpe_block_address,
@@ -597,7 +593,7 @@ acpi_install_gpe_block(acpi_handle gpe_device,
        struct acpi_namespace_node *node;
        struct acpi_gpe_block_info *gpe_block;
 
-       ACPI_FUNCTION_TRACE("acpi_install_gpe_block");
+       ACPI_FUNCTION_TRACE(acpi_install_gpe_block);
 
        if ((!gpe_device) || (!gpe_block_address) || (!register_count)) {
                return_ACPI_STATUS(AE_BAD_PARAMETER);
@@ -636,6 +632,7 @@ acpi_install_gpe_block(acpi_handle gpe_device,
 
        obj_desc = acpi_ns_get_attached_object(node);
        if (!obj_desc) {
+
                /* No object, create a new one */
 
                obj_desc = acpi_ut_create_internal_object(ACPI_TYPE_DEVICE);
@@ -665,7 +662,7 @@ acpi_install_gpe_block(acpi_handle gpe_device,
        return_ACPI_STATUS(status);
 }
 
-EXPORT_SYMBOL(acpi_install_gpe_block);
+ACPI_EXPORT_SYMBOL(acpi_install_gpe_block)
 
 /*******************************************************************************
  *
@@ -678,14 +675,13 @@ EXPORT_SYMBOL(acpi_install_gpe_block);
  * DESCRIPTION: Remove a previously installed block of GPE registers
  *
  ******************************************************************************/
-
 acpi_status acpi_remove_gpe_block(acpi_handle gpe_device)
 {
        union acpi_operand_object *obj_desc;
        acpi_status status;
        struct acpi_namespace_node *node;
 
-       ACPI_FUNCTION_TRACE("acpi_remove_gpe_block");
+       ACPI_FUNCTION_TRACE(acpi_remove_gpe_block);
 
        if (!gpe_device) {
                return_ACPI_STATUS(AE_BAD_PARAMETER);
@@ -721,4 +717,4 @@ acpi_status acpi_remove_gpe_block(acpi_handle gpe_device)
        return_ACPI_STATUS(status);
 }
 
-EXPORT_SYMBOL(acpi_remove_gpe_block);
+ACPI_EXPORT_SYMBOL(acpi_remove_gpe_block)