diff options
Diffstat (limited to 'sys/contrib/dev/acpica/components/resources')
6 files changed, 23 insertions, 87 deletions
diff --git a/sys/contrib/dev/acpica/components/resources/rscalc.c b/sys/contrib/dev/acpica/components/resources/rscalc.c index 9dd3321..7fadb41 100644 --- a/sys/contrib/dev/acpica/components/resources/rscalc.c +++ b/sys/contrib/dev/acpica/components/resources/rscalc.c @@ -371,8 +371,8 @@ AcpiRsGetAmlLength ( break; - default: + break; } @@ -562,6 +562,7 @@ AcpiRsGetListLength ( break; default: + break; } @@ -676,7 +677,9 @@ AcpiRsGetPciRoutingTableLength ( NameFound = FALSE; - for (TableIndex = 0; TableIndex < 4 && !NameFound; TableIndex++) + for (TableIndex = 0; + TableIndex < PackageElement->Package.Count && !NameFound; + TableIndex++) { if (*SubObjectList && /* Null object allowed */ diff --git a/sys/contrib/dev/acpica/components/resources/rscreate.c b/sys/contrib/dev/acpica/components/resources/rscreate.c index 86c10aa..b599666 100644 --- a/sys/contrib/dev/acpica/components/resources/rscreate.c +++ b/sys/contrib/dev/acpica/components/resources/rscreate.c @@ -297,16 +297,6 @@ AcpiRsCreatePciRoutingTable ( */ UserPrt->Length = (sizeof (ACPI_PCI_ROUTING_TABLE) - 4); - /* Each element of the top-level package must also be a package */ - - if ((*TopObjectList)->Common.Type != ACPI_TYPE_PACKAGE) - { - ACPI_ERROR ((AE_INFO, - "(PRT[%u]) Need sub-package, found %s", - Index, AcpiUtGetObjectTypeName (*TopObjectList))); - return_ACPI_STATUS (AE_AML_OPERAND_TYPE); - } - /* Each sub-package must be of length 4 */ if ((*TopObjectList)->Package.Count != 4) @@ -349,23 +339,6 @@ AcpiRsCreatePciRoutingTable ( UserPrt->Pin = (UINT32) ObjDesc->Integer.Value; /* - * If the BIOS has erroneously reversed the _PRT SourceName (index 2) - * and the SourceIndex (index 3), fix it. _PRT is important enough to - * workaround this BIOS error. This also provides compatibility with - * other ACPI implementations. - */ - ObjDesc = SubObjectList[3]; - if (!ObjDesc || (ObjDesc->Common.Type != ACPI_TYPE_INTEGER)) - { - SubObjectList[3] = SubObjectList[2]; - SubObjectList[2] = ObjDesc; - - ACPI_WARNING ((AE_INFO, - "(PRT[%X].Source) SourceName and SourceIndex are reversed, fixed", - Index)); - } - - /* * 3) Third subobject: Dereference the PRT.SourceName * The name may be unresolved (slack mode), so allow a null object */ @@ -400,7 +373,6 @@ AcpiRsCreatePciRoutingTable ( UserPrt->Length += (UINT32) ACPI_STRLEN (UserPrt->Source) + 1; break; - case ACPI_TYPE_STRING: ACPI_STRCPY (UserPrt->Source, ObjDesc->String.Pointer); @@ -412,7 +384,6 @@ AcpiRsCreatePciRoutingTable ( UserPrt->Length += ObjDesc->String.Length + 1; break; - case ACPI_TYPE_INTEGER: /* * If this is a number, then the Source Name is NULL, since the @@ -423,7 +394,6 @@ AcpiRsCreatePciRoutingTable ( UserPrt->Length += sizeof (UINT32); break; - default: ACPI_ERROR ((AE_INFO, diff --git a/sys/contrib/dev/acpica/components/resources/rsdump.c b/sys/contrib/dev/acpica/components/resources/rsdump.c index e89f467..81c248c 100644 --- a/sys/contrib/dev/acpica/components/resources/rsdump.c +++ b/sys/contrib/dev/acpica/components/resources/rsdump.c @@ -168,16 +168,19 @@ AcpiRsDumpDescriptor ( /* Strings */ case ACPI_RSD_LITERAL: + AcpiRsOutString (Name, ACPI_CAST_PTR (char, Table->Pointer)); break; case ACPI_RSD_STRING: + AcpiRsOutString (Name, ACPI_CAST_PTR (char, Target)); break; /* Data items, 8/16/32/64 bit */ case ACPI_RSD_UINT8: + if (Table->Pointer) { AcpiRsOutString (Name, ACPI_CAST_PTR (char, @@ -190,30 +193,36 @@ AcpiRsDumpDescriptor ( break; case ACPI_RSD_UINT16: + AcpiRsOutInteger16 (Name, ACPI_GET16 (Target)); break; case ACPI_RSD_UINT32: + AcpiRsOutInteger32 (Name, ACPI_GET32 (Target)); break; case ACPI_RSD_UINT64: + AcpiRsOutInteger64 (Name, ACPI_GET64 (Target)); break; /* Flags: 1-bit and 2-bit flags supported */ case ACPI_RSD_1BITFLAG: + AcpiRsOutString (Name, ACPI_CAST_PTR (char, Table->Pointer [*Target & 0x01])); break; case ACPI_RSD_2BITFLAG: + AcpiRsOutString (Name, ACPI_CAST_PTR (char, Table->Pointer [*Target & 0x03])); break; case ACPI_RSD_3BITFLAG: + AcpiRsOutString (Name, ACPI_CAST_PTR (char, Table->Pointer [*Target & 0x07])); break; @@ -293,6 +302,7 @@ AcpiRsDumpDescriptor ( break; default: + AcpiOsPrintf ("**** Invalid table opcode [%X] ****\n", Table->Opcode); return; diff --git a/sys/contrib/dev/acpica/components/resources/rsmisc.c b/sys/contrib/dev/acpica/components/resources/rsmisc.c index c0687ca..e895add 100644 --- a/sys/contrib/dev/acpica/components/resources/rsmisc.c +++ b/sys/contrib/dev/acpica/components/resources/rsmisc.c @@ -137,17 +137,14 @@ AcpiRsConvertAmlToResource ( Resource->Length = INIT_RESOURCE_LENGTH (Info); break; - case ACPI_RSC_INITSET: break; - case ACPI_RSC_FLAGINIT: FlagsMode = TRUE; break; - case ACPI_RSC_1BITFLAG: /* * Mask and shift the flag bit @@ -156,7 +153,6 @@ AcpiRsConvertAmlToResource ( ((ACPI_GET8 (Source) >> Info->Value) & 0x01)); break; - case ACPI_RSC_2BITFLAG: /* * Mask and shift the flag bits @@ -165,7 +161,6 @@ AcpiRsConvertAmlToResource ( ((ACPI_GET8 (Source) >> Info->Value) & 0x03)); break; - case ACPI_RSC_3BITFLAG: /* * Mask and shift the flag bits @@ -174,7 +169,6 @@ AcpiRsConvertAmlToResource ( ((ACPI_GET8 (Source) >> Info->Value) & 0x07)); break; - case ACPI_RSC_COUNT: ItemCount = ACPI_GET8 (Source); @@ -184,7 +178,6 @@ AcpiRsConvertAmlToResource ( (Info->Value * (ItemCount - 1)); break; - case ACPI_RSC_COUNT16: ItemCount = AmlResourceLength; @@ -194,7 +187,6 @@ AcpiRsConvertAmlToResource ( (Info->Value * (ItemCount - 1)); break; - case ACPI_RSC_COUNT_GPIO_PIN: Target = ACPI_ADD_PTR (void, Aml, Info->Value); @@ -205,7 +197,6 @@ AcpiRsConvertAmlToResource ( ACPI_SET16 (Destination, ItemCount); break; - case ACPI_RSC_COUNT_GPIO_VEN: ItemCount = ACPI_GET8 (Source); @@ -215,9 +206,7 @@ AcpiRsConvertAmlToResource ( (Info->Value * ItemCount); break; - case ACPI_RSC_COUNT_GPIO_RES: - /* * Vendor data is optional (length/offset may both be zero) * Examine vendor data length field first @@ -243,7 +232,6 @@ AcpiRsConvertAmlToResource ( ACPI_SET16 (Destination, ItemCount); break; - case ACPI_RSC_COUNT_SERIAL_VEN: ItemCount = ACPI_GET16 (Source) - Info->Value; @@ -252,7 +240,6 @@ AcpiRsConvertAmlToResource ( ACPI_SET16 (Destination, ItemCount); break; - case ACPI_RSC_COUNT_SERIAL_RES: ItemCount = (AmlResourceLength + @@ -263,13 +250,11 @@ AcpiRsConvertAmlToResource ( ACPI_SET16 (Destination, ItemCount); break; - case ACPI_RSC_LENGTH: Resource->Length = Resource->Length + Info->Value; break; - case ACPI_RSC_MOVE8: case ACPI_RSC_MOVE16: case ACPI_RSC_MOVE32: @@ -285,7 +270,6 @@ AcpiRsConvertAmlToResource ( AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode); break; - case ACPI_RSC_MOVE_GPIO_PIN: /* Generate and set the PIN data pointer */ @@ -300,7 +284,6 @@ AcpiRsConvertAmlToResource ( AcpiRsMoveData (Target, Source, ItemCount, Info->Opcode); break; - case ACPI_RSC_MOVE_GPIO_RES: /* Generate and set the ResourceSource string pointer */ @@ -315,7 +298,6 @@ AcpiRsConvertAmlToResource ( AcpiRsMoveData (Target, Source, ItemCount, Info->Opcode); break; - case ACPI_RSC_MOVE_SERIAL_VEN: /* Generate and set the Vendor Data pointer */ @@ -330,7 +312,6 @@ AcpiRsConvertAmlToResource ( AcpiRsMoveData (Target, Source, ItemCount, Info->Opcode); break; - case ACPI_RSC_MOVE_SERIAL_RES: /* Generate and set the ResourceSource string pointer */ @@ -345,20 +326,17 @@ AcpiRsConvertAmlToResource ( AcpiRsMoveData (Target, Source, ItemCount, Info->Opcode); break; - case ACPI_RSC_SET8: ACPI_MEMSET (Destination, Info->AmlOffset, Info->Value); break; - case ACPI_RSC_DATA8: Target = ACPI_ADD_PTR (char, Resource, Info->Value); ACPI_MEMCPY (Destination, Source, ACPI_GET16 (Target)); break; - case ACPI_RSC_ADDRESS: /* * Common handler for address descriptor flags @@ -369,7 +347,6 @@ AcpiRsConvertAmlToResource ( } break; - case ACPI_RSC_SOURCE: /* * Optional ResourceSource (Index and String) @@ -379,7 +356,6 @@ AcpiRsConvertAmlToResource ( Destination, Aml, NULL); break; - case ACPI_RSC_SOURCEX: /* * Optional ResourceSource (Index and String). This is the more @@ -394,7 +370,6 @@ AcpiRsConvertAmlToResource ( Destination, Aml, Target); break; - case ACPI_RSC_BITMASK: /* * 8-bit encoded bitmask (DMA macro) @@ -409,7 +384,6 @@ AcpiRsConvertAmlToResource ( ACPI_SET8 (Target, ItemCount); break; - case ACPI_RSC_BITMASK16: /* * 16-bit encoded bitmask (IRQ macro) @@ -426,7 +400,6 @@ AcpiRsConvertAmlToResource ( ACPI_SET8 (Target, ItemCount); break; - case ACPI_RSC_EXIT_NE: /* * Control - Exit conversion if not equal @@ -434,6 +407,7 @@ AcpiRsConvertAmlToResource ( switch (Info->ResourceOffset) { case ACPI_RSC_COMPARE_AML_LENGTH: + if (AmlResourceLength != Info->Value) { goto Exit; @@ -441,6 +415,7 @@ AcpiRsConvertAmlToResource ( break; case ACPI_RSC_COMPARE_VALUE: + if (ACPI_GET8 (Source) != Info->Value) { goto Exit; @@ -454,7 +429,6 @@ AcpiRsConvertAmlToResource ( } break; - default: ACPI_ERROR ((AE_INFO, "Invalid conversion opcode")); @@ -538,11 +512,9 @@ AcpiRsConvertResourceToAml ( AcpiRsSetResourceHeader (INIT_RESOURCE_TYPE (Info), AmlLength, Aml); break; - case ACPI_RSC_INITGET: break; - case ACPI_RSC_FLAGINIT: /* * Clear the flag byte @@ -550,7 +522,6 @@ AcpiRsConvertResourceToAml ( ACPI_SET8 (Destination, 0); break; - case ACPI_RSC_1BITFLAG: /* * Mask and shift the flag bit @@ -559,7 +530,6 @@ AcpiRsConvertResourceToAml ( ((ACPI_GET8 (Source) & 0x01) << Info->Value)); break; - case ACPI_RSC_2BITFLAG: /* * Mask and shift the flag bits @@ -568,7 +538,6 @@ AcpiRsConvertResourceToAml ( ((ACPI_GET8 (Source) & 0x03) << Info->Value)); break; - case ACPI_RSC_3BITFLAG: /* * Mask and shift the flag bits @@ -577,7 +546,6 @@ AcpiRsConvertResourceToAml ( ((ACPI_GET8 (Source) & 0x07) << Info->Value)); break; - case ACPI_RSC_COUNT: ItemCount = ACPI_GET8 (Source); @@ -586,7 +554,6 @@ AcpiRsConvertResourceToAml ( AmlLength = (UINT16) (AmlLength + (Info->Value * (ItemCount - 1))); break; - case ACPI_RSC_COUNT16: ItemCount = ACPI_GET16 (Source); @@ -594,7 +561,6 @@ AcpiRsConvertResourceToAml ( AcpiRsSetResourceLength (AmlLength, Aml); break; - case ACPI_RSC_COUNT_GPIO_PIN: ItemCount = ACPI_GET16 (Source); @@ -606,7 +572,6 @@ AcpiRsConvertResourceToAml ( AcpiRsSetResourceLength (AmlLength, Aml); break; - case ACPI_RSC_COUNT_GPIO_VEN: ItemCount = ACPI_GET16 (Source); @@ -616,7 +581,6 @@ AcpiRsConvertResourceToAml ( AcpiRsSetResourceLength (AmlLength, Aml); break; - case ACPI_RSC_COUNT_GPIO_RES: /* Set resource source string length */ @@ -639,7 +603,6 @@ AcpiRsConvertResourceToAml ( AcpiRsSetResourceLength (AmlLength, Aml); break; - case ACPI_RSC_COUNT_SERIAL_VEN: ItemCount = ACPI_GET16 (Source); @@ -648,7 +611,6 @@ AcpiRsConvertResourceToAml ( AcpiRsSetResourceLength (AmlLength, Aml); break; - case ACPI_RSC_COUNT_SERIAL_RES: ItemCount = ACPI_GET16 (Source); @@ -656,13 +618,11 @@ AcpiRsConvertResourceToAml ( AcpiRsSetResourceLength (AmlLength, Aml); break; - case ACPI_RSC_LENGTH: AcpiRsSetResourceLength (Info->Value, Aml); break; - case ACPI_RSC_MOVE8: case ACPI_RSC_MOVE16: case ACPI_RSC_MOVE32: @@ -675,7 +635,6 @@ AcpiRsConvertResourceToAml ( AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode); break; - case ACPI_RSC_MOVE_GPIO_PIN: Destination = (char *) ACPI_ADD_PTR (void, Aml, @@ -684,7 +643,6 @@ AcpiRsConvertResourceToAml ( AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode); break; - case ACPI_RSC_MOVE_GPIO_RES: /* Used for both ResourceSource string and VendorData */ @@ -695,7 +653,6 @@ AcpiRsConvertResourceToAml ( AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode); break; - case ACPI_RSC_MOVE_SERIAL_VEN: Destination = (char *) ACPI_ADD_PTR (void, Aml, @@ -704,7 +661,6 @@ AcpiRsConvertResourceToAml ( AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode); break; - case ACPI_RSC_MOVE_SERIAL_RES: Destination = (char *) ACPI_ADD_PTR (void, Aml, @@ -713,7 +669,6 @@ AcpiRsConvertResourceToAml ( AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode); break; - case ACPI_RSC_ADDRESS: /* Set the Resource Type, General Flags, and Type-Specific Flags */ @@ -721,7 +676,6 @@ AcpiRsConvertResourceToAml ( AcpiRsSetAddressCommon (Aml, Resource); break; - case ACPI_RSC_SOURCEX: /* * Optional ResourceSource (Index and String) @@ -731,7 +685,6 @@ AcpiRsConvertResourceToAml ( AcpiRsSetResourceLength (AmlLength, Aml); break; - case ACPI_RSC_SOURCE: /* * Optional ResourceSource (Index and String). This is the more @@ -741,7 +694,6 @@ AcpiRsConvertResourceToAml ( AcpiRsSetResourceLength (AmlLength, Aml); break; - case ACPI_RSC_BITMASK: /* * 8-bit encoded bitmask (DMA macro) @@ -751,7 +703,6 @@ AcpiRsConvertResourceToAml ( *ACPI_ADD_PTR (UINT8, Resource, Info->Value))); break; - case ACPI_RSC_BITMASK16: /* * 16-bit encoded bitmask (IRQ macro) @@ -761,7 +712,6 @@ AcpiRsConvertResourceToAml ( ACPI_MOVE_16_TO_16 (Destination, &Temp16); break; - case ACPI_RSC_EXIT_LE: /* * Control - Exit conversion if less than or equal @@ -772,7 +722,6 @@ AcpiRsConvertResourceToAml ( } break; - case ACPI_RSC_EXIT_NE: /* * Control - Exit conversion if not equal @@ -795,7 +744,6 @@ AcpiRsConvertResourceToAml ( } break; - case ACPI_RSC_EXIT_EQ: /* * Control - Exit conversion if equal @@ -807,7 +755,6 @@ AcpiRsConvertResourceToAml ( } break; - default: ACPI_ERROR ((AE_INFO, "Invalid conversion opcode")); diff --git a/sys/contrib/dev/acpica/components/resources/rsutils.c b/sys/contrib/dev/acpica/components/resources/rsutils.c index b9ef66a..57f2e6e 100644 --- a/sys/contrib/dev/acpica/components/resources/rsutils.c +++ b/sys/contrib/dev/acpica/components/resources/rsutils.c @@ -176,6 +176,7 @@ AcpiRsMoveData ( case ACPI_RSC_MOVE_GPIO_RES: case ACPI_RSC_MOVE_SERIAL_VEN: case ACPI_RSC_MOVE_SERIAL_RES: + ACPI_MEMCPY (Destination, Source, ItemCount); return; @@ -186,21 +187,25 @@ AcpiRsMoveData ( */ case ACPI_RSC_MOVE16: case ACPI_RSC_MOVE_GPIO_PIN: + ACPI_MOVE_16_TO_16 (&ACPI_CAST_PTR (UINT16, Destination)[i], &ACPI_CAST_PTR (UINT16, Source)[i]); break; case ACPI_RSC_MOVE32: + ACPI_MOVE_32_TO_32 (&ACPI_CAST_PTR (UINT32, Destination)[i], &ACPI_CAST_PTR (UINT32, Source)[i]); break; case ACPI_RSC_MOVE64: + ACPI_MOVE_64_TO_64 (&ACPI_CAST_PTR (UINT64, Destination)[i], &ACPI_CAST_PTR (UINT64, Source)[i]); break; default: + return; } } diff --git a/sys/contrib/dev/acpica/components/resources/rsxface.c b/sys/contrib/dev/acpica/components/resources/rsxface.c index 557fa2f..b2ff381 100644 --- a/sys/contrib/dev/acpica/components/resources/rsxface.c +++ b/sys/contrib/dev/acpica/components/resources/rsxface.c @@ -452,6 +452,7 @@ AcpiResourceToAddress64 ( break; default: + return (AE_BAD_PARAMETER); } |