ACK: [PATCH] ACPICA: Update to version 20160527

Alex Hung alex.hung at canonical.com
Tue May 31 01:49:18 UTC 2016


On 2016-05-31 04:53 AM, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> Changes in this release of ACPICA are detailed at the following
> link on the ACPICA developer mailing list:
>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
>   src/acpica/source/components/debugger/dbobject.c   |   4 +-
>   .../source/components/disassembler/dmopcode.c      |  11 +-
>   src/acpica/source/components/disassembler/dmwalk.c |  29 +--
>   src/acpica/source/components/dispatcher/dsutils.c  |  14 +-
>   src/acpica/source/components/executer/exfldio.c    |  15 +-
>   src/acpica/source/components/hardware/hwregs.c     | 239 +++------------------
>   src/acpica/source/components/namespace/nsaccess.c  |   4 +-
>   src/acpica/source/components/namespace/nsdump.c    |   2 +-
>   src/acpica/source/components/utilities/utdebug.c   |  42 ++++
>   src/acpica/source/components/utilities/utdecode.c  |   2 +-
>   src/acpica/source/include/acglobal.h               |   1 +
>   src/acpica/source/include/acmacros.h               |  16 --
>   src/acpica/source/include/acoutput.h               |   6 +-
>   src/acpica/source/include/acpixf.h                 |   2 +-
>   src/acpica/source/include/acutils.h                |  20 ++
>   src/acpica/source/include/platform/aclinux.h       |   8 +
>   16 files changed, 164 insertions(+), 251 deletions(-)
>
> diff --git a/src/acpica/source/components/debugger/dbobject.c b/src/acpica/source/components/debugger/dbobject.c
> index 1fa7b89..ff84385 100644
> --- a/src/acpica/source/components/debugger/dbobject.c
> +++ b/src/acpica/source/components/debugger/dbobject.c
> @@ -233,10 +233,10 @@ AcpiDbDecodeInternalObject (
>
>       case ACPI_TYPE_STRING:
>
> -        AcpiOsPrintf ("(%u) \"%.24s",
> +        AcpiOsPrintf ("(%u) \"%.60s",
>               ObjDesc->String.Length, ObjDesc->String.Pointer);
>
> -        if (ObjDesc->String.Length > 24)
> +        if (ObjDesc->String.Length > 60)
>           {
>               AcpiOsPrintf ("...");
>           }
> diff --git a/src/acpica/source/components/disassembler/dmopcode.c b/src/acpica/source/components/disassembler/dmopcode.c
> index f0204de..683fd0a 100644
> --- a/src/acpica/source/components/disassembler/dmopcode.c
> +++ b/src/acpica/source/components/disassembler/dmopcode.c
> @@ -1043,7 +1043,16 @@ AcpiDmDisassembleOneOp (
>
>       case AML_EXTERNAL_OP:
>
> -        break;
> +        if (AcpiGbl_DmEmitExternalOpcodes)
> +        {
> +            AcpiOsPrintf ("/* Opcode 0x15 */ ");
> +
> +            /* Fallthrough */
> +        }
> +        else
> +        {
> +            break;
> +        }
>
>       default:
>
> diff --git a/src/acpica/source/components/disassembler/dmwalk.c b/src/acpica/source/components/disassembler/dmwalk.c
> index 7c18065..34ab040 100644
> --- a/src/acpica/source/components/disassembler/dmwalk.c
> +++ b/src/acpica/source/components/disassembler/dmwalk.c
> @@ -534,21 +534,26 @@ AcpiDmDescendingOp (
>           {
>               NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMETER_LIST;
>
> -            /*
> -             * A Zero predicate indicates the possibility of one or more
> -             * External() opcodes within the If() block.
> -             */
> -            if (NextOp->Common.AmlOpcode == AML_ZERO_OP)
> -            {
> -                NextOp2 = NextOp->Common.Next;
> +            /* Don't emit the actual embedded externals unless asked */
>
> -                if (NextOp2 &&
> -                    (NextOp2->Common.AmlOpcode == AML_EXTERNAL_OP))
> +            if (!AcpiGbl_DmEmitExternalOpcodes)
> +            {
> +                /*
> +                 * A Zero predicate indicates the possibility of one or more
> +                 * External() opcodes within the If() block.
> +                 */
> +                if (NextOp->Common.AmlOpcode == AML_ZERO_OP)
>                   {
> -                    /* Ignore the If 0 block and all children */
> +                    NextOp2 = NextOp->Common.Next;
> +
> +                    if (NextOp2 &&
> +                        (NextOp2->Common.AmlOpcode == AML_EXTERNAL_OP))
> +                    {
> +                        /* Ignore the If 0 block and all children */
>
> -                    Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
> -                    return (AE_CTRL_DEPTH);
> +                        Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
> +                        return (AE_CTRL_DEPTH);
> +                    }
>                   }
>               }
>           }
> diff --git a/src/acpica/source/components/dispatcher/dsutils.c b/src/acpica/source/components/dispatcher/dsutils.c
> index 52e9ca8..1e049d4 100644
> --- a/src/acpica/source/components/dispatcher/dsutils.c
> +++ b/src/acpica/source/components/dispatcher/dsutils.c
> @@ -675,12 +675,14 @@ AcpiDsCreateOperand (
>                   }
>                   else if (ParentOp->Common.AmlOpcode == AML_EXTERNAL_OP)
>                   {
> -                    /* TBD: May only be temporary */
> -
> -                    ObjDesc = AcpiUtCreateStringObject ((ACPI_SIZE) NameLength);
> -
> -                    strncpy (ObjDesc->String.Pointer, NameString, NameLength);
> -                    Status = AE_OK;
> +                    /*
> +                     * This opcode should never appear here. It is used only
> +                     * by AML disassemblers and is surrounded by an If(0)
> +                     * by the ASL compiler.
> +                     *
> +                     * Therefore, if we see it here, it is a serious error.
> +                     */
> +                    Status = AE_AML_BAD_OPCODE;
>                   }
>                   else
>                   {
> diff --git a/src/acpica/source/components/executer/exfldio.c b/src/acpica/source/components/executer/exfldio.c
> index 578ba48..b7e86fd 100644
> --- a/src/acpica/source/components/executer/exfldio.c
> +++ b/src/acpica/source/components/executer/exfldio.c
> @@ -1018,9 +1018,20 @@ AcpiExInsertIntoField (
>
>       AccessBitWidth = ACPI_MUL_8 (ObjDesc->CommonField.AccessByteWidth);
>
> -    /* Create the bitmasks used for bit insertion */
> +    /*
> +     * Create the bitmasks used for bit insertion.
> +     * Note: This if/else is used to bypass compiler differences with the
> +     * shift operator
> +     */
> +    if (AccessBitWidth == ACPI_INTEGER_BIT_SIZE)
> +    {
> +        WidthMask = ACPI_UINT64_MAX;
> +    }
> +    else
> +    {
> +        WidthMask = ACPI_MASK_BITS_ABOVE (AccessBitWidth);
> +    }
>
> -    WidthMask = ACPI_MASK_BITS_ABOVE_64 (AccessBitWidth);
>       Mask = WidthMask &
>           ACPI_MASK_BITS_BELOW (ObjDesc->CommonField.StartFieldBitOffset);
>
> diff --git a/src/acpica/source/components/hardware/hwregs.c b/src/acpica/source/components/hardware/hwregs.c
> index 9e4c3bf..ffad33f 100644
> --- a/src/acpica/source/components/hardware/hwregs.c
> +++ b/src/acpica/source/components/hardware/hwregs.c
> @@ -126,11 +126,6 @@
>
>   /* Local Prototypes */
>
> -static UINT8
> -AcpiHwGetAccessBitWidth (
> -    ACPI_GENERIC_ADDRESS    *Reg,
> -    UINT8                   MaxBitWidth);
> -
>   static ACPI_STATUS
>   AcpiHwReadMultiple (
>       UINT32                  *Value,
> @@ -148,43 +143,6 @@ AcpiHwWriteMultiple (
>
>   /******************************************************************************
>    *
> - * FUNCTION:    AcpiHwGetAccessBitWidth
> - *
> - * PARAMETERS:  Reg                 - GAS register structure
> - *              MaxBitWidth         - Max BitWidth supported (32 or 64)
> - *
> - * RETURN:      Status
> - *
> - * DESCRIPTION: Obtain optimal access bit width
> - *
> - ******************************************************************************/
> -
> -static UINT8
> -AcpiHwGetAccessBitWidth (
> -    ACPI_GENERIC_ADDRESS    *Reg,
> -    UINT8                   MaxBitWidth)
> -{
> -
> -    if (!Reg->AccessWidth)
> -    {
> -        if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_IO)
> -        {
> -            return (32);
> -        }
> -        else
> -        {
> -            return (MaxBitWidth);
> -        }
> -    }
> -    else
> -    {
> -        return (1 << (Reg->AccessWidth + 2));
> -    }
> -}
> -
> -
> -/******************************************************************************
> - *
>    * FUNCTION:    AcpiHwValidateRegister
>    *
>    * PARAMETERS:  Reg                 - GAS register structure
> @@ -205,9 +163,6 @@ AcpiHwValidateRegister (
>       UINT8                   MaxBitWidth,
>       UINT64                  *Address)
>   {
> -    UINT8                   BitWidth;
> -    UINT8                   AccessWidth;
> -
>
>       /* Must have a valid pointer to a GAS structure */
>
> @@ -237,25 +192,24 @@ AcpiHwValidateRegister (
>           return (AE_SUPPORT);
>       }
>
> -    /* Validate the AccessWidth */
> +    /* Validate the BitWidth */
>
> -    if (Reg->AccessWidth > 4)
> +    if ((Reg->BitWidth != 8) &&
> +        (Reg->BitWidth != 16) &&
> +        (Reg->BitWidth != 32) &&
> +        (Reg->BitWidth != MaxBitWidth))
>       {
>           ACPI_ERROR ((AE_INFO,
> -            "Unsupported register access width: 0x%X", Reg->AccessWidth));
> +            "Unsupported register bit width: 0x%X", Reg->BitWidth));
>           return (AE_SUPPORT);
>       }
>
> -    /* Validate the BitWidth, convert AccessWidth into number of bits */
> +    /* Validate the BitOffset. Just a warning for now. */
>
> -    AccessWidth = AcpiHwGetAccessBitWidth (Reg, MaxBitWidth);
> -    BitWidth = ACPI_ROUND_UP (Reg->BitOffset + Reg->BitWidth, AccessWidth);
> -    if (MaxBitWidth < BitWidth)
> +    if (Reg->BitOffset != 0)
>       {
>           ACPI_WARNING ((AE_INFO,
> -            "Requested bit width 0x%X is smaller than register bit width 0x%X",
> -            MaxBitWidth, BitWidth));
> -        return (AE_SUPPORT);
> +            "Unsupported register bit offset: 0x%X", Reg->BitOffset));
>       }
>
>       return (AE_OK);
> @@ -276,7 +230,10 @@ AcpiHwValidateRegister (
>    *              64-bit values is not needed.
>    *
>    * LIMITATIONS: <These limitations also apply to AcpiHwWrite>
> + *      BitWidth must be exactly 8, 16, or 32.
>    *      SpaceID must be SystemMemory or SystemIO.
> + *      BitOffset and AccessWidth are currently ignored, as there has
> + *          not been a need to implement these.
>    *
>    ******************************************************************************/
>
> @@ -286,12 +243,7 @@ AcpiHwRead (
>       ACPI_GENERIC_ADDRESS    *Reg)
>   {
>       UINT64                  Address;
> -    UINT8                   AccessWidth;
> -    UINT32                  BitWidth;
> -    UINT8                   BitOffset;
>       UINT64                  Value64;
> -    UINT32                  Value32;
> -    UINT8                   Index;
>       ACPI_STATUS             Status;
>
>
> @@ -306,64 +258,30 @@ AcpiHwRead (
>           return (Status);
>       }
>
> -    /*
> -     * Initialize entire 32-bit return value to zero, convert AccessWidth
> -     * into number of bits based
> -     */
> +    /* Initialize entire 32-bit return value to zero */
> +
>       *Value = 0;
> -    AccessWidth = AcpiHwGetAccessBitWidth (Reg, 32);
> -    BitWidth = Reg->BitOffset + Reg->BitWidth;
> -    BitOffset = Reg->BitOffset;
>
>       /*
>        * Two address spaces supported: Memory or IO. PCI_Config is
>        * not supported here because the GAS structure is insufficient
>        */
> -    Index = 0;
> -    while (BitWidth)
> +    if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY)
>       {
> -        if (BitOffset > AccessWidth)
> -        {
> -            Value32 = 0;
> -            BitOffset -= AccessWidth;
> -        }
> -        else
> -        {
> -            if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY)
> -            {
> -                Status = AcpiOsReadMemory ((ACPI_PHYSICAL_ADDRESS)
> -                    Address + Index * ACPI_DIV_8 (AccessWidth),
> -                    &Value64, AccessWidth);
> -                Value32 = (UINT32) Value64;
> -            }
> -            else /* ACPI_ADR_SPACE_SYSTEM_IO, validated earlier */
> -            {
> -                Status = AcpiHwReadPort ((ACPI_IO_ADDRESS)
> -                    Address + Index * ACPI_DIV_8 (AccessWidth),
> -                    &Value32, AccessWidth);
> -            }
> -
> -            if (BitOffset)
> -            {
> -                Value32 &= ACPI_MASK_BITS_BELOW (BitOffset);
> -                BitOffset = 0;
> -            }
> -            if (BitWidth < AccessWidth)
> -            {
> -                Value32 &= ACPI_MASK_BITS_ABOVE (BitWidth);
> -            }
> -        }
> -
> -        ACPI_SET_BITS (Value, Index * AccessWidth,
> -            ACPI_MASK_BITS_ABOVE_32 (AccessWidth), Value32);
> +        Status = AcpiOsReadMemory ((ACPI_PHYSICAL_ADDRESS)
> +            Address, &Value64, Reg->BitWidth);
>
> -        BitWidth -= BitWidth > AccessWidth ? AccessWidth : BitWidth;
> -        Index++;
> +        *Value = (UINT32) Value64;
> +    }
> +    else /* ACPI_ADR_SPACE_SYSTEM_IO, validated earlier */
> +    {
> +        Status = AcpiHwReadPort ((ACPI_IO_ADDRESS)
> +            Address, Value, Reg->BitWidth);
>       }
>
>       ACPI_DEBUG_PRINT ((ACPI_DB_IO,
>           "Read:  %8.8X width %2d from %8.8X%8.8X (%s)\n",
> -        *Value, AccessWidth, ACPI_FORMAT_UINT64 (Address),
> +        *Value, Reg->BitWidth, ACPI_FORMAT_UINT64 (Address),
>           AcpiUtGetRegionName (Reg->SpaceId)));
>
>       return (Status);
> @@ -391,12 +309,6 @@ AcpiHwWrite (
>       ACPI_GENERIC_ADDRESS    *Reg)
>   {
>       UINT64                  Address;
> -    UINT8                   AccessWidth;
> -    UINT32                  BitWidth;
> -    UINT8                   BitOffset;
> -    UINT64                  Value64;
> -    UINT32                  NewValue32, OldValue32;
> -    UINT8                   Index;
>       ACPI_STATUS             Status;
>
>
> @@ -411,109 +323,24 @@ AcpiHwWrite (
>           return (Status);
>       }
>
> -    /* Convert AccessWidth into number of bits based */
> -
> -    AccessWidth = AcpiHwGetAccessBitWidth (Reg, 32);
> -    BitWidth = Reg->BitOffset + Reg->BitWidth;
> -    BitOffset = Reg->BitOffset;
> -
>       /*
>        * Two address spaces supported: Memory or IO. PCI_Config is
>        * not supported here because the GAS structure is insufficient
>        */
> -    Index = 0;
> -    while (BitWidth)
> +    if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY)
>       {
> -        NewValue32 = ACPI_GET_BITS (&Value, Index * AccessWidth,
> -            ACPI_MASK_BITS_ABOVE_32 (AccessWidth));
> -
> -        if (BitOffset > AccessWidth)
> -        {
> -            BitOffset -= AccessWidth;
> -        }
> -        else
> -        {
> -            if (BitOffset)
> -            {
> -                NewValue32 &= ACPI_MASK_BITS_BELOW (BitOffset);
> -            }
> -
> -            if (BitWidth < AccessWidth)
> -            {
> -                NewValue32 &= ACPI_MASK_BITS_ABOVE (BitWidth);
> -            }
> -
> -            if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY)
> -            {
> -                if (BitOffset || BitWidth < AccessWidth)
> -                {
> -                    /*
> -                     * Read old values in order not to modify the bits that
> -                     * are beyond the register BitWidth/BitOffset setting.
> -                     */
> -                    Status = AcpiOsReadMemory ((ACPI_PHYSICAL_ADDRESS)
> -                        Address + Index * ACPI_DIV_8 (AccessWidth),
> -                        &Value64, AccessWidth);
> -                    OldValue32 = (UINT32) Value64;
> -
> -                    if (BitOffset)
> -                    {
> -                        OldValue32 &= ACPI_MASK_BITS_ABOVE (BitOffset + 1);
> -                        BitOffset = 0;
> -                    }
> -
> -                    if (BitWidth < AccessWidth)
> -                    {
> -                        OldValue32 &= ACPI_MASK_BITS_BELOW (BitWidth - 1);
> -                    }
> -
> -                    NewValue32 |= OldValue32;
> -                }
> -
> -                Value64 = (UINT64) NewValue32;
> -                Status = AcpiOsWriteMemory ((ACPI_PHYSICAL_ADDRESS)
> -                    Address + Index * ACPI_DIV_8 (AccessWidth),
> -                    Value64, AccessWidth);
> -            }
> -            else /* ACPI_ADR_SPACE_SYSTEM_IO, validated earlier */
> -            {
> -                if (BitOffset || BitWidth < AccessWidth)
> -                {
> -                    /*
> -                     * Read old values in order not to modify the bits that
> -                     * are beyond the register BitWidth/BitOffset setting.
> -                     */
> -                    Status = AcpiHwReadPort ((ACPI_IO_ADDRESS)
> -                        Address + Index * ACPI_DIV_8 (AccessWidth),
> -                        &OldValue32, AccessWidth);
> -
> -                    if (BitOffset)
> -                    {
> -                        OldValue32 &= ACPI_MASK_BITS_ABOVE (BitOffset + 1);
> -                        BitOffset = 0;
> -                    }
> -
> -                    if (BitWidth < AccessWidth)
> -                    {
> -                        OldValue32 &= ACPI_MASK_BITS_BELOW (BitWidth - 1);
> -                    }
> -
> -                    NewValue32 |= OldValue32;
> -                }
> -
> -                Status = AcpiHwWritePort ((ACPI_IO_ADDRESS)
> -                    Address + Index * ACPI_DIV_8 (AccessWidth),
> -                    NewValue32, AccessWidth);
> -            }
> -        }
> -
> -        BitWidth -= BitWidth > AccessWidth ? AccessWidth : BitWidth;
> -        Index++;
> +        Status = AcpiOsWriteMemory ((ACPI_PHYSICAL_ADDRESS)
> +            Address, (UINT64) Value, Reg->BitWidth);
> +    }
> +    else /* ACPI_ADR_SPACE_SYSTEM_IO, validated earlier */
> +    {
> +        Status = AcpiHwWritePort ((ACPI_IO_ADDRESS)
> +            Address, Value, Reg->BitWidth);
>       }
>
>       ACPI_DEBUG_PRINT ((ACPI_DB_IO,
>           "Wrote: %8.8X width %2d   to %8.8X%8.8X (%s)\n",
> -        Value, AccessWidth, ACPI_FORMAT_UINT64 (Address),
> +        Value, Reg->BitWidth, ACPI_FORMAT_UINT64 (Address),
>           AcpiUtGetRegionName (Reg->SpaceId)));
>
>       return (Status);
> diff --git a/src/acpica/source/components/namespace/nsaccess.c b/src/acpica/source/components/namespace/nsaccess.c
> index 9ac25b1..a482dee 100644
> --- a/src/acpica/source/components/namespace/nsaccess.c
> +++ b/src/acpica/source/components/namespace/nsaccess.c
> @@ -188,8 +188,8 @@ AcpiNsRootInitialize (
>               continue;
>           }
>
> -        Status = AcpiNsLookup (NULL, (char *) InitVal->Name, InitVal->Type,
> -            ACPI_IMODE_LOAD_PASS2, ACPI_NS_NO_UPSEARCH,
> +        Status = AcpiNsLookup (NULL, ACPI_CAST_PTR (char, InitVal->Name),
> +            InitVal->Type, ACPI_IMODE_LOAD_PASS2, ACPI_NS_NO_UPSEARCH,
>               NULL, &NewNode);
>           if (ACPI_FAILURE (Status))
>           {
> diff --git a/src/acpica/source/components/namespace/nsdump.c b/src/acpica/source/components/namespace/nsdump.c
> index ff84b3b..a3ae6b2 100644
> --- a/src/acpica/source/components/namespace/nsdump.c
> +++ b/src/acpica/source/components/namespace/nsdump.c
> @@ -454,7 +454,7 @@ AcpiNsDumpOneObject (
>           case ACPI_TYPE_STRING:
>
>               AcpiOsPrintf ("Len %.2X ", ObjDesc->String.Length);
> -            AcpiUtPrintString (ObjDesc->String.Pointer, 32);
> +            AcpiUtPrintString (ObjDesc->String.Pointer, 80);
>               AcpiOsPrintf ("\n");
>               break;
>
> diff --git a/src/acpica/source/components/utilities/utdebug.c b/src/acpica/source/components/utilities/utdebug.c
> index b68d36e..4d2b306 100644
> --- a/src/acpica/source/components/utilities/utdebug.c
> +++ b/src/acpica/source/components/utilities/utdebug.c
> @@ -704,6 +704,48 @@ AcpiUtPtrExit (
>
>   /*******************************************************************************
>    *
> + * FUNCTION:    AcpiUtStrExit
> + *
> + * PARAMETERS:  LineNumber          - Caller's line number
> + *              FunctionName        - Caller's procedure name
> + *              ModuleName          - Caller's module name
> + *              ComponentId         - Caller's component ID
> + *              String              - String to display
> + *
> + * RETURN:      None
> + *
> + * DESCRIPTION: Function exit trace. Prints only if TRACE_FUNCTIONS bit is
> + *              set in DebugLevel. Prints exit value also.
> + *
> + ******************************************************************************/
> +
> +void
> +AcpiUtStrExit (
> +    UINT32                  LineNumber,
> +    const char              *FunctionName,
> +    const char              *ModuleName,
> +    UINT32                  ComponentId,
> +    const char              *String)
> +{
> +
> +    /* Check if enabled up-front for performance */
> +
> +    if (ACPI_IS_DEBUG_ENABLED (ACPI_LV_FUNCTIONS, ComponentId))
> +    {
> +        AcpiDebugPrint (ACPI_LV_FUNCTIONS,
> +            LineNumber, FunctionName, ModuleName, ComponentId,
> +            "%s %s\n", AcpiGbl_FunctionExitPrefix, String);
> +    }
> +
> +    if (AcpiGbl_NestingLevel)
> +    {
> +        AcpiGbl_NestingLevel--;
> +    }
> +}
> +
> +
> +/*******************************************************************************
> + *
>    * FUNCTION:    AcpiTracePoint
>    *
>    * PARAMETERS:  Type                - Trace event type
> diff --git a/src/acpica/source/components/utilities/utdecode.c b/src/acpica/source/components/utilities/utdecode.c
> index 7d1180d..dcfdfee 100644
> --- a/src/acpica/source/components/utilities/utdecode.c
> +++ b/src/acpica/source/components/utilities/utdecode.c
> @@ -356,7 +356,7 @@ AcpiUtGetObjectTypeName (
>           return_PTR ("Invalid object");
>       }
>
> -    return_PTR (AcpiUtGetTypeName (ObjDesc->Common.Type));
> +    return_STR (AcpiUtGetTypeName (ObjDesc->Common.Type));
>   }
>
>
> diff --git a/src/acpica/source/include/acglobal.h b/src/acpica/source/include/acglobal.h
> index 67a1672..2376312 100644
> --- a/src/acpica/source/include/acglobal.h
> +++ b/src/acpica/source/include/acglobal.h
> @@ -393,6 +393,7 @@ ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_IgnoreNoopOperator, FALSE);
>   ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_CstyleDisassembly, TRUE);
>   ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_ForceAmlDisassembly, FALSE);
>   ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_DmOpt_Verbose, TRUE);
> +ACPI_INIT_GLOBAL (BOOLEAN,              AcpiGbl_DmEmitExternalOpcodes, FALSE);
>
>   ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DmOpt_Disasm);
>   ACPI_GLOBAL (BOOLEAN,                   AcpiGbl_DmOpt_Listing);
> diff --git a/src/acpica/source/include/acmacros.h b/src/acpica/source/include/acmacros.h
> index d0514a1..a805a32 100644
> --- a/src/acpica/source/include/acmacros.h
> +++ b/src/acpica/source/include/acmacros.h
> @@ -336,30 +336,14 @@
>
>   #define ACPI_IS_MISALIGNED(value)           (((ACPI_SIZE) value) & (sizeof(ACPI_SIZE)-1))
>
> -/* Generic (power-of-two) rounding */
> -
> -#define ACPI_IS_POWER_OF_TWO(a)             (((a) & ((a) - 1)) == 0)
> -
>   /*
>    * Bitmask creation
>    * Bit positions start at zero.
>    * MASK_BITS_ABOVE creates a mask starting AT the position and above
>    * MASK_BITS_BELOW creates a mask starting one bit BELOW the position
> - * MASK_BITS_ABOVE/BELOW accpets a bit offset to create a mask
> - * MASK_BITS_ABOVE/BELOW_32/64 accpets a bit width to create a mask
> - * Note: The ACPI_INTEGER_BIT_SIZE check is used to bypass compiler
> - * differences with the shift operator
>    */
>   #define ACPI_MASK_BITS_ABOVE(position)      (~((ACPI_UINT64_MAX) << ((UINT32) (position))))
>   #define ACPI_MASK_BITS_BELOW(position)      ((ACPI_UINT64_MAX) << ((UINT32) (position)))
> -#define ACPI_MASK_BITS_ABOVE_32(width)      ((UINT32) ACPI_MASK_BITS_ABOVE(width))
> -#define ACPI_MASK_BITS_BELOW_32(width)      ((UINT32) ACPI_MASK_BITS_BELOW(width))
> -#define ACPI_MASK_BITS_ABOVE_64(width)      ((width) == ACPI_INTEGER_BIT_SIZE ? \
> -                                                ACPI_UINT64_MAX : \
> -                                                ACPI_MASK_BITS_ABOVE(width))
> -#define ACPI_MASK_BITS_BELOW_64(width)      ((width) == ACPI_INTEGER_BIT_SIZE ? \
> -                                                (UINT64) 0 : \
> -                                                ACPI_MASK_BITS_BELOW(width))
>
>   /* Bitfields within ACPI registers */
>
> diff --git a/src/acpica/source/include/acoutput.h b/src/acpica/source/include/acoutput.h
> index 6877044..717a2c3 100644
> --- a/src/acpica/source/include/acoutput.h
> +++ b/src/acpica/source/include/acoutput.h
> @@ -444,7 +444,7 @@
>       ACPI_TRACE_ENTRY (Name, AcpiUtTraceU32, UINT32, Value)
>
>   #define ACPI_FUNCTION_TRACE_STR(Name, String) \
> -    ACPI_TRACE_ENTRY (Name, AcpiUtTraceStr, char *, String)
> +    ACPI_TRACE_ENTRY (Name, AcpiUtTraceStr, const char *, String)
>
>   #define ACPI_FUNCTION_ENTRY() \
>       AcpiUtTrackStackPtr()
> @@ -504,6 +504,9 @@
>   #define return_PTR(Pointer) \
>       ACPI_TRACE_EXIT (AcpiUtPtrExit, void *, Pointer)
>
> +#define return_STR(String) \
> +    ACPI_TRACE_EXIT (AcpiUtStrExit, const char *, String)
> +
>   #define return_VALUE(Value) \
>       ACPI_TRACE_EXIT (AcpiUtValueExit, UINT64, Value)
>
> @@ -558,6 +561,7 @@
>   #define return_VOID                     return
>   #define return_ACPI_STATUS(s)           return(s)
>   #define return_PTR(s)                   return(s)
> +#define return_STR(s)                   return(s)
>   #define return_VALUE(s)                 return(s)
>   #define return_UINT8(s)                 return(s)
>   #define return_UINT32(s)                return(s)
> diff --git a/src/acpica/source/include/acpixf.h b/src/acpica/source/include/acpixf.h
> index 6ced00d..2f939b1 100644
> --- a/src/acpica/source/include/acpixf.h
> +++ b/src/acpica/source/include/acpixf.h
> @@ -118,7 +118,7 @@
>
>   /* Current ACPICA subsystem version in YYYYMMDD format */
>
> -#define ACPI_CA_VERSION                 0x20160422
> +#define ACPI_CA_VERSION                 0x20160527
>
>   #include "acconfig.h"
>   #include "actypes.h"
> diff --git a/src/acpica/source/include/acutils.h b/src/acpica/source/include/acutils.h
> index b6f42d1..3fdca45 100644
> --- a/src/acpica/source/include/acutils.h
> +++ b/src/acpica/source/include/acutils.h
> @@ -187,13 +187,25 @@ extern const char                       *AcpiGbl_PtDecode[];
>   /*
>    * Common error message prefixes
>    */
> +#ifndef ACPI_MSG_ERROR
>   #define ACPI_MSG_ERROR          "ACPI Error: "
> +#endif
> +#ifndef ACPI_MSG_EXCEPTION
>   #define ACPI_MSG_EXCEPTION      "ACPI Exception: "
> +#endif
> +#ifndef ACPI_MSG_WARNING
>   #define ACPI_MSG_WARNING        "ACPI Warning: "
> +#endif
> +#ifndef ACPI_MSG_INFO
>   #define ACPI_MSG_INFO           "ACPI: "
> +#endif
>
> +#ifndef ACPI_MSG_BIOS_ERROR
>   #define ACPI_MSG_BIOS_ERROR     "ACPI BIOS Error (bug): "
> +#endif
> +#ifndef ACPI_MSG_BIOS_WARNING
>   #define ACPI_MSG_BIOS_WARNING   "ACPI BIOS Warning (bug): "
> +#endif
>
>   /*
>    * Common message suffix
> @@ -488,6 +500,14 @@ AcpiUtPtrExit (
>       UINT8                   *Ptr);
>
>   void
> +AcpiUtStrExit (
> +    UINT32                  LineNumber,
> +    const char              *FunctionName,
> +    const char              *ModuleName,
> +    UINT32                  ComponentId,
> +    const char              *String);
> +
> +void
>   AcpiUtDebugDumpBuffer (
>       UINT8                   *Buffer,
>       UINT32                  Count,
> diff --git a/src/acpica/source/include/platform/aclinux.h b/src/acpica/source/include/platform/aclinux.h
> index abbe1ea..9127735 100644
> --- a/src/acpica/source/include/platform/aclinux.h
> +++ b/src/acpica/source/include/platform/aclinux.h
> @@ -235,6 +235,14 @@
>   #define ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetNextFilename
>   #define ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCloseDirectory
>
> +#define ACPI_MSG_ERROR          KERN_ERR "ACPI Error: "
> +#define ACPI_MSG_EXCEPTION      KERN_ERR "ACPI Exception: "
> +#define ACPI_MSG_WARNING        KERN_WARNING "ACPI Warning: "
> +#define ACPI_MSG_INFO           KERN_INFO "ACPI: "
> +
> +#define ACPI_MSG_BIOS_ERROR     KERN_ERR "ACPI BIOS Error (bug): "
> +#define ACPI_MSG_BIOS_WARNING   KERN_WARNING "ACPI BIOS Warning (bug): "
> +
>   #else /* !__KERNEL__ */
>
>   #include <stdarg.h>
>

Acked-by: Alex Hung <alex.hung at canonical.com>



More information about the fwts-devel mailing list