diff mbox series

ACPICA: Update to version 20200717

Message ID 20200717223021.213648-1-colin.king@canonical.com
State Accepted
Headers show
Series ACPICA: Update to version 20200717 | expand

Commit Message

Colin Ian King July 17, 2020, 10:30 p.m. UTC
From: Colin Ian King <colin.king@canonical.com>

Changes in this release of ACPICA are detailed at the following
link on the ACPICA developer mailing list:

https://lists.acpica.org/hyperkitty/list/devel@acpica.org/thread/CXHTTCYQS6APX5VI4ZS6GC7WD7E5FD3B/

Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
 src/acpica/source/compiler/aslerror.c             |  2 +-
 src/acpica/source/compiler/aslexternal.c          |  8 ++++++++
 src/acpica/source/compiler/aslload.c              | 10 +++++-----
 src/acpica/source/compiler/aslmethod.c            | 12 ++++++++++++
 src/acpica/source/compiler/aslxref.c              |  4 +++-
 src/acpica/source/components/executer/exprep.c    |  4 ----
 src/acpica/source/components/utilities/utdelete.c |  6 +-----
 src/acpica/source/components/utilities/utids.c    |  2 +-
 src/acpica/source/include/acpixf.h                |  2 +-
 src/acpica/source/include/actypes.h               |  2 +-
 10 files changed, 33 insertions(+), 19 deletions(-)

Comments

