Merge branch 'origin'
[pandora-kernel.git] / drivers / acpi / executer / exregion.c
index 723aaef..6a4cfdf 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
  * POSSIBILITY OF SUCH DAMAGES.
  */
 
-
 #include <acpi/acpi.h>
 #include <acpi/acinterp.h>
 
-
 #define _COMPONENT          ACPI_EXECUTER
-        ACPI_MODULE_NAME    ("exregion")
-
+ACPI_MODULE_NAME("exregion")
 
 /*******************************************************************************
  *
  * DESCRIPTION: Handler for the System Memory address space (Op Region)
  *
  ******************************************************************************/
-
 acpi_status
-acpi_ex_system_memory_space_handler (
-       u32                             function,
-       acpi_physical_address           address,
-       u32                             bit_width,
-       acpi_integer                    *value,
-       void                            *handler_context,
-       void                            *region_context)
+acpi_ex_system_memory_space_handler(u32 function,
+                                   acpi_physical_address address,
+                                   u32 bit_width,
+                                   acpi_integer * value,
+                                   void *handler_context, void *region_context)
 {
-       acpi_status                     status = AE_OK;
-       void                            *logical_addr_ptr = NULL;
-       struct acpi_mem_space_context   *mem_info = region_context;
-       u32                             length;
-       acpi_size                       window_size;
-#ifndef ACPI_MISALIGNED_TRANSFERS
-       u32                             remainder;
+       acpi_status status = AE_OK;
+       void *logical_addr_ptr = NULL;
+       struct acpi_mem_space_context *mem_info = region_context;
+       u32 length;
+       acpi_size window_size;
+#ifdef ACPI_MISALIGNMENT_NOT_SUPPORTED
+       u32 remainder;
 #endif
 
-       ACPI_FUNCTION_TRACE ("ex_system_memory_space_handler");
-
+       ACPI_FUNCTION_TRACE("ex_system_memory_space_handler");
 
        /* Validate and translate the bit width */
 
@@ -110,19 +103,20 @@ acpi_ex_system_memory_space_handler (
                break;
 
        default:
-               ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Invalid system_memory width %d\n",
-                       bit_width));
-               return_ACPI_STATUS (AE_AML_OPERAND_VALUE);
+               ACPI_ERROR((AE_INFO, "Invalid system_memory width %d",
+                           bit_width));
+               return_ACPI_STATUS(AE_AML_OPERAND_VALUE);
        }
 
-#ifndef ACPI_MISALIGNED_TRANSFERS
+#ifdef ACPI_MISALIGNMENT_NOT_SUPPORTED
        /*
         * Hardware does not support non-aligned data transfers, we must verify
         * the request.
         */
-       (void) acpi_ut_short_divide ((acpi_integer) address, length, NULL, &remainder);
+       (void)acpi_ut_short_divide((acpi_integer) address, length, NULL,
+                                  &remainder);
        if (remainder != 0) {
-               return_ACPI_STATUS (AE_AML_ALIGNMENT);
+               return_ACPI_STATUS(AE_AML_ALIGNMENT);
        }
 #endif
 
@@ -132,9 +126,10 @@ acpi_ex_system_memory_space_handler (
         *    2) Address beyond the current mapping?
         */
        if ((address < mem_info->mapped_physical_address) ||
-               (((acpi_integer) address + length) >
-                       ((acpi_integer)
-                       mem_info->mapped_physical_address + mem_info->mapped_length))) {
+           (((acpi_integer) address + length) > ((acpi_integer)
+                                                 mem_info->
+                                                 mapped_physical_address +
+                                                 mem_info->mapped_length))) {
                /*
                 * The request cannot be resolved by the current memory mapping;
                 * Delete the existing mapping and create a new one.
@@ -142,8 +137,8 @@ acpi_ex_system_memory_space_handler (
                if (mem_info->mapped_length) {
                        /* Valid mapping, delete it */
 
-                       acpi_os_unmap_memory (mem_info->mapped_logical_address,
-                                          mem_info->mapped_length);
+                       acpi_os_unmap_memory(mem_info->mapped_logical_address,
+                                            mem_info->mapped_length);
                }
 
                /*
@@ -151,7 +146,7 @@ acpi_ex_system_memory_space_handler (
                 * constrain the maximum mapping size to something reasonable.
                 */
                window_size = (acpi_size)
