Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / drivers / acpi / hardware / hwsleep.c
index 77b3e9a..8926927 100644 (file)
@@ -6,7 +6,7 @@
  *****************************************************************************/
 
 /*
- * Copyright (C) 2000 - 2005, R. Byron Moore
+ * Copyright (C) 2000 - 2006, R. Byron Moore
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  */
 
 #include <linux/module.h>
-
 #include <acpi/acpi.h>
 
 #define _COMPONENT          ACPI_HARDWARE
-        ACPI_MODULE_NAME    ("hwsleep")
-
-
-#define METHOD_NAME__BFS        "\\_BFS"
-#define METHOD_NAME__GTS        "\\_GTS"
-#define METHOD_NAME__PTS        "\\_PTS"
-#define METHOD_NAME__SST        "\\_SI._SST"
-#define METHOD_NAME__WAK        "\\_WAK"
-
-#define ACPI_SST_INDICATOR_OFF  0
-#define ACPI_SST_WORKING        1
-#define ACPI_SST_WAKING         2
-#define ACPI_SST_SLEEPING       3
-#define ACPI_SST_SLEEP_CONTEXT  4
-
+ACPI_MODULE_NAME("hwsleep")
 
-/******************************************************************************
+/*******************************************************************************
  *
  * FUNCTION:    acpi_set_firmware_waking_vector
  *
  *
  * RETURN:      Status
  *
- * DESCRIPTION: access function for d_firmware_waking_vector field in FACS
+ * DESCRIPTION: Access function for the firmware_waking_vector field in FACS
  *
  ******************************************************************************/
-
 acpi_status
-acpi_set_firmware_waking_vector (
-       acpi_physical_address physical_address)
+acpi_set_firmware_waking_vector(acpi_physical_address physical_address)
 {
 
-       ACPI_FUNCTION_TRACE ("acpi_set_firmware_waking_vector");
-
+       ACPI_FUNCTION_TRACE("acpi_set_firmware_waking_vector");
 
        /* Set the vector */
 
        if (acpi_gbl_common_fACS.vector_width == 32) {
-               *(ACPI_CAST_PTR (u32, acpi_gbl_common_fACS.firmware_waking_vector))
-                               = (u32) physical_address;
-       }
-       else {
-               *acpi_gbl_common_fACS.firmware_waking_vector
-                               = physical_address;
+               *(ACPI_CAST_PTR
+                 (u32, acpi_gbl_common_fACS.firmware_waking_vector))
+                   = (u32) physical_address;
+       } else {
+               *acpi_gbl_common_fACS.firmware_waking_vector = physical_address;
        }
 
-       return_ACPI_STATUS (AE_OK);
+       return_ACPI_STATUS(AE_OK);
 }
 
-
-/******************************************************************************
+/*******************************************************************************
  *
  * FUNCTION:    acpi_get_firmware_waking_vector
  *
- * PARAMETERS:  *physical_address   - Output buffer where contents of
+ * PARAMETERS:  *physical_address   - Where the contents of
  *                                    the firmware_waking_vector field of
- *                                    the FACS will be stored.
+ *                                    the FACS will be returned.
  *
- * RETURN:      Status
+ * RETURN:      Status, vector
  *
- * DESCRIPTION: Access function for firmware_waking_vector field in FACS
+ * DESCRIPTION: Access function for the firmware_waking_vector field in FACS
  *
  ******************************************************************************/
+
 #ifdef ACPI_FUTURE_USAGE
 acpi_status
