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