-                       ((mem_info->address + mem_info->length) - address);
+                   ((mem_info->address + mem_info->length) - address);
 
                if (window_size > ACPI_SYSMEM_REGION_WINDOW_SIZE) {
                        window_size = ACPI_SYSMEM_REGION_WINDOW_SIZE;
@@ -159,14 +154,16 @@ acpi_ex_system_memory_space_handler (
 
                /* Create a new mapping starting at the address given */
 
-               status = acpi_os_map_memory (address, window_size,
-                                 (void **) &mem_info->mapped_logical_address);
-               if (ACPI_FAILURE (status)) {
-                       ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
-                               "Could not map memory at %8.8X%8.8X, size %X\n",
-                               ACPI_FORMAT_UINT64 (address), (u32) window_size));
+               status = acpi_os_map_memory(address, window_size,
+                                           (void **)&mem_info->
+                                           mapped_logical_address);
+               if (ACPI_FAILURE(status)) {
+                       ACPI_ERROR((AE_INFO,
+                                   "Could not map memory at %8.8X%8.8X, size %X",
+                                   ACPI_FORMAT_UINT64(address),
+                                   (u32) window_size));
                        mem_info->mapped_length = 0;
-                       return_ACPI_STATUS (status);
+                       return_ACPI_STATUS(status);
                }
 
                /* Save the physical address and mapping size */
@@ -180,42 +177,41 @@ acpi_ex_system_memory_space_handler (
         * access
         */
        logical_addr_ptr = mem_info->mapped_logical_address +
-                          ((acpi_integer) address -
-                                         (acpi_integer) mem_info->mapped_physical_address);
-
-       ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-                       "system_memory %d (%d width) Address=%8.8X%8.8X\n",
-                       function, bit_width,
-                       ACPI_FORMAT_UINT64 (address)));
-
-   /*
-       * Perform the memory read or write
-       *
-       * Note: For machines that do not support non-aligned transfers, the target
-       * address was checked for alignment above.  We do not attempt to break the
-       * transfer up into smaller (byte-size) chunks because the AML specifically
-       * asked for a transfer width that the hardware may require.
-       */
+           ((acpi_integer) address -
+            (acpi_integer) mem_info->mapped_physical_address);
+
+       ACPI_DEBUG_PRINT((ACPI_DB_INFO,
+                         "system_memory %d (%d width) Address=%8.8X%8.8X\n",
+                         function, bit_width, ACPI_FORMAT_UINT64(address)));
+
+       /*
+        * Perform the memory read or write
+        *
+        * Note: For machines that do not support non-aligned transfers, the target
+        * address was checked for alignment above.  We do not attempt to break the
+        * transfer up into smaller (byte-size) chunks because the AML specifically
+        * asked for a transfer width that the hardware may require.
+        */
        switch (function) {
        case ACPI_READ:
 
                *value = 0;
                switch (bit_width) {
                case 8:
-                       *value = (acpi_integer) *((u8 *) logical_addr_ptr);
+                       *value = (acpi_integer) ACPI_GET8(logical_addr_ptr);
                        break;
 
                case 16:
-                       *value = (acpi_integer) *((u16 *) logical_addr_ptr);
+                       *value = (acpi_integer) ACPI_GET16(logical_addr_ptr);
                        break;
 
                case 32:
-                       *value = (acpi_integer) *((u32 *) logical_addr_ptr);
+                       *value = (acpi_integer) ACPI_GET32(logical_addr_ptr);
                        break;
 
 #if ACPI_MACHINE_WIDTH != 16
                case 64:
-                       *value = (acpi_integer) *((u64 *) logical_addr_ptr);
+                       *value = (acpi_integer) ACPI_GET64(logical_addr_ptr);
                        break;
 #endif
                default:
@@ -228,20 +224,20 @@ acpi_ex_system_memory_space_handler (
 
                switch (bit_width) {
                case 8:
-                       *(u8 *) logical_addr_ptr = (u8) *value;
+                       ACPI_SET8(logical_addr_ptr) = (u8) * value;
                        break;
 
                case 16:
-                       *(u16 *) logical_addr_ptr = (u16) *value;
+                       ACPI_SET16(logical_addr_ptr) = (u16) * value;
                        break;
 
                case 32:
-                       *(u32 *) logical_addr_ptr = (u32) *value;
+                       ACPI_SET32(logical_addr_ptr) = (u32) * value;
                        break;
 
 #if ACPI_MACHINE_WIDTH != 16
                case 64:
-                       *(u64 *) logical_addr_ptr = (u64) *value;
+                       ACPI_SET64(logical_addr_ptr) = (u64) * value;
                        break;
 #endif
 
@@ -256,10 +252,9 @@ acpi_ex_system_memory_space_handler (
                break;
        }
 
-       return_ACPI_STATUS (status);
+       return_ACPI_STATUS(status);
 }
 
-
 /*******************************************************************************
  *
  * FUNCTION:    acpi_ex_system_io_space_handler
@@ -279,39 +274,35 @@ acpi_ex_system_memory_space_handler (
  ******************************************************************************/
 
 acpi_status
-acpi_ex_system_io_space_handler (
-       u32                             function,
-       acpi_physical_address           address,
-       u32                             bit_width,
-       acpi_integer                    *value,
-       void                            *handler_context,
-       void                            *region_context)
+acpi_ex_system_io_space_handler(u32 function,
+                               acpi_physical_address address,
+                               u32 bit_width,
+                               acpi_integer * value,
+                               void *handler_context, void *region_context)
 {
-       acpi_status                     status = AE_OK;
-       u32                             value32;
+       acpi_status status = AE_OK;
+       u32 value32;
 
+       ACPI_FUNCTION_TRACE("ex_system_io_space_handler");
 
-       ACPI_FUNCTION_TRACE ("ex_system_io_space_handler");
-
-
-       ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-                       "system_iO %d (%d width) Address=%8.8X%8.8X\n", function, bit_width,
-                       ACPI_FORMAT_UINT64 (address)));
+       ACPI_DEBUG_PRINT((ACPI_DB_INFO,
+                         "system_iO %d (%d width) Address=%8.8X%8.8X\n",
+                         function, bit_width, ACPI_FORMAT_UINT64(address)));
 
        /* Decode the function parameter */
 
        switch (function) {
        case ACPI_READ:
 
-               status = acpi_os_read_port ((acpi_io_address) address,
-                                &value32, bit_width);
+               status = acpi_os_read_port((acpi_io_address) address,
+                                          &value32, bit_width);
                *value = value32;
                break;
 
        case ACPI_WRITE:
 
-               status = acpi_os_write_port ((acpi_io_address) address,
-                                (u32) *value, bit_width);
+               status = acpi_os_write_port((acpi_io_address) address,
+                                           (u32) * value, bit_width);
                break;
 
        default:
@@ -319,10 +310,9 @@ acpi_ex_system_io_space_handler (
                break;
        }
 
-       return_ACPI_STATUS (status);
+       return_ACPI_STATUS(status);
 }
 
-
 /*******************************************************************************
  *
  * FUNCTION:    acpi_ex_pci_config_space_handler
@@ -342,21 +332,17 @@ acpi_ex_system_io_space_handler (
  ******************************************************************************/
 
 acpi_status
-acpi_ex_pci_config_space_handler (
-       u32                             function,
-       acpi_physical_address           address,
-       u32                             bit_width,
-       acpi_integer                    *value,
-       void                            *handler_context,
-       void                            *region_context)
+acpi_ex_pci_config_space_handler(u32 function,
+                                acpi_physical_address address,
+                                u32 bit_width,
+                                acpi_integer * value,
+                                void *handler_context, void *region_context)
 {
-       acpi_status                     status = AE_OK;
-       struct acpi_pci_id              *pci_id;
-       u16                             pci_register;
-
-
-       ACPI_FUNCTION_TRACE ("ex_pci_config_space_handler");
+       acpi_status status = AE_OK;
+       struct acpi_pci_id *pci_id;
+       u16 pci_register;
 
+       ACPI_FUNCTION_TRACE("ex_pci_config_space_handler");
 
        /*
         *  The arguments to acpi_os(Read|Write)pci_configuration are:
@@ -370,26 +356,26 @@ acpi_ex_pci_config_space_handler (
         *  Value - input value for write, output address for read
         *
         */
-       pci_id      = (struct acpi_pci_id *) region_context;
+       pci_id = (struct acpi_pci_id *)region_context;
        pci_register = (u16) (u32) address;
 
-       ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
-               "pci_config %d (%d) Seg(%04x) Bus(%04x) Dev(%04x) Func(%04x) Reg(%04x)\n",
-               function, bit_width, pci_id->segment, pci_id->bus, pci_id->device,
-               pci_id->function, pci_register));
+       ACPI_DEBUG_PRINT((ACPI_DB_INFO,
+                         "pci_config %d (%d) Seg(%04x) Bus(%04x) Dev(%04x) Func(%04x) Reg(%04x)\n",
+                         function, bit_width, pci_id->segment, pci_id->bus,
+                         pci_id->device, pci_id->function, pci_register));
 
        switch (function) {
        case ACPI_READ:
 
                *value = 0;
-               status = acpi_os_read_pci_configuration (pci_id, pci_register,
-                                value, bit_width);
+               status = acpi_os_read_pci_configuration(pci_id, pci_register,
+                                                       value, bit_width);
                break;
 
        case ACPI_WRITE:
 
-               status = acpi_os_write_pci_configuration (pci_id, pci_register,
-                                *value, bit_width);
+               status = acpi_os_write_pci_configuration(pci_id, pci_register,
+                                                        *value, bit_width);
                break;
 
        default:
@@ -398,10 +384,9 @@ acpi_ex_pci_config_space_handler (
                break;
        }
 
-       return_ACPI_STATUS (status);
+       return_ACPI_STATUS(status);
 }
 
-
 /*******************************************************************************
  *
  * FUNCTION:    acpi_ex_cmos_space_handler
@@ -421,24 +406,19 @@ acpi_ex_pci_config_space_handler (
  ******************************************************************************/
 
 acpi_status
-acpi_ex_cmos_space_handler (
-       u32                             function,
-       acpi_physical_address           address,
-       u32                             bit_width,
-       acpi_integer                    *value,
-       void                            *handler_context,
-       void                            *region_context)
+acpi_ex_cmos_space_handler(u32 function,
+                          acpi_physical_address address,
+                          u32 bit_width,
+                          acpi_integer * value,
+                          void *handler_context, void *region_context)
 {
-       acpi_status                     status = AE_OK;
-
+       acpi_status status = AE_OK;
 
-       ACPI_FUNCTION_TRACE ("ex_cmos_space_handler");
+       ACPI_FUNCTION_TRACE("ex_cmos_space_handler");
 
-
-       return_ACPI_STATUS (status);
+       return_ACPI_STATUS(status);
 }
 
-
 /*******************************************************************************
  *
  * FUNCTION:    acpi_ex_pci_bar_space_handler
@@ -458,24 +438,19 @@ acpi_ex_cmos_space_handler (
  ******************************************************************************/
 
 acpi_status
-acpi_ex_pci_bar_space_handler (
-       u32                             function,
-       acpi_physical_address           address,
-       u32                             bit_width,
-       acpi_integer                    *value,
-       void                            *handler_context,
-       void                            *region_context)
+acpi_ex_pci_bar_space_handler(u32 function,
+                             acpi_physical_address address,
+                             u32 bit_width,
+                             acpi_integer * value,
+                             void *handler_context, void *region_context)
 {
-       acpi_status                     status = AE_OK;
-
+       acpi_status status = AE_OK;
 
-       ACPI_FUNCTION_TRACE ("ex_pci_bar_space_handler");
+       ACPI_FUNCTION_TRACE("ex_pci_bar_space_handler");
 
-
-       return_ACPI_STATUS (status);
+       return_ACPI_STATUS(status);
 }
 
-
 /*******************************************************************************
  *
  * FUNCTION:    acpi_ex_data_table_space_handler
@@ -495,24 +470,20 @@ acpi_ex_pci_bar_space_handler (
  ******************************************************************************/
 
 acpi_status
-acpi_ex_data_table_space_handler (
-       u32                             function,
-       acpi_physical_address           address,
-       u32                             bit_width,
-       acpi_integer                    *value,
-       void                            *handler_context,
-       void                            *region_context)
+acpi_ex_data_table_space_handler(u32 function,
+                                acpi_physical_address address,
+                                u32 bit_width,
+                                acpi_integer * value,
+                                void *handler_context, void *region_context)
 {
-       acpi_status                     status = AE_OK;
-       u32                             byte_width = ACPI_DIV_8 (bit_width);
-       u32                             i;
-       char                            *logical_addr_ptr;
-
+       acpi_status status = AE_OK;
+       u32 byte_width = ACPI_DIV_8(bit_width);
+       u32 i;
+       char *logical_addr_ptr;
 
-       ACPI_FUNCTION_TRACE ("ex_data_table_space_handler");
+       ACPI_FUNCTION_TRACE("ex_data_table_space_handler");
 
-
-       logical_addr_ptr = ACPI_PHYSADDR_TO_PTR (address);
+       logical_addr_ptr = ACPI_PHYSADDR_TO_PTR(address);
 
        /* Perform the memory read or write */
 
@@ -520,17 +491,15 @@ acpi_ex_data_table_space_handler (
        case ACPI_READ:
 
                for (i = 0; i < byte_width; i++) {
-                       ((char *) value) [i] = logical_addr_ptr[i];
+                       ((char *)value)[i] = logical_addr_ptr[i];
                }
                break;
 
        case ACPI_WRITE:
        default:
 
-               return_ACPI_STATUS (AE_SUPPORT);
+               return_ACPI_STATUS(AE_SUPPORT);
        }
 
-       return_ACPI_STATUS (status);
+       return_ACPI_STATUS(status);
 }
-
-