-acpi_get_firmware_waking_vector (
-       acpi_physical_address *physical_address)
+acpi_get_firmware_waking_vector(acpi_physical_address * physical_address)
 {
 
-       ACPI_FUNCTION_TRACE ("acpi_get_firmware_waking_vector");
-
+       ACPI_FUNCTION_TRACE("acpi_get_firmware_waking_vector");
 
        if (!physical_address) {
-               return_ACPI_STATUS (AE_BAD_PARAMETER);
+               return_ACPI_STATUS(AE_BAD_PARAMETER);
        }
 
        /* Get the vector */
 
        if (acpi_gbl_common_fACS.vector_width == 32) {
                *physical_address = (acpi_physical_address)
-                       *(ACPI_CAST_PTR (u32, acpi_gbl_common_fACS.firmware_waking_vector));
-       }
-       else {
+                   *
+                   (ACPI_CAST_PTR
+                    (u32, acpi_gbl_common_fACS.firmware_waking_vector));
+       } else {
                *physical_address =
-                       *acpi_gbl_common_fACS.firmware_waking_vector;
+                   *acpi_gbl_common_fACS.firmware_waking_vector;
        }
 
-       return_ACPI_STATUS (AE_OK);
+       return_ACPI_STATUS(AE_OK);
 }
 #endif
 
-
-/******************************************************************************
+/*******************************************************************************
  *
  * FUNCTION:    acpi_enter_sleep_state_prep
  *
@@ -156,25 +135,22 @@ acpi_get_firmware_waking_vector (
  *
  ******************************************************************************/
 
