]> err.no Git - linux-2.6/blobdiff - drivers/acpi/resources/rslist.c
Merge master.kernel.org:/home/rmk/linux-2.6-mmc
[linux-2.6] / drivers / acpi / resources / rslist.c
index e49c1e030f99f73af87ca7aef38df8d285fbc578..103eb31c284e5070d63fcc99bd111bf1e6c9b606 100644 (file)
  * POSSIBILITY OF SUCH DAMAGES.
  */
 
-
 #include <acpi/acpi.h>
 #include <acpi/acresrc.h>
 
 #define _COMPONENT          ACPI_RESOURCES
-        ACPI_MODULE_NAME    ("rslist")
-
+ACPI_MODULE_NAME("rslist")
 
 /*******************************************************************************
  *
  *
  * PARAMETERS:  resource_start_byte     - Byte 0 of a resource descriptor
  *
- * RETURN:      The Resource Type (Name) with no extraneous bits
+ * RETURN:      The Resource Type with no extraneous bits
  *
  * DESCRIPTION: Extract the Resource Type/Name from the first byte of
  *              a resource descriptor.
  *
  ******************************************************************************/
-
-u8
-acpi_rs_get_resource_type (
-       u8                              resource_start_byte)
+u8 acpi_rs_get_resource_type(u8 resource_start_byte)
 {
 
-       ACPI_FUNCTION_ENTRY ();
+       ACPI_FUNCTION_ENTRY();
 
+       /* Determine if this is a small or large resource */
 
-       /*
-        * Determine if this is a small or large resource
-        */
        switch (resource_start_byte & ACPI_RDESC_TYPE_MASK) {
        case ACPI_RDESC_TYPE_SMALL:
 
-               /*
-                * Small Resource Type -- Only bits 6:3 are valid
-                */
-               return ((u8) (resource_start_byte & ACPI_RDESC_SMALL_MASK));
+               /* Small Resource Type -- Only bits 6:3 are valid */
 
+               return ((u8) (resource_start_byte & ACPI_RDESC_SMALL_MASK));
 
        case ACPI_RDESC_TYPE_LARGE:
 
-               /*
-                * Large Resource Type -- All bits are valid
-                */
-               return (resource_start_byte);
+               /* Large Resource Type -- All bits are valid */
 
+               return (resource_start_byte);
 
        default:
-               /* No other types of resource descriptor */
+               /* Invalid type */
                break;
        }
 
        return (0xFF);
 }
 
-
 /*******************************************************************************
  *
  * FUNCTION:    acpi_rs_byte_stream_to_list
@@ -116,177 +104,189 @@ acpi_rs_get_resource_type (
  ******************************************************************************/
 
 acpi_status
