diff mbox series

ACPICA: Update to version 20180508

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

Commit Message

Colin Ian King May 8, 2018, 5:35 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/pipermail/devel/2018-May/001795.html

Fortunately the delta is relatively small for this release.

Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
 .../source/components/executer/exconfig.c     | 10 +++
 .../source/components/namespace/nsinit.c      | 82 ++++++++++++++-----
 .../source/components/utilities/utbuffer.c    |  4 +-
 src/acpica/source/include/aclocal.h           | 11 +--
 src/acpica/source/include/acnamesp.h          |  6 ++
 src/acpica/source/include/acpixf.h            |  2 +-
 6 files changed, 87 insertions(+), 28 deletions(-)

Comments

Alex Hung May 8, 2018, 6:13 p.m. UTC | #1
On 2018-05-08 10:35 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/pipermail/devel/2018-May/001795.html
> 
> Fortunately the delta is relatively small for this release.
> 
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>   .../source/components/executer/exconfig.c     | 10 +++
>   .../source/components/namespace/nsinit.c      | 82 ++++++++++++++-----
>   .../source/components/utilities/utbuffer.c    |  4 +-
>   src/acpica/source/include/aclocal.h           | 11 +--
>   src/acpica/source/include/acnamesp.h          |  6 ++
>   src/acpica/source/include/acpixf.h            |  2 +-
>   6 files changed, 87 insertions(+), 28 deletions(-)
> 
> diff --git a/src/acpica/source/components/executer/exconfig.c b/src/acpica/source/components/executer/exconfig.c
> index 2ae60f55..590d8366 100644
> --- a/src/acpica/source/components/executer/exconfig.c
> +++ b/src/acpica/source/components/executer/exconfig.c
> @@ -342,6 +342,11 @@ AcpiExLoadTableOp (
>           return_ACPI_STATUS (Status);
>       }
>   
> +    /* Complete the initialization/resolution of package objects */
> +
> +    Status = AcpiNsWalkNamespace (ACPI_TYPE_PACKAGE, ACPI_ROOT_OBJECT,
> +        ACPI_UINT32_MAX, 0, AcpiNsInitOnePackage, NULL, NULL, NULL);
> +
>       /* Parameter Data (optional) */
>   
>       if (ParameterNode)
> @@ -615,6 +620,11 @@ AcpiExLoadOp (
>           return_ACPI_STATUS (Status);
>       }
>   
> +    /* Complete the initialization/resolution of package objects */
> +
> +    Status = AcpiNsWalkNamespace (ACPI_TYPE_PACKAGE, ACPI_ROOT_OBJECT,
> +        ACPI_UINT32_MAX, 0, AcpiNsInitOnePackage, NULL, NULL, NULL);
> +
>       /* Store the DdbHandle into the Target operand */
>   
>       Status = AcpiExStore (DdbHandle, Target, WalkState);
> diff --git a/src/acpica/source/components/namespace/nsinit.c b/src/acpica/source/components/namespace/nsinit.c
> index dc76db9f..dcfb41ed 100644
> --- a/src/acpica/source/components/namespace/nsinit.c
> +++ b/src/acpica/source/components/namespace/nsinit.c
> @@ -406,6 +406,65 @@ ErrorExit:
>   }
>   
>   
> +/*******************************************************************************
> + *
> + * FUNCTION:    AcpiNsInitOnePackage
> + *
> + * PARAMETERS:  ObjHandle       - Node
> + *              Level           - Current nesting level
> + *              Context         - Not used
> + *              ReturnValue     - Not used
> + *
> + * RETURN:      Status
> + *
> + * DESCRIPTION: Callback from AcpiWalkNamespace. Invoked for every package
> + *              within the namespace. Used during dynamic load of an SSDT.
> + *
> + ******************************************************************************/
> +
> +ACPI_STATUS
> +AcpiNsInitOnePackage (
> +    ACPI_HANDLE             ObjHandle,
> +    UINT32                  Level,
> +    void                    *Context,
> +    void                    **ReturnValue)
> +{
> +    ACPI_STATUS             Status;
> +    ACPI_OPERAND_OBJECT     *ObjDesc;
> +    ACPI_NAMESPACE_NODE     *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
> +
> +
> +    ObjDesc = AcpiNsGetAttachedObject (Node);
> +    if (!ObjDesc)
> +    {
> +        return (AE_OK);
> +    }
> +
> +    /* Exit if package is already initialized */
> +
> +    if (ObjDesc->Package.Flags & AOPOBJ_DATA_VALID)
> +    {
> +        return (AE_OK);
> +    }
> +
> +    Status = AcpiDsGetPackageArguments (ObjDesc);
> +    if (ACPI_FAILURE (Status))
> +    {
> +        return (AE_OK);
> +    }
> +
> +    Status = AcpiUtWalkPackageTree (ObjDesc, NULL, AcpiDsInitPackageElement,
> +        NULL);
> +    if (ACPI_FAILURE (Status))
> +    {
> +        return (AE_OK);
> +    }
> +
> +    ObjDesc->Package.Flags |= AOPOBJ_DATA_VALID;
> +    return (AE_OK);
> +}
> +
> +
>   /*******************************************************************************
>    *
>    * FUNCTION:    AcpiNsInitOneObject
> @@ -533,27 +592,10 @@ AcpiNsInitOneObject (
>   
>       case ACPI_TYPE_PACKAGE:
>   
> -        Info->PackageInit++;
> -        Status = AcpiDsGetPackageArguments (ObjDesc);
> -        if (ACPI_FAILURE (Status))
> -        {
> -            break;
> -        }
> -
> -        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_PARSE,
> -            "%s: Completing resolution of Package elements\n",
> -            ACPI_GET_FUNCTION_NAME));
> +        /* Complete the initialization/resolution of the package object */
>   
> -        /*
> -         * Resolve all named references in package objects (and all
> -         * sub-packages). This action has been deferred until the entire
> -         * namespace has been loaded, in order to support external and
> -         * forward references from individual package elements (05/2017).
> -         */
> -        Status = AcpiUtWalkPackageTree (ObjDesc, NULL,
> -            AcpiDsInitPackageElement, NULL);
> -
> -        ObjDesc->Package.Flags |= AOPOBJ_DATA_VALID;
> +        Info->PackageInit++;
> +        Status = AcpiNsInitOnePackage (ObjHandle, Level, NULL, NULL);
>           break;
>   
>       default:
> diff --git a/src/acpica/source/components/utilities/utbuffer.c b/src/acpica/source/components/utilities/utbuffer.c
> index 741742c4..83a5b3c5 100644
> --- a/src/acpica/source/components/utilities/utbuffer.c
> +++ b/src/acpica/source/components/utilities/utbuffer.c
> @@ -205,7 +205,7 @@ AcpiUtDumpBuffer (
>       {
>           /* Print current offset */
>   
> -        AcpiOsPrintf ("%6.4X: ", (BaseOffset + i));
> +        AcpiOsPrintf ("%8.4X: ", (BaseOffset + i));
>   
>           /* Print 16 hex chars */
>   
> @@ -387,7 +387,7 @@ AcpiUtDumpBufferToFile (
>       {
>           /* Print current offset */
>   
> -        fprintf (File, "%6.4X: ", (BaseOffset + i));
> +        fprintf (File, "%8.4X: ", (BaseOffset + i));
>   
>           /* Print 16 hex chars */
>   
> diff --git a/src/acpica/source/include/aclocal.h b/src/acpica/source/include/aclocal.h
> index f487a4ec..d92e6bbd 100644
> --- a/src/acpica/source/include/aclocal.h
> +++ b/src/acpica/source/include/aclocal.h
> @@ -284,7 +284,7 @@ typedef enum
>    * DescriptorType is used to differentiate between internal descriptors.
>    *
>    * The node is optimized for both 32-bit and 64-bit platforms:
> - * 20 bytes for the 32-bit case, 32 bytes for the 64-bit case.
> + * 28 bytes for the 32-bit case, 48 bytes for the 64-bit case.
>    *
>    * Note: The DescriptorType and Type fields must appear in the identical
>    * position in both the ACPI_NAMESPACE_NODE and ACPI_OPERAND_OBJECT
> @@ -301,10 +301,12 @@ typedef struct acpi_namespace_node
>       struct acpi_namespace_node      *Parent;        /* Parent node */
>       struct acpi_namespace_node      *Child;         /* First child */
>       struct acpi_namespace_node      *Peer;          /* First peer */
> +    struct acpi_namespace_node      *OwnerList;     /* All nodes owned by a table or method */
>   
> -    /*
> -     * The following fields are used by the ASL compiler and disassembler only
> -     */
> +/*
> + * The following fields are appended to the namespace node and
> + * are used by the ASL compiler and AML disassembler only
> + */
>   #ifdef ACPI_LARGE_NAMESPACE_NODE
>       union acpi_parse_object         *Op;
>       void                            *MethodLocals;
> @@ -312,7 +314,6 @@ typedef struct acpi_namespace_node
>       UINT32                          Value;
>       UINT32                          Length;
>       UINT8                           ArgCount;
> -
>   #endif
>   
>   } ACPI_NAMESPACE_NODE;
> diff --git a/src/acpica/source/include/acnamesp.h b/src/acpica/source/include/acnamesp.h
> index a2c80dfe..529fc6e7 100644
> --- a/src/acpica/source/include/acnamesp.h
> +++ b/src/acpica/source/include/acnamesp.h
> @@ -204,6 +204,12 @@ ACPI_STATUS
>   AcpiNsInitializeDevices (
>       UINT32                  Flags);
>   
> +ACPI_STATUS
> +AcpiNsInitOnePackage (
> +    ACPI_HANDLE             ObjHandle,
> +    UINT32                  Level,
> +    void                    *Context,
> +    void                    **ReturnValue);
>   
>   /*
>    * nsload -  Namespace loading
> diff --git a/src/acpica/source/include/acpixf.h b/src/acpica/source/include/acpixf.h
> index 2fee13a5..6e10c851 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                 0x20180427
> +#define ACPI_CA_VERSION                 0x20180508
>   
>   #include "acconfig.h"
>   #include "actypes.h"
> 

Acked-by: Alex Hung <alex.hung@canonical.com>
Ivan Hu May 9, 2018, 6:57 a.m. UTC | #2
On 05/09/2018 01:35 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/pipermail/devel/2018-May/001795.html
> 
> Fortunately the delta is relatively small for this release.
> 
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>   .../source/components/executer/exconfig.c     | 10 +++
>   .../source/components/namespace/nsinit.c      | 82 ++++++++++++++-----
>   .../source/components/utilities/utbuffer.c    |  4 +-
>   src/acpica/source/include/aclocal.h           | 11 +--
>   src/acpica/source/include/acnamesp.h          |  6 ++
>   src/acpica/source/include/acpixf.h            |  2 +-
>   6 files changed, 87 insertions(+), 28 deletions(-)
> 
> diff --git a/src/acpica/source/components/executer/exconfig.c b/src/acpica/source/components/executer/exconfig.c
> index 2ae60f55..590d8366 100644
> --- a/src/acpica/source/components/executer/exconfig.c
> +++ b/src/acpica/source/components/executer/exconfig.c
> @@ -342,6 +342,11 @@ AcpiExLoadTableOp (
>           return_ACPI_STATUS (Status);
>       }
>   
> +    /* Complete the initialization/resolution of package objects */
> +
> +    Status = AcpiNsWalkNamespace (ACPI_TYPE_PACKAGE, ACPI_ROOT_OBJECT,
> +        ACPI_UINT32_MAX, 0, AcpiNsInitOnePackage, NULL, NULL, NULL);
> +
>       /* Parameter Data (optional) */
>   
>       if (ParameterNode)
> @@ -615,6 +620,11 @@ AcpiExLoadOp (
>           return_ACPI_STATUS (Status);
>       }
>   
> +    /* Complete the initialization/resolution of package objects */
> +
> +    Status = AcpiNsWalkNamespace (ACPI_TYPE_PACKAGE, ACPI_ROOT_OBJECT,
> +        ACPI_UINT32_MAX, 0, AcpiNsInitOnePackage, NULL, NULL, NULL);
> +
>       /* Store the DdbHandle into the Target operand */
>   
>       Status = AcpiExStore (DdbHandle, Target, WalkState);
> diff --git a/src/acpica/source/components/namespace/nsinit.c b/src/acpica/source/components/namespace/nsinit.c
> index dc76db9f..dcfb41ed 100644
> --- a/src/acpica/source/components/namespace/nsinit.c
> +++ b/src/acpica/source/components/namespace/nsinit.c
> @@ -406,6 +406,65 @@ ErrorExit:
>   }
>   
>   
> +/*******************************************************************************
> + *
> + * FUNCTION:    AcpiNsInitOnePackage
> + *
> + * PARAMETERS:  ObjHandle       - Node
> + *              Level           - Current nesting level
> + *              Context         - Not used
> + *              ReturnValue     - Not used
> + *
> + * RETURN:      Status
> + *
> + * DESCRIPTION: Callback from AcpiWalkNamespace. Invoked for every package
> + *              within the namespace. Used during dynamic load of an SSDT.
> + *
> + ******************************************************************************/
> +
> +ACPI_STATUS
> +AcpiNsInitOnePackage (
> +    ACPI_HANDLE             ObjHandle,
> +    UINT32                  Level,
> +    void                    *Context,
> +    void                    **ReturnValue)
> +{
> +    ACPI_STATUS             Status;
> +    ACPI_OPERAND_OBJECT     *ObjDesc;
> +    ACPI_NAMESPACE_NODE     *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
> +
> +
> +    ObjDesc = AcpiNsGetAttachedObject (Node);
> +    if (!ObjDesc)
> +    {
> +        return (AE_OK);
> +    }
> +
> +    /* Exit if package is already initialized */
> +
> +    if (ObjDesc->Package.Flags & AOPOBJ_DATA_VALID)
> +    {
> +        return (AE_OK);
> +    }
> +
> +    Status = AcpiDsGetPackageArguments (ObjDesc);
> +    if (ACPI_FAILURE (Status))
> +    {
> +        return (AE_OK);
> +    }
> +
> +    Status = AcpiUtWalkPackageTree (ObjDesc, NULL, AcpiDsInitPackageElement,
> +        NULL);
> +    if (ACPI_FAILURE (Status))
> +    {
> +        return (AE_OK);
> +    }
> +
> +    ObjDesc->Package.Flags |= AOPOBJ_DATA_VALID;
> +    return (AE_OK);
> +}
> +
> +
>   /*******************************************************************************
>    *
>    * FUNCTION:    AcpiNsInitOneObject
> @@ -533,27 +592,10 @@ AcpiNsInitOneObject (
>   
>       case ACPI_TYPE_PACKAGE:
>   
> -        Info->PackageInit++;
> -        Status = AcpiDsGetPackageArguments (ObjDesc);
> -        if (ACPI_FAILURE (Status))
> -        {
> -            break;
> -        }
> -
> -        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_PARSE,
> -            "%s: Completing resolution of Package elements\n",
> -            ACPI_GET_FUNCTION_NAME));
> +        /* Complete the initialization/resolution of the package object */
>   
> -        /*
> -         * Resolve all named references in package objects (and all
> -         * sub-packages). This action has been deferred until the entire
> -         * namespace has been loaded, in order to support external and
> -         * forward references from individual package elements (05/2017).
> -         */
> -        Status = AcpiUtWalkPackageTree (ObjDesc, NULL,
> -            AcpiDsInitPackageElement, NULL);
> -
> -        ObjDesc->Package.Flags |= AOPOBJ_DATA_VALID;
> +        Info->PackageInit++;
> +        Status = AcpiNsInitOnePackage (ObjHandle, Level, NULL, NULL);
>           break;
>   
>       default:
> diff --git a/src/acpica/source/components/utilities/utbuffer.c b/src/acpica/source/components/utilities/utbuffer.c
> index 741742c4..83a5b3c5 100644
> --- a/src/acpica/source/components/utilities/utbuffer.c
> +++ b/src/acpica/source/components/utilities/utbuffer.c
> @@ -205,7 +205,7 @@ AcpiUtDumpBuffer (
>       {
>           /* Print current offset */
>   
> -        AcpiOsPrintf ("%6.4X: ", (BaseOffset + i));
> +        AcpiOsPrintf ("%8.4X: ", (BaseOffset + i));
>   
>           /* Print 16 hex chars */
>   
> @@ -387,7 +387,7 @@ AcpiUtDumpBufferToFile (
>       {
>           /* Print current offset */
>   
> -        fprintf (File, "%6.4X: ", (BaseOffset + i));
> +        fprintf (File, "%8.4X: ", (BaseOffset + i));
>   
>           /* Print 16 hex chars */
>   
> diff --git a/src/acpica/source/include/aclocal.h b/src/acpica/source/include/aclocal.h
> index f487a4ec..d92e6bbd 100644
> --- a/src/acpica/source/include/aclocal.h
> +++ b/src/acpica/source/include/aclocal.h
> @@ -284,7 +284,7 @@ typedef enum
>    * DescriptorType is used to differentiate between internal descriptors.
>    *
>    * The node is optimized for both 32-bit and 64-bit platforms:
> - * 20 bytes for the 32-bit case, 32 bytes for the 64-bit case.
> + * 28 bytes for the 32-bit case, 48 bytes for the 64-bit case.
>    *
>    * Note: The DescriptorType and Type fields must appear in the identical
>    * position in both the ACPI_NAMESPACE_NODE and ACPI_OPERAND_OBJECT
> @@ -301,10 +301,12 @@ typedef struct acpi_namespace_node
>       struct acpi_namespace_node      *Parent;        /* Parent node */
>       struct acpi_namespace_node      *Child;         /* First child */
>       struct acpi_namespace_node      *Peer;          /* First peer */
> +    struct acpi_namespace_node      *OwnerList;     /* All nodes owned by a table or method */
>   
> -    /*
> -     * The following fields are used by the ASL compiler and disassembler only
> -     */
> +/*
> + * The following fields are appended to the namespace node and
> + * are used by the ASL compiler and AML disassembler only
> + */
>   #ifdef ACPI_LARGE_NAMESPACE_NODE
>       union acpi_parse_object         *Op;
>       void                            *MethodLocals;
> @@ -312,7 +314,6 @@ typedef struct acpi_namespace_node
>       UINT32                          Value;
>       UINT32                          Length;
>       UINT8                           ArgCount;
> -
>   #endif
>   
>   } ACPI_NAMESPACE_NODE;
> diff --git a/src/acpica/source/include/acnamesp.h b/src/acpica/source/include/acnamesp.h
> index a2c80dfe..529fc6e7 100644
> --- a/src/acpica/source/include/acnamesp.h
> +++ b/src/acpica/source/include/acnamesp.h
> @@ -204,6 +204,12 @@ ACPI_STATUS
>   AcpiNsInitializeDevices (
>       UINT32                  Flags);
>   
> +ACPI_STATUS
> +AcpiNsInitOnePackage (
> +    ACPI_HANDLE             ObjHandle,
> +    UINT32                  Level,
> +    void                    *Context,
> +    void                    **ReturnValue);
>   
>   /*
>    * nsload -  Namespace loading
> diff --git a/src/acpica/source/include/acpixf.h b/src/acpica/source/include/acpixf.h
> index 2fee13a5..6e10c851 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                 0x20180427
> +#define ACPI_CA_VERSION                 0x20180508
>   
>   #include "acconfig.h"
>   #include "actypes.h"
> 

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

Patch

diff --git a/src/acpica/source/components/executer/exconfig.c b/src/acpica/source/components/executer/exconfig.c
index 2ae60f55..590d8366 100644
--- a/src/acpica/source/components/executer/exconfig.c
+++ b/src/acpica/source/components/executer/exconfig.c
@@ -342,6 +342,11 @@  AcpiExLoadTableOp (
         return_ACPI_STATUS (Status);
     }
 
+    /* Complete the initialization/resolution of package objects */
+
+    Status = AcpiNsWalkNamespace (ACPI_TYPE_PACKAGE, ACPI_ROOT_OBJECT,
+        ACPI_UINT32_MAX, 0, AcpiNsInitOnePackage, NULL, NULL, NULL);
+
     /* Parameter Data (optional) */
 
     if (ParameterNode)
@@ -615,6 +620,11 @@  AcpiExLoadOp (
         return_ACPI_STATUS (Status);
     }
 
+    /* Complete the initialization/resolution of package objects */
+
+    Status = AcpiNsWalkNamespace (ACPI_TYPE_PACKAGE, ACPI_ROOT_OBJECT,
+        ACPI_UINT32_MAX, 0, AcpiNsInitOnePackage, NULL, NULL, NULL);
+
     /* Store the DdbHandle into the Target operand */
 
     Status = AcpiExStore (DdbHandle, Target, WalkState);
diff --git a/src/acpica/source/components/namespace/nsinit.c b/src/acpica/source/components/namespace/nsinit.c
index dc76db9f..dcfb41ed 100644
--- a/src/acpica/source/components/namespace/nsinit.c
+++ b/src/acpica/source/components/namespace/nsinit.c
@@ -406,6 +406,65 @@  ErrorExit:
 }
 
 
+/*******************************************************************************
+ *
+ * FUNCTION:    AcpiNsInitOnePackage
+ *
+ * PARAMETERS:  ObjHandle       - Node
+ *              Level           - Current nesting level
+ *              Context         - Not used
+ *              ReturnValue     - Not used
+ *
+ * RETURN:      Status
+ *
+ * DESCRIPTION: Callback from AcpiWalkNamespace. Invoked for every package
+ *              within the namespace. Used during dynamic load of an SSDT.
+ *
+ ******************************************************************************/
+
+ACPI_STATUS
+AcpiNsInitOnePackage (
+    ACPI_HANDLE             ObjHandle,
+    UINT32                  Level,
+    void                    *Context,
+    void                    **ReturnValue)
+{
+    ACPI_STATUS             Status;
+    ACPI_OPERAND_OBJECT     *ObjDesc;
+    ACPI_NAMESPACE_NODE     *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
+
+
+    ObjDesc = AcpiNsGetAttachedObject (Node);
+    if (!ObjDesc)
+    {
+        return (AE_OK);
+    }
+
+    /* Exit if package is already initialized */
+
+    if (ObjDesc->Package.Flags & AOPOBJ_DATA_VALID)
+    {
+        return (AE_OK);
+    }
+
+    Status = AcpiDsGetPackageArguments (ObjDesc);
+    if (ACPI_FAILURE (Status))
+    {
+        return (AE_OK);
+    }
+
+    Status = AcpiUtWalkPackageTree (ObjDesc, NULL, AcpiDsInitPackageElement,
+        NULL);
+    if (ACPI_FAILURE (Status))
+    {
+        return (AE_OK);
+    }
+
+    ObjDesc->Package.Flags |= AOPOBJ_DATA_VALID;
+    return (AE_OK);
+}
+
+
 /*******************************************************************************
  *
  * FUNCTION:    AcpiNsInitOneObject
@@ -533,27 +592,10 @@  AcpiNsInitOneObject (
 
     case ACPI_TYPE_PACKAGE:
 
-        Info->PackageInit++;
-        Status = AcpiDsGetPackageArguments (ObjDesc);
-        if (ACPI_FAILURE (Status))
-        {
-            break;
-        }
-
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_PARSE,
-            "%s: Completing resolution of Package elements\n",
-            ACPI_GET_FUNCTION_NAME));
+        /* Complete the initialization/resolution of the package object */
 
-        /*
-         * Resolve all named references in package objects (and all
-         * sub-packages). This action has been deferred until the entire
-         * namespace has been loaded, in order to support external and
-         * forward references from individual package elements (05/2017).
-         */
-        Status = AcpiUtWalkPackageTree (ObjDesc, NULL,
-            AcpiDsInitPackageElement, NULL);
-
-        ObjDesc->Package.Flags |= AOPOBJ_DATA_VALID;
+        Info->PackageInit++;
+        Status = AcpiNsInitOnePackage (ObjHandle, Level, NULL, NULL);
         break;
 
     default:
diff --git a/src/acpica/source/components/utilities/utbuffer.c b/src/acpica/source/components/utilities/utbuffer.c
index 741742c4..83a5b3c5 100644
--- a/src/acpica/source/components/utilities/utbuffer.c
+++ b/src/acpica/source/components/utilities/utbuffer.c
@@ -205,7 +205,7 @@  AcpiUtDumpBuffer (
     {
         /* Print current offset */
 
-        AcpiOsPrintf ("%6.4X: ", (BaseOffset + i));
+        AcpiOsPrintf ("%8.4X: ", (BaseOffset + i));
 
         /* Print 16 hex chars */
 
@@ -387,7 +387,7 @@  AcpiUtDumpBufferToFile (
     {
         /* Print current offset */
 
-        fprintf (File, "%6.4X: ", (BaseOffset + i));
+        fprintf (File, "%8.4X: ", (BaseOffset + i));
 
         /* Print 16 hex chars */
 
diff --git a/src/acpica/source/include/aclocal.h b/src/acpica/source/include/aclocal.h
index f487a4ec..d92e6bbd 100644
--- a/src/acpica/source/include/aclocal.h
+++ b/src/acpica/source/include/aclocal.h
@@ -284,7 +284,7 @@  typedef enum
  * DescriptorType is used to differentiate between internal descriptors.
  *
  * The node is optimized for both 32-bit and 64-bit platforms:
- * 20 bytes for the 32-bit case, 32 bytes for the 64-bit case.
+ * 28 bytes for the 32-bit case, 48 bytes for the 64-bit case.
  *
  * Note: The DescriptorType and Type fields must appear in the identical
  * position in both the ACPI_NAMESPACE_NODE and ACPI_OPERAND_OBJECT
@@ -301,10 +301,12 @@  typedef struct acpi_namespace_node
     struct acpi_namespace_node      *Parent;        /* Parent node */
     struct acpi_namespace_node      *Child;         /* First child */
     struct acpi_namespace_node      *Peer;          /* First peer */
+    struct acpi_namespace_node      *OwnerList;     /* All nodes owned by a table or method */
 
-    /*
-     * The following fields are used by the ASL compiler and disassembler only
-     */
+/*
+ * The following fields are appended to the namespace node and
+ * are used by the ASL compiler and AML disassembler only
+ */
 #ifdef ACPI_LARGE_NAMESPACE_NODE
     union acpi_parse_object         *Op;
     void                            *MethodLocals;
@@ -312,7 +314,6 @@  typedef struct acpi_namespace_node
     UINT32                          Value;
     UINT32                          Length;
     UINT8                           ArgCount;
-
 #endif
 
 } ACPI_NAMESPACE_NODE;
diff --git a/src/acpica/source/include/acnamesp.h b/src/acpica/source/include/acnamesp.h
index a2c80dfe..529fc6e7 100644
--- a/src/acpica/source/include/acnamesp.h
+++ b/src/acpica/source/include/acnamesp.h
@@ -204,6 +204,12 @@  ACPI_STATUS
 AcpiNsInitializeDevices (
     UINT32                  Flags);
 
+ACPI_STATUS
+AcpiNsInitOnePackage (
+    ACPI_HANDLE             ObjHandle,
+    UINT32                  Level,
+    void                    *Context,
+    void                    **ReturnValue);
 
 /*
  * nsload -  Namespace loading
diff --git a/src/acpica/source/include/acpixf.h b/src/acpica/source/include/acpixf.h
index 2fee13a5..6e10c851 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                 0x20180427
+#define ACPI_CA_VERSION                 0x20180508
 
 #include "acconfig.h"
 #include "actypes.h"