-acpi_status
-acpi_enter_sleep_state_prep (
-       u8                          sleep_state)
+acpi_status acpi_enter_sleep_state_prep(u8 sleep_state)
 {
-       acpi_status                 status;
-       struct acpi_object_list     arg_list;
-       union acpi_object           arg;
-
-
-       ACPI_FUNCTION_TRACE ("acpi_enter_sleep_state_prep");
+       acpi_status status;
+       struct acpi_object_list arg_list;
+       union acpi_object arg;
 
+       ACPI_FUNCTION_TRACE("acpi_enter_sleep_state_prep");
 
        /*
         * _PSW methods could be run here to enable wake-on keyboard, LAN, etc.
         */
-       status = acpi_get_sleep_type_data (sleep_state,
-                         &acpi_gbl_sleep_type_a, &acpi_gbl_sleep_type_b);
-       if (ACPI_FAILURE (status)) {
-               return_ACPI_STATUS (status);
+       status = acpi_get_sleep_type_data(sleep_state,
+                                         &acpi_gbl_sleep_type_a,
+                                         &acpi_gbl_sleep_type_b);
+       if (ACPI_FAILURE(status)) {
+               return_ACPI_STATUS(status);
        }
 
        /* Setup parameter object */
@@ -187,14 +163,14 @@ acpi_enter_sleep_state_prep (
 
        /* Run the _PTS and _GTS methods */
 
-       status = acpi_evaluate_object (NULL, METHOD_NAME__PTS, &arg_list, NULL);
-       if (ACPI_FAILURE (status) && status != AE_NOT_FOUND) {
-               return_ACPI_STATUS (status);
+       status = acpi_evaluate_object(NULL, METHOD_NAME__PTS, &arg_list, NULL);
+       if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
+               return_ACPI_STATUS(status);
        }
 
-       status = acpi_evaluate_object (NULL, METHOD_NAME__GTS, &arg_list, NULL);
-       if (ACPI_FAILURE (status) && status != AE_NOT_FOUND) {
-               return_ACPI_STATUS (status);
+       status = acpi_evaluate_object(NULL, METHOD_NAME__GTS, &arg_list, NULL);
+       if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
+               return_ACPI_STATUS(status);
        }
 
        /* Setup the argument to _SST */
@@ -215,22 +191,22 @@ acpi_enter_sleep_state_prep (
                break;
 
        default:
-               arg.integer.value = ACPI_SST_INDICATOR_OFF; /* Default is indicator off */
+               arg.integer.value = ACPI_SST_INDICATOR_OFF;     /* Default is off */
                break;
        }
 
        /* Set the system indicators to show the desired sleep state. */
 
-       status = acpi_evaluate_object (NULL, METHOD_NAME__SST, &arg_list, NULL);
-       if (ACPI_FAILURE (status) && status != AE_NOT_FOUND) {
-                ACPI_REPORT_ERROR (("Method _SST failed, %s\n", acpi_format_exception (status)));
+       status = acpi_evaluate_object(NULL, METHOD_NAME__SST, &arg_list, NULL);
+       if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
+               ACPI_EXCEPTION((AE_INFO, status,
+                               "While executing method _SST"));
        }
 
-       return_ACPI_STATUS (AE_OK);
+       return_ACPI_STATUS(AE_OK);
 }
 
-
-/******************************************************************************
+/*******************************************************************************
  *
  * FUNCTION:    acpi_enter_sleep_state
  *
@@ -243,77 +219,81 @@ acpi_enter_sleep_state_prep (
  *
  ******************************************************************************/
 
-acpi_status asmlinkage
-acpi_enter_sleep_state (
-       u8                              sleep_state)
+acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state)
 {
-       u32                             PM1Acontrol;
-       u32                             PM1Bcontrol;
-       struct acpi_bit_register_info   *sleep_type_reg_info;
-       struct acpi_bit_register_info   *sleep_enable_reg_info;
-       u32                             in_value;
-       acpi_status                     status;
-
-
-       ACPI_FUNCTION_TRACE ("acpi_enter_sleep_state");
+       u32 PM1Acontrol;
+       u32 PM1Bcontrol;
+       struct acpi_bit_register_info *sleep_type_reg_info;
+       struct acpi_bit_register_info *sleep_enable_reg_info;
+       u32 in_value;
+       acpi_status status;
 
+       ACPI_FUNCTION_TRACE("acpi_enter_sleep_state");
 
        if ((acpi_gbl_sleep_type_a > ACPI_SLEEP_TYPE_MAX) ||
-               (acpi_gbl_sleep_type_b > ACPI_SLEEP_TYPE_MAX)) {
-               ACPI_REPORT_ERROR (("Sleep values out of range: A=%X B=%X\n",
-                       acpi_gbl_sleep_type_a, acpi_gbl_sleep_type_b));
-               return_ACPI_STATUS (AE_AML_OPERAND_VALUE);
+           (acpi_gbl_sleep_type_b > ACPI_SLEEP_TYPE_MAX)) {
+               ACPI_ERROR((AE_INFO, "Sleep values out of range: A=%X B=%X",
+                           acpi_gbl_sleep_type_a, acpi_gbl_sleep_type_b));
+               return_ACPI_STATUS(AE_AML_OPERAND_VALUE);
        }
 
-       sleep_type_reg_info = acpi_hw_get_bit_register_info (ACPI_BITREG_SLEEP_TYPE_A);
-       sleep_enable_reg_info = acpi_hw_get_bit_register_info (ACPI_BITREG_SLEEP_ENABLE);
+       sleep_type_reg_info =
+           acpi_hw_get_bit_register_info(ACPI_BITREG_SLEEP_TYPE_A);
+       sleep_enable_reg_info =
+           acpi_hw_get_bit_register_info(ACPI_BITREG_SLEEP_ENABLE);
 
        /* Clear wake status */
 
-       status = acpi_set_register (ACPI_BITREG_WAKE_STATUS, 1, ACPI_MTX_DO_NOT_LOCK);
-       if (ACPI_FAILURE (status)) {
-               return_ACPI_STATUS (status);
+       status =
+           acpi_set_register(ACPI_BITREG_WAKE_STATUS, 1, ACPI_MTX_DO_NOT_LOCK);
+       if (ACPI_FAILURE(status)) {
+               return_ACPI_STATUS(status);
        }
 
        /* Clear all fixed and general purpose status bits */
 
-       status = acpi_hw_clear_acpi_status (ACPI_MTX_DO_NOT_LOCK);
-       if (ACPI_FAILURE (status)) {
-               return_ACPI_STATUS (status);
+       status = acpi_hw_clear_acpi_status(ACPI_MTX_DO_NOT_LOCK);
+       if (ACPI_FAILURE(status)) {
+               return_ACPI_STATUS(status);
        }
 
        /*
         * 1) Disable/Clear all GPEs
         * 2) Enable all wakeup GPEs
         */
-       status = acpi_hw_disable_all_gpes (ACPI_ISR);
-       if (ACPI_FAILURE (status)) {
-               return_ACPI_STATUS (status);
+       status = acpi_hw_disable_all_gpes();
+       if (ACPI_FAILURE(status)) {
+               return_ACPI_STATUS(status);
        }
        acpi_gbl_system_awake_and_running = FALSE;
 
-       status = acpi_hw_enable_all_wakeup_gpes (ACPI_ISR);
-       if (ACPI_FAILURE (status)) {
-               return_ACPI_STATUS (status);
+       status = acpi_hw_enable_all_wakeup_gpes();
+       if (ACPI_FAILURE(status)) {
+               return_ACPI_STATUS(status);
        }
 
        /* Get current value of PM1A control */
 
-       status = acpi_hw_register_read (ACPI_MTX_DO_NOT_LOCK, ACPI_REGISTER_PM1_CONTROL, &PM1Acontrol);
-       if (ACPI_FAILURE (status)) {
-               return_ACPI_STATUS (status);
+       status = acpi_hw_register_read(ACPI_MTX_DO_NOT_LOCK,
+                                      ACPI_REGISTER_PM1_CONTROL, &PM1Acontrol);
+       if (ACPI_FAILURE(status)) {
+               return_ACPI_STATUS(status);
        }
-       ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "Entering sleep state [S%d]\n", sleep_state));
+       ACPI_DEBUG_PRINT((ACPI_DB_INIT,
+                         "Entering sleep state [S%d]\n", sleep_state));
 
        /* Clear SLP_EN and SLP_TYP fields */
 
-       PM1Acontrol &= ~(sleep_type_reg_info->access_bit_mask | sleep_enable_reg_info->access_bit_mask);
+       PM1Acontrol &= ~(sleep_type_reg_info->access_bit_mask |
+                        sleep_enable_reg_info->access_bit_mask);
        PM1Bcontrol = PM1Acontrol;
 
        /* Insert SLP_TYP bits */
 
-       PM1Acontrol |= (acpi_gbl_sleep_type_a << sleep_type_reg_info->bit_position);
-       PM1Bcontrol |= (acpi_gbl_sleep_type_b << sleep_type_reg_info->bit_position);
+       PM1Acontrol |=
+           (acpi_gbl_sleep_type_a << sleep_type_reg_info->bit_position);
+       PM1Bcontrol |=
+           (acpi_gbl_sleep_type_b << sleep_type_reg_info->bit_position);
 
        /*
         * We split the writes of SLP_TYP and SLP_EN to workaround
@@ -322,14 +302,18 @@ acpi_enter_sleep_state (
 
        /* Write #1: fill in SLP_TYP data */
 
-       status = acpi_hw_register_write (ACPI_MTX_DO_NOT_LOCK, ACPI_REGISTER_PM1A_CONTROL, PM1Acontrol);
-       if (ACPI_FAILURE (status)) {
-               return_ACPI_STATUS (status);
+       status = acpi_hw_register_write(ACPI_MTX_DO_NOT_LOCK,
+                                       ACPI_REGISTER_PM1A_CONTROL,
+                                       PM1Acontrol);
+       if (ACPI_FAILURE(status)) {
+               return_ACPI_STATUS(status);
        }
 
-       status = acpi_hw_register_write (ACPI_MTX_DO_NOT_LOCK, ACPI_REGISTER_PM1B_CONTROL, PM1Bcontrol);
-       if (ACPI_FAILURE (status)) {
-               return_ACPI_STATUS (status);
+       status = acpi_hw_register_write(ACPI_MTX_DO_NOT_LOCK,
+                                       ACPI_REGISTER_PM1B_CONTROL,
+                                       PM1Bcontrol);
+       if (ACPI_FAILURE(status)) {
+               return_ACPI_STATUS(status);
        }
 
        /* Insert SLP_ENABLE bit */
@@ -339,56 +323,64 @@ acpi_enter_sleep_state (
 
        /* Write #2: SLP_TYP + SLP_EN */
 
-       ACPI_FLUSH_CPU_CACHE ();
+       ACPI_FLUSH_CPU_CACHE();
 
-       status = acpi_hw_register_write (ACPI_MTX_DO_NOT_LOCK, ACPI_REGISTER_PM1A_CONTROL, PM1Acontrol);
-       if (ACPI_FAILURE (status)) {
-               return_ACPI_STATUS (status);
+       status = acpi_hw_register_write(ACPI_MTX_DO_NOT_LOCK,
+                                       ACPI_REGISTER_PM1A_CONTROL,
+                                       PM1Acontrol);
+       if (ACPI_FAILURE(status)) {
+               return_ACPI_STATUS(status);
        }
 
-       status = acpi_hw_register_write (ACPI_MTX_DO_NOT_LOCK, ACPI_REGISTER_PM1B_CONTROL, PM1Bcontrol);
-       if (ACPI_FAILURE (status)) {
-               return_ACPI_STATUS (status);
+       status = acpi_hw_register_write(ACPI_MTX_DO_NOT_LOCK,
+                                       ACPI_REGISTER_PM1B_CONTROL,
+                                       PM1Bcontrol);
+       if (ACPI_FAILURE(status)) {
+               return_ACPI_STATUS(status);
        }
 
        if (sleep_state > ACPI_STATE_S3) {
                /*
-                * We wanted to sleep > S3, but it didn't happen (by virtue of the fact that
-                * we are still executing!)
+                * We wanted to sleep > S3, but it didn't happen (by virtue of the
+                * fact that we are still executing!)
                 *
-                * Wait ten seconds, then try again. This is to get S4/S5 to work on all machines.
+                * Wait ten seconds, then try again. This is to get S4/S5 to work on
+                * all machines.
                 *
                 * We wait so long to allow chipsets that poll this reg very slowly to
                 * still read the right value. Ideally, this block would go
                 * away entirely.
                 */
-               acpi_os_stall (10000000);
-
-               status = acpi_hw_register_write (ACPI_MTX_DO_NOT_LOCK, ACPI_REGISTER_PM1_CONTROL,
-                                sleep_enable_reg_info->access_bit_mask);
-               if (ACPI_FAILURE (status)) {
-                       return_ACPI_STATUS (status);
+               acpi_os_stall(10000000);
+
+               status = acpi_hw_register_write(ACPI_MTX_DO_NOT_LOCK,
+                                               ACPI_REGISTER_PM1_CONTROL,
+                                               sleep_enable_reg_info->
+                                               access_bit_mask);
+               if (ACPI_FAILURE(status)) {
+                       return_ACPI_STATUS(status);
                }
        }
 
        /* Wait until we enter sleep state */
 
        do {
-               status = acpi_get_register (ACPI_BITREG_WAKE_STATUS, &in_value, ACPI_MTX_DO_NOT_LOCK);
-               if (ACPI_FAILURE (status)) {
-                       return_ACPI_STATUS (status);
+               status = acpi_get_register(ACPI_BITREG_WAKE_STATUS, &in_value,
+                                          ACPI_MTX_DO_NOT_LOCK);
+               if (ACPI_FAILURE(status)) {
+                       return_ACPI_STATUS(status);
                }
 
                /* Spin until we wake */
 
        } while (!in_value);
 
-       return_ACPI_STATUS (AE_OK);
+       return_ACPI_STATUS(AE_OK);
 }
-EXPORT_SYMBOL(acpi_enter_sleep_state);
 
+EXPORT_SYMBOL(acpi_enter_sleep_state);
 
-/******************************************************************************
+/*******************************************************************************
  *
  * FUNCTION:    acpi_enter_sleep_state_s4bios
  *
@@ -401,60 +393,59 @@ EXPORT_SYMBOL(acpi_enter_sleep_state);
  *
  ******************************************************************************/
 
-acpi_status asmlinkage
-acpi_enter_sleep_state_s4bios (
-       void)
+acpi_status asmlinkage acpi_enter_sleep_state_s4bios(void)
 {
-       u32                             in_value;
-       acpi_status                     status;
+       u32 in_value;
+       acpi_status status;
 
+       ACPI_FUNCTION_TRACE("acpi_enter_sleep_state_s4bios");
 
-       ACPI_FUNCTION_TRACE ("acpi_enter_sleep_state_s4bios");
-
-
-       status = acpi_set_register (ACPI_BITREG_WAKE_STATUS, 1, ACPI_MTX_DO_NOT_LOCK);
-       if (ACPI_FAILURE (status)) {
-               return_ACPI_STATUS (status);
+       status =
+           acpi_set_register(ACPI_BITREG_WAKE_STATUS, 1, ACPI_MTX_DO_NOT_LOCK);
+       if (ACPI_FAILURE(status)) {
+               return_ACPI_STATUS(status);
        }
 
-       status = acpi_hw_clear_acpi_status (ACPI_MTX_DO_NOT_LOCK);
-       if (ACPI_FAILURE (status)) {
-               return_ACPI_STATUS (status);
+       status = acpi_hw_clear_acpi_status(ACPI_MTX_DO_NOT_LOCK);
+       if (ACPI_FAILURE(status)) {
+               return_ACPI_STATUS(status);
        }
 
        /*
         * 1) Disable/Clear all GPEs
         * 2) Enable all wakeup GPEs
         */
-       status = acpi_hw_disable_all_gpes (ACPI_ISR);
-       if (ACPI_FAILURE (status)) {
-               return_ACPI_STATUS (status);
+       status = acpi_hw_disable_all_gpes();
+       if (ACPI_FAILURE(status)) {
+               return_ACPI_STATUS(status);
        }
        acpi_gbl_system_awake_and_running = FALSE;
 
-       status = acpi_hw_enable_all_wakeup_gpes (ACPI_ISR);
-       if (ACPI_FAILURE (status)) {
-               return_ACPI_STATUS (status);
+       status = acpi_hw_enable_all_wakeup_gpes();
+       if (ACPI_FAILURE(status)) {
+               return_ACPI_STATUS(status);
        }
 
-       ACPI_FLUSH_CPU_CACHE ();
+       ACPI_FLUSH_CPU_CACHE();
 
-       status = acpi_os_write_port (acpi_gbl_FADT->smi_cmd, (u32) acpi_gbl_FADT->S4bios_req, 8);
+       status = acpi_os_write_port(acpi_gbl_FADT->smi_cmd,
+                                   (u32) acpi_gbl_FADT->S4bios_req, 8);
 
        do {
                acpi_os_stall(1000);
-               status = acpi_get_register (ACPI_BITREG_WAKE_STATUS, &in_value, ACPI_MTX_DO_NOT_LOCK);
-               if (ACPI_FAILURE (status)) {
-                       return_ACPI_STATUS (status);
+               status = acpi_get_register(ACPI_BITREG_WAKE_STATUS, &in_value,
+                                          ACPI_MTX_DO_NOT_LOCK);
+               if (ACPI_FAILURE(status)) {
+                       return_ACPI_STATUS(status);
                }
        } while (!in_value);
 
-       return_ACPI_STATUS (AE_OK);
+       return_ACPI_STATUS(AE_OK);
 }
-EXPORT_SYMBOL(acpi_enter_sleep_state_s4bios);
 
+EXPORT_SYMBOL(acpi_enter_sleep_state_s4bios);
 
-/******************************************************************************
+/*******************************************************************************
  *
  * FUNCTION:    acpi_leave_sleep_state
  *
@@ -467,55 +458,62 @@ EXPORT_SYMBOL(acpi_enter_sleep_state_s4bios);
  *
  ******************************************************************************/
 
-acpi_status
-acpi_leave_sleep_state (
-       u8                              sleep_state)
+acpi_status acpi_leave_sleep_state(u8 sleep_state)
 {
-       struct acpi_object_list         arg_list;
-       union acpi_object               arg;
-       acpi_status                     status;
-       struct acpi_bit_register_info   *sleep_type_reg_info;
-       struct acpi_bit_register_info   *sleep_enable_reg_info;
-       u32                             PM1Acontrol;
-       u32                             PM1Bcontrol;
-
-
-       ACPI_FUNCTION_TRACE ("acpi_leave_sleep_state");
+       struct acpi_object_list arg_list;
+       union acpi_object arg;
+       acpi_status status;
+       struct acpi_bit_register_info *sleep_type_reg_info;
+       struct acpi_bit_register_info *sleep_enable_reg_info;
+       u32 PM1Acontrol;
+       u32 PM1Bcontrol;
 
+       ACPI_FUNCTION_TRACE("acpi_leave_sleep_state");
 
        /*
         * Set SLP_TYPE and SLP_EN to state S0.
         * This is unclear from the ACPI Spec, but it is required
         * by some machines.
         */
-       status = acpi_get_sleep_type_data (ACPI_STATE_S0,
-                         &acpi_gbl_sleep_type_a, &acpi_gbl_sleep_type_b);
-       if (ACPI_SUCCESS (status)) {
-               sleep_type_reg_info = acpi_hw_get_bit_register_info (ACPI_BITREG_SLEEP_TYPE_A);
-               sleep_enable_reg_info = acpi_hw_get_bit_register_info (ACPI_BITREG_SLEEP_ENABLE);
+       status = acpi_get_sleep_type_data(ACPI_STATE_S0,
+                                         &acpi_gbl_sleep_type_a,
+                                         &acpi_gbl_sleep_type_b);
+       if (ACPI_SUCCESS(status)) {
+               sleep_type_reg_info =
+                   acpi_hw_get_bit_register_info(ACPI_BITREG_SLEEP_TYPE_A);
+               sleep_enable_reg_info =
+                   acpi_hw_get_bit_register_info(ACPI_BITREG_SLEEP_ENABLE);
 
                /* Get current value of PM1A control */
 
-               status = acpi_hw_register_read (ACPI_MTX_DO_NOT_LOCK,
-                                ACPI_REGISTER_PM1_CONTROL, &PM1Acontrol);
-               if (ACPI_SUCCESS (status)) {
+               status = acpi_hw_register_read(ACPI_MTX_DO_NOT_LOCK,
+                                              ACPI_REGISTER_PM1_CONTROL,
+                                              &PM1Acontrol);
+               if (ACPI_SUCCESS(status)) {
                        /* Clear SLP_EN and SLP_TYP fields */
 
                        PM1Acontrol &= ~(sleep_type_reg_info->access_bit_mask |
-                                          sleep_enable_reg_info->access_bit_mask);
+                                        sleep_enable_reg_info->
+                                        access_bit_mask);
                        PM1Bcontrol = PM1Acontrol;
 
                        /* Insert SLP_TYP bits */
 
-                       PM1Acontrol |= (acpi_gbl_sleep_type_a << sleep_type_reg_info->bit_position);
-                       PM1Bcontrol |= (acpi_gbl_sleep_type_b << sleep_type_reg_info->bit_position);
+                       PM1Acontrol |=
+                           (acpi_gbl_sleep_type_a << sleep_type_reg_info->
+                            bit_position);
+                       PM1Bcontrol |=
+                           (acpi_gbl_sleep_type_b << sleep_type_reg_info->
+                            bit_position);
 
                        /* Just ignore any errors */
 
-                       (void) acpi_hw_register_write (ACPI_MTX_DO_NOT_LOCK,
-                                         ACPI_REGISTER_PM1A_CONTROL, PM1Acontrol);
-                       (void) acpi_hw_register_write (ACPI_MTX_DO_NOT_LOCK,
-                                         ACPI_REGISTER_PM1B_CONTROL, PM1Bcontrol);
+                       (void)acpi_hw_register_write(ACPI_MTX_DO_NOT_LOCK,
+                                                    ACPI_REGISTER_PM1A_CONTROL,
+                                                    PM1Acontrol);
+                       (void)acpi_hw_register_write(ACPI_MTX_DO_NOT_LOCK,
+                                                    ACPI_REGISTER_PM1B_CONTROL,
+                                                    PM1Bcontrol);
                }
        }
 
@@ -532,20 +530,20 @@ acpi_leave_sleep_state (
        /* Ignore any errors from these methods */
 
        arg.integer.value = ACPI_SST_WAKING;
-       status = acpi_evaluate_object (NULL, METHOD_NAME__SST, &arg_list, NULL);
-       if (ACPI_FAILURE (status) && status != AE_NOT_FOUND) {
-               ACPI_REPORT_ERROR (("Method _SST failed, %s\n", acpi_format_exception (status)));
+       status = acpi_evaluate_object(NULL, METHOD_NAME__SST, &arg_list, NULL);
+       if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
+               ACPI_EXCEPTION((AE_INFO, status, "During Method _SST"));
        }
 
        arg.integer.value = sleep_state;
-       status = acpi_evaluate_object (NULL, METHOD_NAME__BFS, &arg_list, NULL);
-       if (ACPI_FAILURE (status) && status != AE_NOT_FOUND) {
-               ACPI_REPORT_ERROR (("Method _BFS failed, %s\n", acpi_format_exception (status)));
+       status = acpi_evaluate_object(NULL, METHOD_NAME__BFS, &arg_list, NULL);
+       if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
+               ACPI_EXCEPTION((AE_INFO, status, "During Method _BFS"));
        }
 
-       status = acpi_evaluate_object (NULL, METHOD_NAME__WAK, &arg_list, NULL);
-       if (ACPI_FAILURE (status) && status != AE_NOT_FOUND) {
-               ACPI_REPORT_ERROR (("Method _WAK failed, %s\n", acpi_format_exception (status)));
+       status = acpi_evaluate_object(NULL, METHOD_NAME__WAK, &arg_list, NULL);
+       if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
+               ACPI_EXCEPTION((AE_INFO, status, "During Method _WAK"));
        }
        /* TBD: _WAK "sometimes" returns stuff - do we want to look at it? */
 
@@ -554,29 +552,34 @@ acpi_leave_sleep_state (
         * 1) Disable/Clear all GPEs
         * 2) Enable all runtime GPEs
         */
-       status = acpi_hw_disable_all_gpes (ACPI_NOT_ISR);
-       if (ACPI_FAILURE (status)) {
-               return_ACPI_STATUS (status);
+       status = acpi_hw_disable_all_gpes();
+       if (ACPI_FAILURE(status)) {
+               return_ACPI_STATUS(status);
        }
        acpi_gbl_system_awake_and_running = TRUE;
 
-       status = acpi_hw_enable_all_runtime_gpes (ACPI_NOT_ISR);
-       if (ACPI_FAILURE (status)) {
-               return_ACPI_STATUS (status);
+       status = acpi_hw_enable_all_runtime_gpes();
+       if (ACPI_FAILURE(status)) {
+               return_ACPI_STATUS(status);
        }
 
        /* Enable power button */
 
-       (void) acpi_set_register(acpi_gbl_fixed_event_info[ACPI_EVENT_POWER_BUTTON].enable_register_id,
-                       1, ACPI_MTX_DO_NOT_LOCK);
-       (void) acpi_set_register(acpi_gbl_fixed_event_info[ACPI_EVENT_POWER_BUTTON].status_register_id,
-                       1, ACPI_MTX_DO_NOT_LOCK);
+       (void)
+           acpi_set_register(acpi_gbl_fixed_event_info
+                             [ACPI_EVENT_POWER_BUTTON].enable_register_id, 1,
+                             ACPI_MTX_DO_NOT_LOCK);
+
+       (void)
+           acpi_set_register(acpi_gbl_fixed_event_info
+                             [ACPI_EVENT_POWER_BUTTON].status_register_id, 1,
+                             ACPI_MTX_DO_NOT_LOCK);
 
        arg.integer.value = ACPI_SST_WORKING;
-       status = acpi_evaluate_object (NULL, METHOD_NAME__SST, &arg_list, NULL);
-       if (ACPI_FAILURE (status) && status != AE_NOT_FOUND) {
-               ACPI_REPORT_ERROR (("Method _SST failed, %s\n", acpi_format_exception (status)));
+       status = acpi_evaluate_object(NULL, METHOD_NAME__SST, &arg_list, NULL);
+       if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
+               ACPI_EXCEPTION((AE_INFO, status, "During Method _SST"));
        }
 
-       return_ACPI_STATUS (status);
+       return_ACPI_STATUS(status);
 }