diff options
Diffstat (limited to 'usr/src/uts/intel/io/acpica/resources/rsio.c')
| -rw-r--r-- | usr/src/uts/intel/io/acpica/resources/rsio.c | 43 |
1 files changed, 39 insertions, 4 deletions
diff --git a/usr/src/uts/intel/io/acpica/resources/rsio.c b/usr/src/uts/intel/io/acpica/resources/rsio.c index 8cbc3c06c1..7c5deea1ef 100644 --- a/usr/src/uts/intel/io/acpica/resources/rsio.c +++ b/usr/src/uts/intel/io/acpica/resources/rsio.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: rsio - IO and DMA resource descriptors - * $Revision: 1.34 $ + * $Revision: 1.38 $ * ******************************************************************************/ @@ -9,7 +9,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2006, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2008, Intel Corp. * All rights reserved. * * 2. License @@ -272,7 +272,7 @@ ACPI_RSCONVERT_INFO AcpiRsConvertEndTag[2] = * ******************************************************************************/ -ACPI_RSCONVERT_INFO AcpiRsGetStartDpf[5] = +ACPI_RSCONVERT_INFO AcpiRsGetStartDpf[6] = { {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_START_DEPENDENT, ACPI_RS_SIZE (ACPI_RESOURCE_START_DEPENDENT), @@ -284,6 +284,12 @@ ACPI_RSCONVERT_INFO AcpiRsGetStartDpf[5] = ACPI_ACCEPTABLE_CONFIGURATION, 2}, + /* Get the descriptor length (0 or 1 for Start Dpf descriptor) */ + + {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.StartDpf.DescriptorLength), + AML_OFFSET (StartDpf.DescriptorType), + 0}, + /* All done if there is no flag byte present in the descriptor */ {ACPI_RSC_EXIT_NE, ACPI_RSC_COMPARE_AML_LENGTH, 0, 1}, @@ -306,8 +312,10 @@ ACPI_RSCONVERT_INFO AcpiRsGetStartDpf[5] = * ******************************************************************************/ -ACPI_RSCONVERT_INFO AcpiRsSetStartDpf[6] = +ACPI_RSCONVERT_INFO AcpiRsSetStartDpf[10] = { + /* Start with a default descriptor of length 1 */ + {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_START_DEPENDENT, sizeof (AML_RESOURCE_START_DEPENDENT), ACPI_RSC_TABLE_SIZE (AcpiRsSetStartDpf)}, @@ -322,6 +330,33 @@ ACPI_RSCONVERT_INFO AcpiRsSetStartDpf[6] = AML_OFFSET (StartDpf.Flags), 2}, /* + * All done if the output descriptor length is required to be 1 + * (i.e., optimization to 0 bytes cannot be attempted) + */ + {ACPI_RSC_EXIT_EQ, ACPI_RSC_COMPARE_VALUE, + ACPI_RS_OFFSET(Data.StartDpf.DescriptorLength), + 1}, + + /* Set length to 0 bytes (no flags byte) */ + + {ACPI_RSC_LENGTH, 0, 0, sizeof (AML_RESOURCE_START_DEPENDENT_NOPRIO)}, + + /* + * All done if the output descriptor length is required to be 0. + * + * TBD: Perhaps we should check for error if input flags are not + * compatible with a 0-byte descriptor. + */ + {ACPI_RSC_EXIT_EQ, ACPI_RSC_COMPARE_VALUE, + ACPI_RS_OFFSET(Data.StartDpf.DescriptorLength), + 0}, + + /* Reset length to 1 byte (descriptor with flags byte) */ + + {ACPI_RSC_LENGTH, 0, 0, sizeof (AML_RESOURCE_START_DEPENDENT)}, + + + /* * All done if flags byte is necessary -- if either priority value * is not ACPI_ACCEPTABLE_CONFIGURATION */ |