-acpi_rs_byte_stream_to_list (
-       u8                              *byte_stream_buffer,
-       u32                             byte_stream_buffer_length,
-       u8                              *output_buffer)
+acpi_rs_byte_stream_to_list(u8 * byte_stream_buffer,
+                           u32 byte_stream_buffer_length, u8 * output_buffer)
 {
-       acpi_status                     status;
-       acpi_size                       bytes_parsed = 0;
-       u8                              resource_type = 0;
-       acpi_size                       bytes_consumed = 0;
-       u8                              *buffer = output_buffer;
-       acpi_size                       structure_size = 0;
-       u8                              end_tag_processed = FALSE;
-       struct acpi_resource            *resource;
+       acpi_status status;
+       acpi_size bytes_parsed = 0;
+       u8 resource_type = 0;
+       acpi_size bytes_consumed = 0;
+       u8 *buffer = output_buffer;
+       acpi_size structure_size = 0;
+       u8 end_tag_processed = FALSE;
+       struct acpi_resource *resource;
 
-       ACPI_FUNCTION_TRACE ("rs_byte_stream_to_list");
+       ACPI_FUNCTION_TRACE("rs_byte_stream_to_list");
 
+       while (bytes_parsed < byte_stream_buffer_length && !end_tag_processed) {
+               /* The next byte in the stream is the resource type */
 
-       while (bytes_parsed < byte_stream_buffer_length &&
-                       !end_tag_processed) {
-               /*
-                * The next byte in the stream is the resource type
-                */
-               resource_type = acpi_rs_get_resource_type (*byte_stream_buffer);
+               resource_type = acpi_rs_get_resource_type(*byte_stream_buffer);
 
                switch (resource_type) {
                case ACPI_RDESC_TYPE_MEMORY_24:
                        /*
                         * 24-Bit Memory Resource
                         */
-                       status = acpi_rs_memory24_resource (byte_stream_buffer,
-                                        &bytes_consumed, &buffer, &structure_size);
+                       status = acpi_rs_memory24_resource(byte_stream_buffer,
+                                                          &bytes_consumed,
+                                                          &buffer,
+                                                          &structure_size);
                        break;
 
-
                case ACPI_RDESC_TYPE_LARGE_VENDOR:
                        /*
                         * Vendor Defined Resource
                         */
-                       status = acpi_rs_vendor_resource (byte_stream_buffer,
-                                        &bytes_consumed, &buffer, &structure_size);
+                       status = acpi_rs_vendor_resource(byte_stream_buffer,
+                                                        &bytes_consumed,
+                                                        &buffer,
+                                                        &structure_size);
                        break;
 
-
                case ACPI_RDESC_TYPE_MEMORY_32:
                        /*
                         * 32-Bit Memory Range Resource
                         */
-                       status = acpi_rs_memory32_range_resource (byte_stream_buffer,
-                                        &bytes_consumed, &buffer, &structure_size);
+                       status =
+                           acpi_rs_memory32_range_resource(byte_stream_buffer,
+                                                           &bytes_consumed,
+                                                           &buffer,
+                                                           &structure_size);
                        break;
 
-
                case ACPI_RDESC_TYPE_FIXED_MEMORY_32:
                        /*
                         * 32-Bit Fixed Memory Resource
                         */
-                       status = acpi_rs_fixed_memory32_resource (byte_stream_buffer,
-                                        &bytes_consumed, &buffer, &structure_size);
+                       status =
+                           acpi_rs_fixed_memory32_resource(byte_stream_buffer,
+                                                           &bytes_consumed,
+                                                           &buffer,
+                                                           &structure_size);
                        break;
 
-
                case ACPI_RDESC_TYPE_QWORD_ADDRESS_SPACE:
                case ACPI_RDESC_TYPE_EXTENDED_ADDRESS_SPACE:
                        /*
                         * 64-Bit Address Resource
                         */
-                       status = acpi_rs_address64_resource (byte_stream_buffer,
-                                        &bytes_consumed, &buffer, &structure_size);
+                       status = acpi_rs_address64_resource(byte_stream_buffer,
+                                                           &bytes_consumed,
+                                                           &buffer,
+                                                           &structure_size);
                        break;
 
-
                case ACPI_RDESC_TYPE_DWORD_ADDRESS_SPACE:
                        /*
                         * 32-Bit Address Resource
                         */
-                       status = acpi_rs_address32_resource (byte_stream_buffer,
-                                        &bytes_consumed, &buffer, &structure_size);
+                       status = acpi_rs_address32_resource(byte_stream_buffer,
+                                                           &bytes_consumed,
+                                                           &buffer,
+                                                           &structure_size);
                        break;
 
-
                case ACPI_RDESC_TYPE_WORD_ADDRESS_SPACE:
                        /*
                         * 16-Bit Address Resource
                         */
-                       status = acpi_rs_address16_resource (byte_stream_buffer,
-                                        &bytes_consumed, &buffer, &structure_size);
+                       status = acpi_rs_address16_resource(byte_stream_buffer,
+                                                           &bytes_consumed,
+                                                           &buffer,
+                                                           &structure_size);
                        break;
 
-
                case ACPI_RDESC_TYPE_EXTENDED_XRUPT:
                        /*
                         * Extended IRQ
                         */
-                       status = acpi_rs_extended_irq_resource (byte_stream_buffer,
-                                        &bytes_consumed, &buffer, &structure_size);
+                       status =
+                           acpi_rs_extended_irq_resource(byte_stream_buffer,
+                                                         &bytes_consumed,
+                                                         &buffer,
+                                                         &structure_size);
                        break;
 
-
                case ACPI_RDESC_TYPE_IRQ_FORMAT:
                        /*
                         * IRQ Resource
                         */
-                       status = acpi_rs_irq_resource (byte_stream_buffer,
-                                        &bytes_consumed, &buffer, &structure_size);
+                       status = acpi_rs_irq_resource(byte_stream_buffer,
+                                                     &bytes_consumed, &buffer,
+                                                     &structure_size);
                        break;
 
-
                case ACPI_RDESC_TYPE_DMA_FORMAT:
                        /*
                         * DMA Resource
                         */
-                       status = acpi_rs_dma_resource (byte_stream_buffer,
-                                        &bytes_consumed, &buffer, &structure_size);
+                       status = acpi_rs_dma_resource(byte_stream_buffer,
+                                                     &bytes_consumed, &buffer,
+                                                     &structure_size);
                        break;
 
-
                case ACPI_RDESC_TYPE_START_DEPENDENT:
                        /*
                         * Start Dependent Functions Resource
                         */
-                       status = acpi_rs_start_depend_fns_resource (byte_stream_buffer,
-                                        &bytes_consumed, &buffer, &structure_size);
+                       status =
+                           acpi_rs_start_depend_fns_resource
+                           (byte_stream_buffer, &bytes_consumed, &buffer,
+                            &structure_size);
                        break;
 
-
                case ACPI_RDESC_TYPE_END_DEPENDENT:
                        /*
                         * End Dependent Functions Resource
                         */
-                       status = acpi_rs_end_depend_fns_resource (byte_stream_buffer,
-                                        &bytes_consumed, &buffer, &structure_size);
+                       status =
+                           acpi_rs_end_depend_fns_resource(byte_stream_buffer,
+                                                           &bytes_consumed,
+                                                           &buffer,
+                                                           &structure_size);
                        break;
 
-
                case ACPI_RDESC_TYPE_IO_PORT:
                        /*
                         * IO Port Resource
                         */
-                       status = acpi_rs_io_resource (byte_stream_buffer,
-                                        &bytes_consumed, &buffer, &structure_size);
+                       status = acpi_rs_io_resource(byte_stream_buffer,
+                                                    &bytes_consumed, &buffer,
+                                                    &structure_size);
                        break;
 
-
                case ACPI_RDESC_TYPE_FIXED_IO_PORT:
                        /*
                         * Fixed IO Port Resource
                         */
-                       status = acpi_rs_fixed_io_resource (byte_stream_buffer,
-                                        &bytes_consumed, &buffer, &structure_size);
+                       status = acpi_rs_fixed_io_resource(byte_stream_buffer,
+                                                          &bytes_consumed,
+                                                          &buffer,
+                                                          &structure_size);
                        break;
 
-
                case ACPI_RDESC_TYPE_SMALL_VENDOR:
                        /*
                         * Vendor Specific Resource
                         */
-                       status = acpi_rs_vendor_resource (byte_stream_buffer,
-                                        &bytes_consumed, &buffer, &structure_size);
+                       status = acpi_rs_vendor_resource(byte_stream_buffer,
+                                                        &bytes_consumed,
+                                                        &buffer,
+                                                        &structure_size);
                        break;
 
-
                case ACPI_RDESC_TYPE_END_TAG:
                        /*
                         * End Tag
                         */
                        end_tag_processed = TRUE;
-                       status = acpi_rs_end_tag_resource (byte_stream_buffer,
-                                        &bytes_consumed, &buffer, &structure_size);
+                       status = acpi_rs_end_tag_resource(byte_stream_buffer,
+                                                         &bytes_consumed,
+                                                         &buffer,
+                                                         &structure_size);
                        break;
 
-
                default:
                        /*
                         * Invalid/Unknown resource type
@@ -295,40 +295,35 @@ acpi_rs_byte_stream_to_list (
                        break;
                }
 
-               if (ACPI_FAILURE (status)) {
-                       return_ACPI_STATUS (status);
+               if (ACPI_FAILURE(status)) {
+                       return_ACPI_STATUS(status);
                }
 
-               /*
-                * Update the return value and counter
-                */
+               /* Update the return value and counter */
+
                bytes_parsed += bytes_consumed;
 
-               /*
-                * Set the byte stream to point to the next resource
-                */
+               /* Set the byte stream to point to the next resource */
+
                byte_stream_buffer += bytes_consumed;
 
-               /*
-                * Set the Buffer to the next structure
-                */
-               resource = ACPI_CAST_PTR (struct acpi_resource, buffer);
-               resource->length = (u32) ACPI_ALIGN_RESOURCE_SIZE (resource->length);
-               buffer += ACPI_ALIGN_RESOURCE_SIZE (structure_size);
+               /* Set the Buffer to the next structure */
+
+               resource = ACPI_CAST_PTR(struct acpi_resource, buffer);
+               resource->length =
+                   (u32) ACPI_ALIGN_RESOURCE_SIZE(resource->length);
+               buffer += ACPI_ALIGN_RESOURCE_SIZE(structure_size);
+       }
 
-       } /*  end while */
+       /* Check the reason for exiting the while loop */
 
-       /*
-        * Check the reason for exiting the while loop
-        */
        if (!end_tag_processed) {
-               return_ACPI_STATUS (AE_AML_NO_RESOURCE_END_TAG);
+               return_ACPI_STATUS(AE_AML_NO_RESOURCE_END_TAG);
        }
 
-       return_ACPI_STATUS (AE_OK);
+       return_ACPI_STATUS(AE_OK);
 }
 
-
 /*******************************************************************************
  *
  * FUNCTION:    acpi_rs_list_to_byte_stream
@@ -351,19 +346,16 @@ acpi_rs_byte_stream_to_list (
  ******************************************************************************/
 
 acpi_status
-acpi_rs_list_to_byte_stream (
-       struct acpi_resource            *linked_list,
-       acpi_size                       byte_stream_size_needed,
-       u8                              *output_buffer)
+acpi_rs_list_to_byte_stream(struct acpi_resource *linked_list,
+                           acpi_size byte_stream_size_needed,
+                           u8 * output_buffer)
 {
-       acpi_status                     status;
-       u8                              *buffer = output_buffer;
-       acpi_size                       bytes_consumed = 0;
-       u8                              done = FALSE;
-
-
-       ACPI_FUNCTION_TRACE ("rs_list_to_byte_stream");
+       acpi_status status;
+       u8 *buffer = output_buffer;
+       acpi_size bytes_consumed = 0;
+       u8 done = FALSE;
 
+       ACPI_FUNCTION_TRACE("rs_list_to_byte_stream");
 
        while (!done) {
                switch (linked_list->id) {
@@ -371,62 +363,75 @@ acpi_rs_list_to_byte_stream (
                        /*
                         * IRQ Resource
                         */
-                       status = acpi_rs_irq_stream (linked_list, &buffer, &bytes_consumed);
+                       status =
+                           acpi_rs_irq_stream(linked_list, &buffer,
+                                              &bytes_consumed);
                        break;
 
                case ACPI_RSTYPE_DMA:
                        /*
                         * DMA Resource
                         */
-                       status = acpi_rs_dma_stream (linked_list, &buffer, &bytes_consumed);
+                       status =
+                           acpi_rs_dma_stream(linked_list, &buffer,
+                                              &bytes_consumed);
                        break;
 
                case ACPI_RSTYPE_START_DPF:
                        /*
                         * Start Dependent Functions Resource
                         */
-                       status = acpi_rs_start_depend_fns_stream (linked_list,
-                                         &buffer, &bytes_consumed);
+                       status = acpi_rs_start_depend_fns_stream(linked_list,
+                                                                &buffer,
+                                                                &bytes_consumed);
                        break;
 
                case ACPI_RSTYPE_END_DPF:
                        /*
                         * End Dependent Functions Resource
                         */
-                       status = acpi_rs_end_depend_fns_stream (linked_list,
-                                         &buffer, &bytes_consumed);
+                       status = acpi_rs_end_depend_fns_stream(linked_list,
+                                                              &buffer,
+                                                              &bytes_consumed);
                        break;
 
                case ACPI_RSTYPE_IO:
                        /*
                         * IO Port Resource
                         */
-                       status = acpi_rs_io_stream (linked_list, &buffer, &bytes_consumed);
+                       status =
+                           acpi_rs_io_stream(linked_list, &buffer,
+                                             &bytes_consumed);
                        break;
 
                case ACPI_RSTYPE_FIXED_IO:
                        /*
                         * Fixed IO Port Resource
                         */
-                       status = acpi_rs_fixed_io_stream (linked_list, &buffer, &bytes_consumed);
+                       status =
+                           acpi_rs_fixed_io_stream(linked_list, &buffer,
+                                                   &bytes_consumed);
                        break;
 
                case ACPI_RSTYPE_VENDOR:
                        /*
                         * Vendor Defined Resource
                         */
-                       status = acpi_rs_vendor_stream (linked_list, &buffer, &bytes_consumed);
+                       status =
+                           acpi_rs_vendor_stream(linked_list, &buffer,
+                                                 &bytes_consumed);
                        break;
 
                case ACPI_RSTYPE_END_TAG:
                        /*
                         * End Tag
                         */
-                       status = acpi_rs_end_tag_stream (linked_list, &buffer, &bytes_consumed);
+                       status =
+                           acpi_rs_end_tag_stream(linked_list, &buffer,
+                                                  &bytes_consumed);
+
+                       /* An End Tag indicates the end of the Resource Template */
 
-                       /*
-                        * An End Tag indicates the end of the Resource Template
-                        */
                        done = TRUE;
                        break;
 
@@ -434,85 +439,87 @@ acpi_rs_list_to_byte_stream (
                        /*
                         * 24-Bit Memory Resource
                         */
-                       status = acpi_rs_memory24_stream (linked_list, &buffer, &bytes_consumed);
+                       status =
+                           acpi_rs_memory24_stream(linked_list, &buffer,
+                                                   &bytes_consumed);
                        break;
 
                case ACPI_RSTYPE_MEM32:
                        /*
                         * 32-Bit Memory Range Resource
                         */
-                       status = acpi_rs_memory32_range_stream (linked_list, &buffer,
-                                        &bytes_consumed);
+                       status =
+                           acpi_rs_memory32_range_stream(linked_list, &buffer,
+                                                         &bytes_consumed);
                        break;
 
                case ACPI_RSTYPE_FIXED_MEM32:
                        /*
                         * 32-Bit Fixed Memory Resource
                         */
-                       status = acpi_rs_fixed_memory32_stream (linked_list, &buffer,
-                                        &bytes_consumed);
+                       status =
+                           acpi_rs_fixed_memory32_stream(linked_list, &buffer,
+                                                         &bytes_consumed);
                        break;
 
                case ACPI_RSTYPE_ADDRESS16:
                        /*
                         * 16-Bit Address Descriptor Resource
                         */
-                       status = acpi_rs_address16_stream (linked_list, &buffer,
-                                        &bytes_consumed);
+                       status = acpi_rs_address16_stream(linked_list, &buffer,
+                                                         &bytes_consumed);
                        break;
 
                case ACPI_RSTYPE_ADDRESS32:
                        /*
                         * 32-Bit Address Descriptor Resource
                         */
-                       status = acpi_rs_address32_stream (linked_list, &buffer,
-                                        &bytes_consumed);
+                       status = acpi_rs_address32_stream(linked_list, &buffer,
+                                                         &bytes_consumed);
                        break;
 
                case ACPI_RSTYPE_ADDRESS64:
                        /*
                         * 64-Bit Address Descriptor Resource
                         */
-                       status = acpi_rs_address64_stream (linked_list, &buffer,
-                                        &bytes_consumed);
+                       status = acpi_rs_address64_stream(linked_list, &buffer,
+                                                         &bytes_consumed);
                        break;
 
                case ACPI_RSTYPE_EXT_IRQ:
                        /*
                         * Extended IRQ Resource
                         */
-                       status = acpi_rs_extended_irq_stream (linked_list, &buffer,
-                                        &bytes_consumed);
+                       status =
+                           acpi_rs_extended_irq_stream(linked_list, &buffer,
+                                                       &bytes_consumed);
                        break;
 
                default:
                        /*
                         * If we get here, everything is out of sync,
-                        *  so exit with an error
+                        * so exit with an error
                         */
-                       ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Invalid descriptor type (%X) in resource list\n",
-                               linked_list->id));
+                       ACPI_DEBUG_PRINT((ACPI_DB_ERROR,
+                                         "Invalid descriptor type (%X) in resource list\n",
+                                         linked_list->id));
                        status = AE_BAD_DATA;
                        break;
+               }
 
-               } /* switch (linked_list->Id) */
-
-               if (ACPI_FAILURE (status)) {
-                       return_ACPI_STATUS (status);
+               if (ACPI_FAILURE(status)) {
+                       return_ACPI_STATUS(status);
                }
 
-               /*
-                * Set the Buffer to point to the open byte
-                */
+               /* Set the Buffer to point to the open byte */
+
                buffer += bytes_consumed;
 
-               /*
-                * Point to the next object
-                */
-               linked_list = ACPI_PTR_ADD (struct acpi_resource,
-                                 linked_list, linked_list->length);
+               /* Point to the next object */
+
+               linked_list = ACPI_PTR_ADD(struct acpi_resource,
+                                          linked_list, linked_list->length);
        }
 
-       return_ACPI_STATUS (AE_OK);
+       return_ACPI_STATUS(AE_OK);
 }
-