Alex Hung July 21, 2020, 1:06 a.m. UTC | #1
On 2020-07-17 4:30 p.m., Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
> 
> Changes in this release of ACPICA are detailed at the following
> link on the ACPICA developer mailing list:
> 
> https://lists.acpica.org/hyperkitty/list/devel@acpica.org/thread/CXHTTCYQS6APX5VI4ZS6GC7WD7E5FD3B/
> 
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>  src/acpica/source/compiler/aslerror.c             |  2 +-
>  src/acpica/source/compiler/aslexternal.c          |  8 ++++++++
>  src/acpica/source/compiler/aslload.c              | 10 +++++-----
>  src/acpica/source/compiler/aslmethod.c            | 12 ++++++++++++
>  src/acpica/source/compiler/aslxref.c              |  4 +++-
>  src/acpica/source/components/executer/exprep.c    |  4 ----
>  src/acpica/source/components/utilities/utdelete.c |  6 +-----
>  src/acpica/source/components/utilities/utids.c    |  2 +-
>  src/acpica/source/include/acpixf.h                |  2 +-
>  src/acpica/source/include/actypes.h               |  2 +-
>  10 files changed, 33 insertions(+), 19 deletions(-)
> 
> diff --git a/src/acpica/source/compiler/aslerror.c b/src/acpica/source/compiler/aslerror.c
> index 8fae779d..15098342 100644
> --- a/src/acpica/source/compiler/aslerror.c
> +++ b/src/acpica/source/compiler/aslerror.c
> @@ -1056,7 +1056,7 @@ GetModifiedLevel (
>      UINT8                   Level,
>      UINT16                  MessageId)
>  {
> -    UINT16                  i;
> +    UINT32                  i;
>      UINT16                  ExceptionCode;
>  
>  
> diff --git a/src/acpica/source/compiler/aslexternal.c b/src/acpica/source/compiler/aslexternal.c
> index 315247be..a05ba118 100644
> --- a/src/acpica/source/compiler/aslexternal.c
> +++ b/src/acpica/source/compiler/aslexternal.c
> @@ -200,6 +200,14 @@ ExDoExternal (
>  
>  
>      ExternType = AnMapObjTypeToBtype (ExternTypeOp);
> +    if (ExternType != ACPI_BTYPE_METHOD)
> +    {
> +        /*
> +         * If this is not a method, it has zero parameters this local variable
> +         * is used only for methods
> +         */
> +        ParamCount = 0;
> +    }
>  
>      /*
>       * The parser allows optional parameter return types regardless of the
> diff --git a/src/acpica/source/compiler/aslload.c b/src/acpica/source/compiler/aslload.c
> index bdc0d805..454fa8f5 100644
> --- a/src/acpica/source/compiler/aslload.c
> +++ b/src/acpica/source/compiler/aslload.c
> @@ -1177,13 +1177,13 @@ LdAnalyzeExternals (
>           * previously declared External
>           */
>          Node->Flags &= ~ANOBJ_IS_EXTERNAL;
> -        Node->Type = (UINT8) ExternalOpType;
> +        Node->Type = (UINT8) ActualOpType;
>  
>          /* Just retyped a node, probably will need to open a scope */
>  
> -        if (AcpiNsOpensScope (ExternalOpType))
> +        if (AcpiNsOpensScope (ActualOpType))
>          {
> -            Status = AcpiDsScopeStackPush (Node, ExternalOpType, WalkState);
> +            Status = AcpiDsScopeStackPush (Node, ActualOpType, WalkState);
>              if (ACPI_FAILURE (Status))
>              {
>                  return (Status);
> @@ -1204,11 +1204,11 @@ LdAnalyzeExternals (
>      }
>      else if ((Node->Flags & ANOBJ_IS_EXTERNAL) &&
>               (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) &&
> -             (ExternalOpType == ACPI_TYPE_ANY))
> +             (ActualOpType == ACPI_TYPE_ANY))
>      {
>          /* Allow update of externals of unknown type. */
>  
> -        Node->Type = (UINT8) ExternalOpType;
> +        Node->Type = (UINT8) ActualExternalOpType;
>          Status = AE_OK;
>      }
>  
> diff --git a/src/acpica/source/compiler/aslmethod.c b/src/acpica/source/compiler/aslmethod.c
> index ff6fd474..32b4b123 100644
> --- a/src/acpica/source/compiler/aslmethod.c
> +++ b/src/acpica/source/compiler/aslmethod.c
> @@ -306,6 +306,8 @@ MtMethodAnalysisWalkBegin (
>          {
>              ActualArgs = MtProcessParameterTypeList (NextType,
>                  MethodInfo->ValidArgTypes);
> +            MethodInfo->NumArguments = ActualArgs;
> +            ArgNode->Asl.Value.Integer |= ActualArgs;
>          }
>  
>          if ((MethodInfo->NumArguments) &&
> @@ -671,6 +673,16 @@ MtProcessParameterTypeList (
>      UINT8                   ParameterCount = 0;
>  
>  
> +    if (ParamTypeOp && ParamTypeOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
> +    {
> +        /* Special case for a single parameter without braces */
> +
> +        TypeList[ParameterCount] =
> +            MtProcessTypeOp (ParamTypeOp);
> +
> +        return (1);
> +    }
> +
>      while (ParamTypeOp)
>      {
>          TypeList[ParameterCount] =
> diff --git a/src/acpica/source/compiler/aslxref.c b/src/acpica/source/compiler/aslxref.c
> index 4bbbe2bd..9306af20 100644
> --- a/src/acpica/source/compiler/aslxref.c
> +++ b/src/acpica/source/compiler/aslxref.c
> @@ -994,12 +994,14 @@ XfNamespaceLocateBegin (
>           * invocation of the method, it is simply a reference to the method.
>           *
>           * September 2016: Removed DeRefOf from this list
> +         * July 2020: Added Alias to this list
>           */
>          if ((Op->Asl.Parent) &&
>              ((Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_REFOF)     ||
>              (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_PACKAGE)    ||
>              (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_VAR_PACKAGE)||
> -            (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_OBJECTTYPE)))
> +            (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_OBJECTTYPE) ||
> +            (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_ALIAS)))
>          {
>              return_ACPI_STATUS (AE_OK);
>          }
> diff --git a/src/acpica/source/components/executer/exprep.c b/src/acpica/source/components/executer/exprep.c
> index 6ceac68f..3074366d 100644
> --- a/src/acpica/source/components/executer/exprep.c
> +++ b/src/acpica/source/components/executer/exprep.c
> @@ -651,10 +651,6 @@ AcpiExPrepFieldValue (
>              }
>          }
>  
> -        /* An additional reference for the container */
> -
> -        AcpiUtAddReference (ObjDesc->Field.RegionObj);
> -
>          ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
>              "RegionField: BitOff %X, Off %X, Gran %X, Region %p\n",
>              ObjDesc->Field.StartFieldBitOffset,
> diff --git a/src/acpica/source/components/utilities/utdelete.c b/src/acpica/source/components/utilities/utdelete.c
> index 502ff413..aafd5295 100644
> --- a/src/acpica/source/components/utilities/utdelete.c
> +++ b/src/acpica/source/components/utilities/utdelete.c
> @@ -749,11 +749,6 @@ AcpiUtUpdateObjectReference (
>              NextObject = Object->BufferField.BufferObj;
>              break;
>  
> -        case ACPI_TYPE_LOCAL_REGION_FIELD:
> -
> -            NextObject = Object->Field.RegionObj;
> -            break;
> -
>          case ACPI_TYPE_LOCAL_BANK_FIELD:
>  
>              NextObject = Object->BankField.BankObj;
> @@ -789,6 +784,7 @@ AcpiUtUpdateObjectReference (
>              }
>              break;
>  
> +        case ACPI_TYPE_LOCAL_REGION_FIELD:
>          case ACPI_TYPE_REGION:
>          default:
>  
> diff --git a/src/acpica/source/components/utilities/utids.c b/src/acpica/source/components/utilities/utids.c
> index e296c00a..34ae697a 100644
> --- a/src/acpica/source/components/utilities/utids.c
> +++ b/src/acpica/source/components/utilities/utids.c
> @@ -435,7 +435,7 @@ AcpiUtExecute_CID (
>       * 3) Size of the actual CID strings
>       */
>      CidListSize = sizeof (ACPI_PNP_DEVICE_ID_LIST) +
> -        ((Count - 1) * sizeof (ACPI_PNP_DEVICE_ID)) +
> +        (Count * sizeof (ACPI_PNP_DEVICE_ID)) +
>          StringAreaSize;
>  
>      CidList = ACPI_ALLOCATE_ZEROED (CidListSize);
> diff --git a/src/acpica/source/include/acpixf.h b/src/acpica/source/include/acpixf.h
> index 2eafdeac..c1b55401 100644
> --- a/src/acpica/source/include/acpixf.h
> +++ b/src/acpica/source/include/acpixf.h
> @@ -154,7 +154,7 @@
>  
>  /* Current ACPICA subsystem version in YYYYMMDD format */
>  
> -#define ACPI_CA_VERSION                 0x20200528
> +#define ACPI_CA_VERSION                 0x20200717
>  
>  #include "acconfig.h"
>  #include "actypes.h"
> diff --git a/src/acpica/source/include/actypes.h b/src/acpica/source/include/actypes.h
> index 2666ebfb..0ec14a36 100644
> --- a/src/acpica/source/include/actypes.h
> +++ b/src/acpica/source/include/actypes.h
> @@ -1379,7 +1379,7 @@ typedef struct acpi_pnp_device_id_list
>  {
>      UINT32                          Count;              /* Number of IDs in Ids array */
>      UINT32                          ListSize;           /* Size of list, including ID strings */
> -    ACPI_PNP_DEVICE_ID              Ids[1];             /* ID array */
> +    ACPI_PNP_DEVICE_ID              Ids[];              /* ID array */
>  
>  } ACPI_PNP_DEVICE_ID_LIST;
>  
> 
Acked-by: Alex Hung <alex.hung@canonical.com>
Ivan Hu July 23, 2020, 2:09 a.m. UTC | #2
On 7/18/20 6:30 AM, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
> 
> Changes in this release of ACPICA are detailed at the following
> link on the ACPICA developer mailing list:
> 
> https://lists.acpica.org/hyperkitty/list/devel@acpica.org/thread/CXHTTCYQS6APX5VI4ZS6GC7WD7E5FD3B/
> 
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>  src/acpica/source/compiler/aslerror.c             |  2 +-
>  src/acpica/source/compiler/aslexternal.c          |  8 ++++++++
>  src/acpica/source/compiler/aslload.c              | 10 +++++-----
>  src/acpica/source/compiler/aslmethod.c            | 12 ++++++++++++
>  src/acpica/source/compiler/aslxref.c              |  4 +++-
>  src/acpica/source/components/executer/exprep.c    |  4 ----
>  src/acpica/source/components/utilities/utdelete.c |  6 +-----
>  src/acpica/source/components/utilities/utids.c    |  2 +-
>  src/acpica/source/include/acpixf.h                |  2 +-
>  src/acpica/source/include/actypes.h               |  2 +-
>  10 files changed, 33 insertions(+), 19 deletions(-)
> 
> diff --git a/src/acpica/source/compiler/aslerror.c b/src/acpica/source/compiler/aslerror.c
> index 8fae779d..15098342 100644
> --- a/src/acpica/source/compiler/aslerror.c
> +++ b/src/acpica/source/compiler/aslerror.c
> @@ -1056,7 +1056,7 @@ GetModifiedLevel (
>      UINT8                   Level,
>      UINT16                  MessageId)
>  {
> -    UINT16                  i;
> +    UINT32                  i;
>      UINT16                  ExceptionCode;
>  
>  
> diff --git a/src/acpica/source/compiler/aslexternal.c b/src/acpica/source/compiler/aslexternal.c
> index 315247be..a05ba118 100644
> --- a/src/acpica/source/compiler/aslexternal.c
> +++ b/src/acpica/source/compiler/aslexternal.c
> @@ -200,6 +200,14 @@ ExDoExternal (
>  
>  
>      ExternType = AnMapObjTypeToBtype (ExternTypeOp);
> +    if (ExternType != ACPI_BTYPE_METHOD)
> +    {
> +        /*
> +         * If this is not a method, it has zero parameters this local variable
> +         * is used only for methods
> +         */
> +        ParamCount = 0;
> +    }
>  
>      /*
>       * The parser allows optional parameter return types regardless of the
> diff --git a/src/acpica/source/compiler/aslload.c b/src/acpica/source/compiler/aslload.c
> index bdc0d805..454fa8f5 100644
> --- a/src/acpica/source/compiler/aslload.c
> +++ b/src/acpica/source/compiler/aslload.c
> @@ -1177,13 +1177,13 @@ LdAnalyzeExternals (
>           * previously declared External
>           */
>          Node->Flags &= ~ANOBJ_IS_EXTERNAL;
> -        Node->Type = (UINT8) ExternalOpType;
> +        Node->Type = (UINT8) ActualOpType;
>  
>          /* Just retyped a node, probably will need to open a scope */
>  
> -        if (AcpiNsOpensScope (ExternalOpType))
> +        if (AcpiNsOpensScope (ActualOpType))
>          {
> -            Status = AcpiDsScopeStackPush (Node, ExternalOpType, WalkState);
> +            Status = AcpiDsScopeStackPush (Node, ActualOpType, WalkState);
>              if (ACPI_FAILURE (Status))
>              {
>                  return (Status);
> @@ -1204,11 +1204,11 @@ LdAnalyzeExternals (
>      }
>      else if ((Node->Flags & ANOBJ_IS_EXTERNAL) &&
>               (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) &&
> -             (ExternalOpType == ACPI_TYPE_ANY))
> +             (ActualOpType == ACPI_TYPE_ANY))
>      {
>          /* Allow update of externals of unknown type. */
>  
> -        Node->Type = (UINT8) ExternalOpType;
> +        Node->Type = (UINT8) ActualExternalOpType;
>          Status = AE_OK;
>      }
>  
> diff --git a/src/acpica/source/compiler/aslmethod.c b/src/acpica/source/compiler/aslmethod.c
> index ff6fd474..32b4b123 100644
> --- a/src/acpica/source/compiler/aslmethod.c
> +++ b/src/acpica/source/compiler/aslmethod.c
> @@ -306,6 +306,8 @@ MtMethodAnalysisWalkBegin (
>          {
>              ActualArgs = MtProcessParameterTypeList (NextType,
>                  MethodInfo->ValidArgTypes);
> +            MethodInfo->NumArguments = ActualArgs;
> +            ArgNode->Asl.Value.Integer |= ActualArgs;
>          }
>  
>          if ((MethodInfo->NumArguments) &&
> @@ -671,6 +673,16 @@ MtProcessParameterTypeList (
>      UINT8                   ParameterCount = 0;
>  
>  
> +    if (ParamTypeOp && ParamTypeOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
> +    {
> +        /* Special case for a single parameter without braces */
> +
> +        TypeList[ParameterCount] =
> +            MtProcessTypeOp (ParamTypeOp);
> +
> +        return (1);
> +    }
> +
>      while (ParamTypeOp)
>      {
>          TypeList[ParameterCount] =
> diff --git a/src/acpica/source/compiler/aslxref.c b/src/acpica/source/compiler/aslxref.c
> index 4bbbe2bd..9306af20 100644
> --- a/src/acpica/source/compiler/aslxref.c
> +++ b/src/acpica/source/compiler/aslxref.c
> @@ -994,12 +994,14 @@ XfNamespaceLocateBegin (
>           * invocation of the method, it is simply a reference to the method.
>           *
>           * September 2016: Removed DeRefOf from this list
> +         * July 2020: Added Alias to this list
>           */
>          if ((Op->Asl.Parent) &&
>              ((Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_REFOF)     ||
>              (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_PACKAGE)    ||
>              (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_VAR_PACKAGE)||
> -            (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_OBJECTTYPE)))
> +            (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_OBJECTTYPE) ||
> +            (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_ALIAS)))
>          {
>              return_ACPI_STATUS (AE_OK);
>          }
> diff --git a/src/acpica/source/components/executer/exprep.c b/src/acpica/source/components/executer/exprep.c
> index 6ceac68f..3074366d 100644
> --- a/src/acpica/source/components/executer/exprep.c
> +++ b/src/acpica/source/components/executer/exprep.c
> @@ -651,10 +651,6 @@ AcpiExPrepFieldValue (
>              }
>          }
>  
> -        /* An additional reference for the container */
> -
> -        AcpiUtAddReference (ObjDesc->Field.RegionObj);
> -
>          ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
>              "RegionField: BitOff %X, Off %X, Gran %X, Region %p\n",
>              ObjDesc->Field.StartFieldBitOffset,
> diff --git a/src/acpica/source/components/utilities/utdelete.c b/src/acpica/source/components/utilities/utdelete.c
> index 502ff413..aafd5295 100644
> --- a/src/acpica/source/components/utilities/utdelete.c
> +++ b/src/acpica/source/components/utilities/utdelete.c
> @@ -749,11 +749,6 @@ AcpiUtUpdateObjectReference (
>              NextObject = Object->BufferField.BufferObj;
>              break;
>  
> -        case ACPI_TYPE_LOCAL_REGION_FIELD:
> -
> -            NextObject = Object->Field.RegionObj;
> -            break;
> -
>          case ACPI_TYPE_LOCAL_BANK_FIELD:
>  
>              NextObject = Object->BankField.BankObj;
> @@ -789,6 +784,7 @@ AcpiUtUpdateObjectReference (
>              }
>              break;
>  
> +        case ACPI_TYPE_LOCAL_REGION_FIELD:
>          case ACPI_TYPE_REGION:
>          default:
>  
> diff --git a/src/acpica/source/components/utilities/utids.c b/src/acpica/source/components/utilities/utids.c
> index e296c00a..34ae697a 100644
> --- a/src/acpica/source/components/utilities/utids.c
> +++ b/src/acpica/source/components/utilities/utids.c
> @@ -435,7 +435,7 @@ AcpiUtExecute_CID (
>       * 3) Size of the actual CID strings
>       */
>      CidListSize = sizeof (ACPI_PNP_DEVICE_ID_LIST) +
> -        ((Count - 1) * sizeof (ACPI_PNP_DEVICE_ID)) +
> +        (Count * sizeof (ACPI_PNP_DEVICE_ID)) +
>          StringAreaSize;
>  
>      CidList = ACPI_ALLOCATE_ZEROED (CidListSize);
> diff --git a/src/acpica/source/include/acpixf.h b/src/acpica/source/include/acpixf.h
> index 2eafdeac..c1b55401 100644
> --- a/src/acpica/source/include/acpixf.h
> +++ b/src/acpica/source/include/acpixf.h
> @@ -154,7 +154,7 @@
>  
>  /* Current ACPICA subsystem version in YYYYMMDD format */
>  
> -#define ACPI_CA_VERSION                 0x20200528
> +#define ACPI_CA_VERSION                 0x20200717
>  
>  #include "acconfig.h"
>  #include "actypes.h"
> diff --git a/src/acpica/source/include/actypes.h b/src/acpica/source/include/actypes.h
> index 2666ebfb..0ec14a36 100644
> --- a/src/acpica/source/include/actypes.h
> +++ b/src/acpica/source/include/actypes.h
> @@ -1379,7 +1379,7 @@ typedef struct acpi_pnp_device_id_list
>  {
>      UINT32                          Count;              /* Number of IDs in Ids array */
>      UINT32                          ListSize;           /* Size of list, including ID strings */
> -    ACPI_PNP_DEVICE_ID              Ids[1];             /* ID array */
> +    ACPI_PNP_DEVICE_ID              Ids[];              /* ID array */
>  
>  } ACPI_PNP_DEVICE_ID_LIST;
>  
> 


Acked-by: Ivan Hu <ivan.hu@canonical.com>
diff mbox series

Patch

diff --git a/src/acpica/source/compiler/aslerror.c b/src/acpica/source/compiler/aslerror.c
index 8fae779d..15098342 100644
--- a/src/acpica/source/compiler/aslerror.c
+++ b/src/acpica/source/compiler/aslerror.c
@@ -1056,7 +1056,7 @@  GetModifiedLevel (
     UINT8                   Level,
     UINT16                  MessageId)
 {
-    UINT16                  i;
+    UINT32                  i;
     UINT16                  ExceptionCode;
 
 
diff --git a/src/acpica/source/compiler/aslexternal.c b/src/acpica/source/compiler/aslexternal.c
index 315247be..a05ba118 100644
--- a/src/acpica/source/compiler/aslexternal.c
+++ b/src/acpica/source/compiler/aslexternal.c
@@ -200,6 +200,14 @@  ExDoExternal (
 
 
     ExternType = AnMapObjTypeToBtype (ExternTypeOp);
+    if (ExternType != ACPI_BTYPE_METHOD)
+    {
+        /*
+         * If this is not a method, it has zero parameters this local variable
+         * is used only for methods
+         */
+        ParamCount = 0;
+    }
 
     /*
      * The parser allows optional parameter return types regardless of the
diff --git a/src/acpica/source/compiler/aslload.c b/src/acpica/source/compiler/aslload.c
index bdc0d805..454fa8f5 100644
--- a/src/acpica/source/compiler/aslload.c
+++ b/src/acpica/source/compiler/aslload.c
@@ -1177,13 +1177,13 @@  LdAnalyzeExternals (
          * previously declared External
          */
         Node->Flags &= ~ANOBJ_IS_EXTERNAL;
-        Node->Type = (UINT8) ExternalOpType;
+        Node->Type = (UINT8) ActualOpType;
 
         /* Just retyped a node, probably will need to open a scope */
 
-        if (AcpiNsOpensScope (ExternalOpType))
+        if (AcpiNsOpensScope (ActualOpType))
         {
-            Status = AcpiDsScopeStackPush (Node, ExternalOpType, WalkState);
+            Status = AcpiDsScopeStackPush (Node, ActualOpType, WalkState);
             if (ACPI_FAILURE (Status))
             {
                 return (Status);
@@ -1204,11 +1204,11 @@  LdAnalyzeExternals (
     }
     else if ((Node->Flags & ANOBJ_IS_EXTERNAL) &&
              (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) &&
-             (ExternalOpType == ACPI_TYPE_ANY))
+             (ActualOpType == ACPI_TYPE_ANY))
     {
         /* Allow update of externals of unknown type. */
 
-        Node->Type = (UINT8) ExternalOpType;
+        Node->Type = (UINT8) ActualExternalOpType;
         Status = AE_OK;
     }
 
diff --git a/src/acpica/source/compiler/aslmethod.c b/src/acpica/source/compiler/aslmethod.c
index ff6fd474..32b4b123 100644
--- a/src/acpica/source/compiler/aslmethod.c
+++ b/src/acpica/source/compiler/aslmethod.c
@@ -306,6 +306,8 @@  MtMethodAnalysisWalkBegin (
         {
             ActualArgs = MtProcessParameterTypeList (NextType,
                 MethodInfo->ValidArgTypes);
+            MethodInfo->NumArguments = ActualArgs;
+            ArgNode->Asl.Value.Integer |= ActualArgs;
         }
 
         if ((MethodInfo->NumArguments) &&
@@ -671,6 +673,16 @@  MtProcessParameterTypeList (
     UINT8                   ParameterCount = 0;
 
 
+    if (ParamTypeOp && ParamTypeOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
+    {
+        /* Special case for a single parameter without braces */
+
+        TypeList[ParameterCount] =
+            MtProcessTypeOp (ParamTypeOp);
+
+        return (1);
+    }
+
     while (ParamTypeOp)
     {
         TypeList[ParameterCount] =
diff --git a/src/acpica/source/compiler/aslxref.c b/src/acpica/source/compiler/aslxref.c
index 4bbbe2bd..9306af20 100644
--- a/src/acpica/source/compiler/aslxref.c
+++ b/src/acpica/source/compiler/aslxref.c
@@ -994,12 +994,14 @@  XfNamespaceLocateBegin (
          * invocation of the method, it is simply a reference to the method.
          *
          * September 2016: Removed DeRefOf from this list
+         * July 2020: Added Alias to this list
          */
         if ((Op->Asl.Parent) &&
             ((Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_REFOF)     ||
             (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_PACKAGE)    ||
             (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_VAR_PACKAGE)||
-            (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_OBJECTTYPE)))
+            (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_OBJECTTYPE) ||
+            (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_ALIAS)))
         {
             return_ACPI_STATUS (AE_OK);
         }
diff --git a/src/acpica/source/components/executer/exprep.c b/src/acpica/source/components/executer/exprep.c
index 6ceac68f..3074366d 100644
--- a/src/acpica/source/components/executer/exprep.c
+++ b/src/acpica/source/components/executer/exprep.c
@@ -651,10 +651,6 @@  AcpiExPrepFieldValue (
             }
         }
 
-        /* An additional reference for the container */
-
-        AcpiUtAddReference (ObjDesc->Field.RegionObj);
-
         ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
             "RegionField: BitOff %X, Off %X, Gran %X, Region %p\n",
             ObjDesc->Field.StartFieldBitOffset,
diff --git a/src/acpica/source/components/utilities/utdelete.c b/src/acpica/source/components/utilities/utdelete.c
index 502ff413..aafd5295 100644
--- a/src/acpica/source/components/utilities/utdelete.c
+++ b/src/acpica/source/components/utilities/utdelete.c
@@ -749,11 +749,6 @@  AcpiUtUpdateObjectReference (
             NextObject = Object->BufferField.BufferObj;
             break;
 
-        case ACPI_TYPE_LOCAL_REGION_FIELD:
-
-            NextObject = Object->Field.RegionObj;
-            break;
-
         case ACPI_TYPE_LOCAL_BANK_FIELD:
 
             NextObject = Object->BankField.BankObj;
@@ -789,6 +784,7 @@  AcpiUtUpdateObjectReference (
             }
             break;
 
+        case ACPI_TYPE_LOCAL_REGION_FIELD:
         case ACPI_TYPE_REGION:
         default:
 
diff --git a/src/acpica/source/components/utilities/utids.c b/src/acpica/source/components/utilities/utids.c
index e296c00a..34ae697a 100644
--- a/src/acpica/source/components/utilities/utids.c
+++ b/src/acpica/source/components/utilities/utids.c
@@ -435,7 +435,7 @@  AcpiUtExecute_CID (
      * 3) Size of the actual CID strings
      */
     CidListSize = sizeof (ACPI_PNP_DEVICE_ID_LIST) +
-        ((Count - 1) * sizeof (ACPI_PNP_DEVICE_ID)) +
+        (Count * sizeof (ACPI_PNP_DEVICE_ID)) +
         StringAreaSize;
 
     CidList = ACPI_ALLOCATE_ZEROED (CidListSize);
diff --git a/src/acpica/source/include/acpixf.h b/src/acpica/source/include/acpixf.h
index 2eafdeac..c1b55401 100644
--- a/src/acpica/source/include/acpixf.h
+++ b/src/acpica/source/include/acpixf.h
@@ -154,7 +154,7 @@ 
 
 /* Current ACPICA subsystem version in YYYYMMDD format */
 
-#define ACPI_CA_VERSION                 0x20200528
+#define ACPI_CA_VERSION                 0x20200717
 
 #include "acconfig.h"
 #include "actypes.h"
diff --git a/src/acpica/source/include/actypes.h b/src/acpica/source/include/actypes.h
index 2666ebfb..0ec14a36 100644
--- a/src/acpica/source/include/actypes.h
+++ b/src/acpica/source/include/actypes.h
@@ -1379,7 +1379,7 @@  typedef struct acpi_pnp_device_id_list
 {
     UINT32                          Count;              /* Number of IDs in Ids array */
     UINT32                          ListSize;           /* Size of list, including ID strings */
-    ACPI_PNP_DEVICE_ID              Ids[1];             /* ID array */
+    ACPI_PNP_DEVICE_ID              Ids[];              /* ID array */
 
 } ACPI_PNP_DEVICE_ID_LIST;