https://git.reactos.org/?p=reactos.git;a=commitdiff;h=9d53c935f22775e45f2cb980df86eecb1c81fd36

commit 9d53c935f22775e45f2cb980df86eecb1c81fd36
Author:     Thomas Faber <thomas.fa...@reactos.org>
AuthorDate: Fri Feb 15 19:43:25 2019 +0100
Commit:     Thomas Faber <thomas.fa...@reactos.org>
CommitDate: Sun Feb 17 09:51:20 2019 +0100

    [ACPI] Update ACPICA library to version 20190215.
---
 drivers/bus/acpi/acpica/dispatcher/dsfield.c     |   6 +
 drivers/bus/acpi/acpica/dispatcher/dsopcode.c    |  13 +-
 drivers/bus/acpi/acpica/dispatcher/dswload2.c    |   2 +-
 drivers/bus/acpi/acpica/events/evgpe.c           |   2 +-
 drivers/bus/acpi/acpica/events/evregion.c        |   2 +-
 drivers/bus/acpi/acpica/events/evrgnini.c        |  18 ---
 drivers/bus/acpi/acpica/events/evxfgpe.c         |   4 +-
 drivers/bus/acpi/acpica/executer/exconvrt.c      |   2 +-
 drivers/bus/acpi/acpica/executer/exfield.c       |  62 +++++++
 drivers/bus/acpi/acpica/executer/exserial.c      |   2 +-
 drivers/bus/acpi/acpica/executer/exutils.c       |   2 +-
 drivers/bus/acpi/acpica/include/acclib.h         |   2 +-
 drivers/bus/acpi/acpica/include/acconfig.h       |   2 +-
 drivers/bus/acpi/acpica/include/acdebug.h        |   3 +-
 drivers/bus/acpi/acpica/include/acdisasm.h       |   2 +
 drivers/bus/acpi/acpica/include/acexcep.h        |   2 +-
 drivers/bus/acpi/acpica/include/aclocal.h        |   2 +-
 drivers/bus/acpi/acpica/include/acmacros.h       |   2 +-
 drivers/bus/acpi/acpica/include/acobject.h       |   1 +
 drivers/bus/acpi/acpica/include/acpixf.h         |  10 +-
 drivers/bus/acpi/acpica/include/acpredef.h       |  15 ++
 drivers/bus/acpi/acpica/include/acrestyp.h       |  14 +-
 drivers/bus/acpi/acpica/include/actbinfo.h       |   7 +-
 drivers/bus/acpi/acpica/include/actbl1.h         |  20 ++-
 drivers/bus/acpi/acpica/include/actbl2.h         |  15 +-
 drivers/bus/acpi/acpica/include/actbl3.h         |  23 ++-
 drivers/bus/acpi/acpica/include/actypes.h        |   3 +-
 drivers/bus/acpi/acpica/include/platform/acefi.h |   2 +-
 drivers/bus/acpi/acpica/namespace/nsload.c       |   2 +-
 drivers/bus/acpi/acpica/namespace/nsparse.c      |  70 ++------
 drivers/bus/acpi/acpica/namespace/nsutils.c      |   2 +-
 drivers/bus/acpi/acpica/parser/psloop.c          | 195 -----------------------
 drivers/bus/acpi/acpica/parser/psparse.c         |   4 +-
 drivers/bus/acpi/acpica/resources/rsdumpinfo.c   |  14 +-
 drivers/bus/acpi/acpica/resources/rsirq.c        |   8 +-
 drivers/bus/acpi/acpica/resources/rsserial.c     |  10 +-
 drivers/bus/acpi/acpica/tables/tbfadt.c          |   2 +-
 drivers/bus/acpi/acpica/tables/tbxface.c         |   4 +-
 drivers/bus/acpi/acpica/tables/tbxfload.c        |  26 ++-
 drivers/bus/acpi/acpica/utilities/utclib.c       |   4 +-
 drivers/bus/acpi/acpica/utilities/utdecode.c     |   5 +-
 drivers/bus/acpi/acpica/utilities/utdelete.c     |   5 +
 drivers/bus/acpi/acpica/utilities/uterror.c      |   9 +-
 drivers/bus/acpi/buspdo.c                        |   8 +-
 44 files changed, 236 insertions(+), 372 deletions(-)

diff --git a/drivers/bus/acpi/acpica/dispatcher/dsfield.c 
b/drivers/bus/acpi/acpica/dispatcher/dsfield.c
index 44e2889b12..ec1c125449 100644
--- a/drivers/bus/acpi/acpica/dispatcher/dsfield.c
+++ b/drivers/bus/acpi/acpica/dispatcher/dsfield.c
@@ -577,6 +577,12 @@ AcpiDsCreateField (
     Info.RegionNode = RegionNode;
 
     Status = AcpiDsGetFieldNames (&Info, WalkState, Arg->Common.Next);
+    if (Info.RegionNode->Type == ACPI_ADR_SPACE_PLATFORM_COMM &&
+        !(RegionNode->Object->Field.InternalPccBuffer
+        = ACPI_ALLOCATE_ZEROED(Info.RegionNode->Object->Region.Length)))
+    {
+        return_ACPI_STATUS (AE_NO_MEMORY);
+    }
     return_ACPI_STATUS (Status);
 }
 
diff --git a/drivers/bus/acpi/acpica/dispatcher/dsopcode.c 
b/drivers/bus/acpi/acpica/dispatcher/dsopcode.c
index 97d6b3f5e6..1d35c5be77 100644
--- a/drivers/bus/acpi/acpica/dispatcher/dsopcode.c
+++ b/drivers/bus/acpi/acpica/dispatcher/dsopcode.c
@@ -413,6 +413,7 @@ AcpiDsEvalRegionOperands (
     ACPI_OPERAND_OBJECT     *OperandDesc;
     ACPI_NAMESPACE_NODE     *Node;
     ACPI_PARSE_OBJECT       *NextOp;
+    ACPI_ADR_SPACE_TYPE     SpaceId;
 
 
     ACPI_FUNCTION_TRACE_PTR (DsEvalRegionOperands, Op);
@@ -422,11 +423,12 @@ AcpiDsEvalRegionOperands (
      * This is where we evaluate the address and length fields of the
      * OpRegion declaration
      */
-    Node =  Op->Common.Node;
+    Node = Op->Common.Node;
 
     /* NextOp points to the op that holds the SpaceID */
 
     NextOp = Op->Common.Value.Arg;
+    SpaceId = (ACPI_ADR_SPACE_TYPE) NextOp->Common.Value.Integer;
 
     /* NextOp points to address op */
 
@@ -464,6 +466,15 @@ AcpiDsEvalRegionOperands (
     ObjDesc->Region.Length = (UINT32) OperandDesc->Integer.Value;
     AcpiUtRemoveReference (OperandDesc);
 
+    /* A zero-length operation region is unusable. Just warn */
+
+    if (!ObjDesc->Region.Length && (SpaceId < ACPI_NUM_PREDEFINED_REGIONS))
+    {
+        ACPI_WARNING ((AE_INFO,
+            "Operation Region [%4.4s] has zero length (SpaceId %X)",
+            Node->Name.Ascii, SpaceId));
+    }
+
     /*
      * Get the address and save it
      * (at top of stack - 1)
diff --git a/drivers/bus/acpi/acpica/dispatcher/dswload2.c 
b/drivers/bus/acpi/acpica/dispatcher/dswload2.c
index 13677be514..373e265f64 100644
--- a/drivers/bus/acpi/acpica/dispatcher/dswload2.c
+++ b/drivers/bus/acpi/acpica/dispatcher/dswload2.c
@@ -59,7 +59,7 @@
  * FUNCTION:    AcpiDsLoad2BeginOp
  *
  * PARAMETERS:  WalkState       - Current state of the parse tree walk
- *              OutOp           - Wher to return op if a new one is created
+ *              OutOp           - Where to return op if a new one is created
  *
  * RETURN:      Status
  *
diff --git a/drivers/bus/acpi/acpica/events/evgpe.c 
b/drivers/bus/acpi/acpica/events/evgpe.c
index bfef37a0a8..7527a0031b 100644
--- a/drivers/bus/acpi/acpica/events/evgpe.c
+++ b/drivers/bus/acpi/acpica/events/evgpe.c
@@ -904,7 +904,7 @@ AcpiEvGpeDispatch (
             GpeDevice, GpeNumber,
             GpeEventInfo->Dispatch.Handler->Context);
 
-        /* If requested, clear (if level-triggered) and reenable the GPE */
+        /* If requested, clear (if level-triggered) and re-enable the GPE */
 
         if (ReturnValue & ACPI_REENABLE_GPE)
         {
diff --git a/drivers/bus/acpi/acpica/events/evregion.c 
b/drivers/bus/acpi/acpica/events/evregion.c
index dd37eca204..ea774e27b1 100644
--- a/drivers/bus/acpi/acpica/events/evregion.c
+++ b/drivers/bus/acpi/acpica/events/evregion.c
@@ -301,7 +301,7 @@ AcpiEvAddressSpaceDispatch (
         /*
          * For handlers other than the default (supplied) handlers, we must
          * exit the interpreter because the handler *might* block -- we don't
-         * know what it will do, so we can't hold the lock on the intepreter.
+         * know what it will do, so we can't hold the lock on the interpreter.
          */
         AcpiExExitInterpreter();
     }
diff --git a/drivers/bus/acpi/acpica/events/evrgnini.c 
b/drivers/bus/acpi/acpica/events/evrgnini.c
index dc144e18fe..063afaa305 100644
--- a/drivers/bus/acpi/acpica/events/evrgnini.c
+++ b/drivers/bus/acpi/acpica/events/evrgnini.c
@@ -616,24 +616,6 @@ AcpiEvInitializeRegion (
                 HandlerObj = ObjDesc->CommonNotify.Handler;
                 break;
 
-            case ACPI_TYPE_METHOD:
-                /*
-                 * If we are executing module level code, the original
-                 * Node's object was replaced by this Method object and we
-                 * saved the handler in the method object.
-                 *
-                 * Note: Only used for the legacy MLC support. Will
-                 * be removed in the future.
-                 *
-                 * See AcpiNsExecModuleCode
-                 */
-                if (!AcpiGbl_ExecuteTablesAsMethods &&
-                    ObjDesc->Method.InfoFlags & ACPI_METHOD_MODULE_LEVEL)
-                {
-                    HandlerObj = ObjDesc->Method.Dispatch.Handler;
-                }
-                break;
-
             default:
 
                 /* Ignore other objects */
diff --git a/drivers/bus/acpi/acpica/events/evxfgpe.c 
b/drivers/bus/acpi/acpica/events/evxfgpe.c
index 1870d6a315..161f3c79e1 100644
--- a/drivers/bus/acpi/acpica/events/evxfgpe.c
+++ b/drivers/bus/acpi/acpica/events/evxfgpe.c
@@ -777,9 +777,9 @@ ACPI_EXPORT_SYMBOL (AcpiGetGpeStatus)
  *
  * RETURN:      Status
  *
- * DESCRIPTION: Clear and conditionally reenable a GPE. This completes the GPE
+ * DESCRIPTION: Clear and conditionally re-enable a GPE. This completes the GPE
  *              processing. Intended for use by asynchronous host-installed
- *              GPE handlers. The GPE is only reenabled if the EnableForRun bit
+ *              GPE handlers. The GPE is only re-enabled if the EnableForRun 
bit
  *              is set in the GPE info.
  *
  
******************************************************************************/
diff --git a/drivers/bus/acpi/acpica/executer/exconvrt.c 
b/drivers/bus/acpi/acpica/executer/exconvrt.c
index 398a700592..b32bb2f4bb 100644
--- a/drivers/bus/acpi/acpica/executer/exconvrt.c
+++ b/drivers/bus/acpi/acpica/executer/exconvrt.c
@@ -600,7 +600,7 @@ AcpiExConvertToString (
         {
             if (Base == 16)
             {
-                /* Emit 0x prefix for explict/implicit hex conversion */
+                /* Emit 0x prefix for explicit/implicit hex conversion */
 
                 *NewBuf++ = '0';
                 *NewBuf++ = 'x';
diff --git a/drivers/bus/acpi/acpica/executer/exfield.c 
b/drivers/bus/acpi/acpica/executer/exfield.c
index 917cd2fd53..f4c4139b97 100644
--- a/drivers/bus/acpi/acpica/executer/exfield.c
+++ b/drivers/bus/acpi/acpica/executer/exfield.c
@@ -79,6 +79,17 @@ const UINT8     AcpiProtocolLengths[] =
     0xFF                        /* F - ATTRIB_RAW_PROCESS_BYTES */
 };
 
+#define PCC_MASTER_SUBSPACE     3
+
+/*
+ * The following macros determine a given offset is a COMD field.
+ * According to the specification, generic subspaces (types 0-2) contains a
+ * 2-byte COMD field at offset 4 and master subspaces (type 3) contains a 
4-byte
+ * COMD field starting at offset 12.
+ */
+#define GENERIC_SUBSPACE_COMMAND(a)     (4 == a || a == 5)
+#define MASTER_SUBSPACE_COMMAND(a)      (12 <= a && a <= 15)
+
 
 
/*******************************************************************************
  *
@@ -229,6 +240,23 @@ AcpiExReadDataFromField (
         Status = AcpiExReadGpio (ObjDesc, Buffer);
         goto Exit;
     }
+    else if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_REGION_FIELD) &&
+        (ObjDesc->Field.RegionObj->Region.SpaceId == 
ACPI_ADR_SPACE_PLATFORM_COMM))
+    {
+        /*
+         * Reading from a PCC field unit does not require the handler because
+         * it only requires reading from the InternalPccBuffer.
+         */
+        ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
+            "PCC FieldRead bits %u\n", ObjDesc->Field.BitLength));
+
+        memcpy (Buffer, ObjDesc->Field.RegionObj->Field.InternalPccBuffer +
+        ObjDesc->Field.BaseByteOffset, (ACPI_SIZE) ACPI_ROUND_BITS_UP_TO_BYTES 
(
+            ObjDesc->Field.BitLength));
+
+        *RetBufferDesc = BufferDesc;
+        return AE_OK;
+    }
 
     ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
         "FieldRead [TO]:   Obj %p, Type %X, Buf %p, ByteLen %X\n",
@@ -285,6 +313,7 @@ AcpiExWriteDataToField (
 {
     ACPI_STATUS             Status;
     UINT32                  BufferLength;
+    UINT32                  DataLength;
     void                    *Buffer;
 
 
@@ -331,6 +360,39 @@ AcpiExWriteDataToField (
         Status = AcpiExWriteSerialBus (SourceDesc, ObjDesc, ResultDesc);
         return_ACPI_STATUS (Status);
     }
+    else if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_REGION_FIELD) &&
+             (ObjDesc->Field.RegionObj->Region.SpaceId == 
ACPI_ADR_SPACE_PLATFORM_COMM))
+    {
+        /*
+         * According to the spec a write to the COMD field will invoke the
+         * region handler. Otherwise, write to the PccInternal buffer. This
+         * implementation will use the offsets specified rather than the name
+         * of the field. This is considered safer because some firmware tools
+         * are known to obfiscate named objects.
+         */
+        DataLength = (ACPI_SIZE) ACPI_ROUND_BITS_UP_TO_BYTES (
+            ObjDesc->Field.BitLength);
+        memcpy (ObjDesc->Field.RegionObj->Field.InternalPccBuffer +
+            ObjDesc->Field.BaseByteOffset,
+            SourceDesc->Buffer.Pointer, DataLength);
+
+        if ((ObjDesc->Field.RegionObj->Region.Address == PCC_MASTER_SUBSPACE &&
+           MASTER_SUBSPACE_COMMAND (ObjDesc->Field.BaseByteOffset)) ||
+           GENERIC_SUBSPACE_COMMAND (ObjDesc->Field.BaseByteOffset))
+        {
+            /* Perform the write */
+
+            ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
+                "PCC COMD field has been written. Invoking PCC handler 
now.\n"));
+
+            Status = AcpiExAccessRegion (
+                ObjDesc, 0, (UINT64 *) 
ObjDesc->Field.RegionObj->Field.InternalPccBuffer,
+                ACPI_WRITE);
+            return_ACPI_STATUS (Status);
+        }
+        return (AE_OK);
+    }
+
 
     /* Get a pointer to the data to be written */
 
diff --git a/drivers/bus/acpi/acpica/executer/exserial.c 
b/drivers/bus/acpi/acpica/executer/exserial.c
index 2c7bf8bb38..005e7d5683 100644
--- a/drivers/bus/acpi/acpica/executer/exserial.c
+++ b/drivers/bus/acpi/acpica/executer/exserial.c
@@ -57,7 +57,7 @@
  * FUNCTION:    AcpiExReadGpio
  *
  * PARAMETERS:  ObjDesc             - The named field to read
- *              Buffer              - Where the return data is returnd
+ *              Buffer              - Where the return data is returned
  *
  * RETURN:      Status
  *
diff --git a/drivers/bus/acpi/acpica/executer/exutils.c 
b/drivers/bus/acpi/acpica/executer/exutils.c
index 0c2820b8ee..1334471a86 100644
--- a/drivers/bus/acpi/acpica/executer/exutils.c
+++ b/drivers/bus/acpi/acpica/executer/exutils.c
@@ -217,7 +217,7 @@ AcpiExTruncateFor32bitTable (
  * RETURN:      None
  *
  * DESCRIPTION: Obtain the ACPI hardware Global Lock, only if the field
- *              flags specifiy that it is to be obtained before field access.
+ *              flags specify that it is to be obtained before field access.
  *
  
******************************************************************************/
 
diff --git a/drivers/bus/acpi/acpica/include/acclib.h 
b/drivers/bus/acpi/acpica/include/acclib.h
index 6e23fc914b..44f79d0843 100644
--- a/drivers/bus/acpi/acpica/include/acclib.h
+++ b/drivers/bus/acpi/acpica/include/acclib.h
@@ -237,7 +237,7 @@ sprintf (
 
 /*
  * NOTE: Currently we only need to update errno for file IOs. Other
- *       Clibrary invocations in ACPICA do not make descisions according to
+ *       Clibrary invocations in ACPICA do not make decisions according to
  *       the errno.
  */
 extern int errno;
diff --git a/drivers/bus/acpi/acpica/include/acconfig.h 
b/drivers/bus/acpi/acpica/include/acconfig.h
index 12267bfb69..4a95e203ad 100644
--- a/drivers/bus/acpi/acpica/include/acconfig.h
+++ b/drivers/bus/acpi/acpica/include/acconfig.h
@@ -178,7 +178,7 @@
 
 /*
  * Maximal number of elements the Result Stack can contain,
- * it may be an arbitray value not exceeding the types of
+ * it may be an arbitrary value not exceeding the types of
  * ResultSize and ResultCount (now UINT8).
  */
 #define ACPI_RESULTS_OBJ_NUM_MAX        255
diff --git a/drivers/bus/acpi/acpica/include/acdebug.h 
b/drivers/bus/acpi/acpica/include/acdebug.h
index 4d9d3acfa7..6db3e3626c 100644
--- a/drivers/bus/acpi/acpica/include/acdebug.h
+++ b/drivers/bus/acpi/acpica/include/acdebug.h
@@ -51,7 +51,8 @@
 #endif
 
 
-#define ACPI_DEBUG_BUFFER_SIZE  0x4000      /* 16K buffer for return objects */
+#define ACPI_DEBUG_BUFFER_SIZE      0x4000      /* 16K buffer for return 
objects */
+#define ACPI_DEBUG_LENGTH_FORMAT    " (%.4X bits, %.3X bytes)"
 
 typedef struct acpi_db_command_info
 {
diff --git a/drivers/bus/acpi/acpica/include/acdisasm.h 
b/drivers/bus/acpi/acpica/include/acdisasm.h
index 573f2876e1..7e692515c7 100644
--- a/drivers/bus/acpi/acpica/include/acdisasm.h
+++ b/drivers/bus/acpi/acpica/include/acdisasm.h
@@ -301,6 +301,7 @@ extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt1[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdtHdr[];
+extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdtEl2[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0a[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt1[];
@@ -445,6 +446,7 @@ extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat3[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat4[];
+extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat5[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoStao[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoStaoStr[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaHdr[];
diff --git a/drivers/bus/acpi/acpica/include/acexcep.h 
b/drivers/bus/acpi/acpica/include/acexcep.h
index fe2f19b2be..3b86b7d051 100644
--- a/drivers/bus/acpi/acpica/include/acexcep.h
+++ b/drivers/bus/acpi/acpica/include/acexcep.h
@@ -326,7 +326,7 @@ static const ACPI_EXCEPTION_INFO    
AcpiGbl_ExceptionNames_Aml[] =
     EXCEP_TXT ("AE_AML_DIVIDE_BY_ZERO",         "During execution of AML 
Divide operator"),
     EXCEP_TXT ("AE_AML_BAD_NAME",               "An ACPI name contains invalid 
character(s)"),
     EXCEP_TXT ("AE_AML_NAME_NOT_FOUND",         "Could not resolve a named 
reference"),
-    EXCEP_TXT ("AE_AML_INTERNAL",               "An internal error within the 
interprete"),
+    EXCEP_TXT ("AE_AML_INTERNAL",               "An internal error within the 
interpreter"),
     EXCEP_TXT ("AE_AML_INVALID_SPACE_ID",       "An Operation Region SpaceID 
is invalid"),
     EXCEP_TXT ("AE_AML_STRING_LIMIT",           "String is longer than 200 
characters"),
     EXCEP_TXT ("AE_AML_NO_RETURN_VALUE",        "A method did not return a 
required value"),
diff --git a/drivers/bus/acpi/acpica/include/aclocal.h 
b/drivers/bus/acpi/acpica/include/aclocal.h
index 37e3f7f8f9..bd0a25d6d4 100644
--- a/drivers/bus/acpi/acpica/include/aclocal.h
+++ b/drivers/bus/acpi/acpica/include/aclocal.h
@@ -997,7 +997,7 @@ typedef struct acpi_comment_addr_node
 
 /*
  * File node - used for "Include" operator file stack and
- * depdendency tree for the -ca option
+ * dependency tree for the -ca option
  */
 typedef struct acpi_file_node
 {
diff --git a/drivers/bus/acpi/acpica/include/acmacros.h 
b/drivers/bus/acpi/acpica/include/acmacros.h
index ddb96cbd81..c216ea289e 100644
--- a/drivers/bus/acpi/acpica/include/acmacros.h
+++ b/drivers/bus/acpi/acpica/include/acmacros.h
@@ -502,7 +502,7 @@
 
 
 /*
- * Macors used for the ASL-/ASL+ converter utility
+ * Macros used for the ASL-/ASL+ converter utility
  */
 #ifdef ACPI_ASL_COMPILER
 
diff --git a/drivers/bus/acpi/acpica/include/acobject.h 
b/drivers/bus/acpi/acpica/include/acobject.h
index 10bf5ef790..150f6fb236 100644
--- a/drivers/bus/acpi/acpica/include/acobject.h
+++ b/drivers/bus/acpi/acpica/include/acobject.h
@@ -345,6 +345,7 @@ typedef struct acpi_object_region_field
     union acpi_operand_object       *RegionObj;         /* Containing OpRegion 
object */
     UINT8                           *ResourceBuffer;    /* ResourceTemplate 
for serial regions/fields */
     UINT16                          PinNumberIndex;     /* Index relative to 
previous Connection/Template */
+    UINT8                           *InternalPccBuffer; /* Internal buffer for 
fields associated with PCC */
 
 } ACPI_OBJECT_REGION_FIELD;
 
diff --git a/drivers/bus/acpi/acpica/include/acpixf.h 
b/drivers/bus/acpi/acpica/include/acpixf.h
index e8818bf800..ba6b8bba90 100644
--- a/drivers/bus/acpi/acpica/include/acpixf.h
+++ b/drivers/bus/acpi/acpica/include/acpixf.h
@@ -46,7 +46,7 @@
 
 /* Current ACPICA subsystem version in YYYYMMDD format */
 
-#define ACPI_CA_VERSION                 0x20190108
+#define ACPI_CA_VERSION                 0x20190215
 
 #include "acconfig.h"
 #include "actypes.h"
@@ -192,14 +192,6 @@ ACPI_INIT_GLOBAL (UINT8,            
AcpiGbl_CopyDsdtLocally, FALSE);
  */
 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_DoNotUseXsdt, FALSE);
 
-/*
- * Optionally support module level code by parsing an entire table as
- * a method as it is loaded. Default is TRUE.
- * NOTE, this is essentially obsolete and will be removed soon
- * (01/2018).
- */
-ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_ExecuteTablesAsMethods, TRUE);
-
 /*
  * Optionally use 32-bit FADT addresses if and when there is a conflict
  * (address mismatch) between the 32-bit and 64-bit versions of the
diff --git a/drivers/bus/acpi/acpica/include/acpredef.h 
b/drivers/bus/acpi/acpica/include/acpredef.h
index a42a6ab462..58610ad2a0 100644
--- a/drivers/bus/acpi/acpica/include/acpredef.h
+++ b/drivers/bus/acpi/acpica/include/acpredef.h
@@ -652,6 +652,21 @@ const ACPI_PREDEFINED_INFO          
AcpiGbl_PredefinedMethods[] =
     {{"_MTL",   METHOD_0ARGS,                          /* ACPI 6.0 */
                 METHOD_RETURNS (ACPI_RTYPE_INTEGER)}},
 
+    {{"_NBS",   METHOD_0ARGS,                          /* ACPI 6.3 */
+                METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
+
+    {{"_NCH",   METHOD_0ARGS,                          /* ACPI 6.3 */
+                METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
+
+    {{"_NIC",   METHOD_0ARGS,                          /* ACPI 6.3 */
+                METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
+
+    {{"_NIG",   METHOD_1ARGS (ACPI_TYPE_BUFFER),       /* ACPI 6.3 */
+                METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
+
+    {{"_NIH",   METHOD_0ARGS,                          /* ACPI 6.3 */
+                METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
+
     {{"_NTT",   METHOD_0ARGS,
                 METHOD_RETURNS (ACPI_RTYPE_INTEGER)}},
 
diff --git a/drivers/bus/acpi/acpica/include/acrestyp.h 
b/drivers/bus/acpi/acpica/include/acrestyp.h
index ab42a2ab46..847bc50cf2 100644
--- a/drivers/bus/acpi/acpica/include/acrestyp.h
+++ b/drivers/bus/acpi/acpica/include/acrestyp.h
@@ -179,7 +179,7 @@ typedef struct acpi_resource_irq
     UINT8                           DescriptorLength;
     UINT8                           Triggering;
     UINT8                           Polarity;
-    UINT8                           Sharable;
+    UINT8                           Shareable;
     UINT8                           WakeCapable;
     UINT8                           InterruptCount;
     UINT8                           Interrupts[1];
@@ -426,7 +426,7 @@ typedef struct acpi_resource_extended_irq
     UINT8                           ProducerConsumer;
     UINT8                           Triggering;
     UINT8                           Polarity;
-    UINT8                           Sharable;
+    UINT8                           Shareable;
     UINT8                           WakeCapable;
     UINT8                           InterruptCount;
     ACPI_RESOURCE_SOURCE            ResourceSource;
@@ -450,7 +450,7 @@ typedef struct acpi_resource_gpio
     UINT8                           ConnectionType;
     UINT8                           ProducerConsumer;   /* For values, see 
Producer/Consumer above */
     UINT8                           PinConfig;
-    UINT8                           Sharable;           /* For values, see 
Interrupt Attributes above */
+    UINT8                           Shareable;           /* For values, see 
Interrupt Attributes above */
     UINT8                           WakeCapable;        /* For values, see 
Interrupt Attributes above */
     UINT8                           IoRestriction;
     UINT8                           Triggering;         /* For values, see 
Interrupt Attributes above */
@@ -628,7 +628,7 @@ typedef struct acpi_resource_pin_function
 {
     UINT8                           RevisionId;
     UINT8                           PinConfig;
-    UINT8                           Sharable;           /* For values, see 
Interrupt Attributes above */
+    UINT8                           Shareable;           /* For values, see 
Interrupt Attributes above */
     UINT16                          FunctionNumber;
     UINT16                          PinTableLength;
     UINT16                          VendorLength;
@@ -642,7 +642,7 @@ typedef struct acpi_resource_pin_config
 {
     UINT8                           RevisionId;
     UINT8                           ProducerConsumer;   /* For values, see 
Producer/Consumer above */
-    UINT8                           Sharable;           /* For values, see 
Interrupt Attributes above */
+    UINT8                           Shareable;           /* For values, see 
Interrupt Attributes above */
     UINT8                           PinConfigType;
     UINT32                          PinConfigValue;
     UINT16                          PinTableLength;
@@ -686,7 +686,7 @@ typedef struct acpi_resource_pin_group_function
 {
     UINT8                           RevisionId;
     UINT8                           ProducerConsumer;   /* For values, see 
Producer/Consumer above */
-    UINT8                           Sharable;           /* For values, see 
Interrupt Attributes above */
+    UINT8                           Shareable;           /* For values, see 
Interrupt Attributes above */
     UINT16                          FunctionNumber;
     UINT16                          VendorLength;
     ACPI_RESOURCE_SOURCE            ResourceSource;
@@ -699,7 +699,7 @@ typedef struct acpi_resource_pin_group_config
 {
     UINT8                           RevisionId;
     UINT8                           ProducerConsumer;   /* For values, see 
Producer/Consumer above */
-    UINT8                           Sharable;           /* For values, see 
Interrupt Attributes above */
+    UINT8                           Shareable;           /* For values, see 
Interrupt Attributes above */
     UINT8                           PinConfigType;      /* For values, see 
PinConfigType above */
     UINT32                          PinConfigValue;
     UINT16                          VendorLength;
diff --git a/drivers/bus/acpi/acpica/include/actbinfo.h 
b/drivers/bus/acpi/acpica/include/actbinfo.h
index 47e79f22f0..327c53381d 100644
--- a/drivers/bus/acpi/acpica/include/actbinfo.h
+++ b/drivers/bus/acpi/acpica/include/actbinfo.h
@@ -129,6 +129,7 @@
 #define ACPI_GTDT0a_OFFSET(f)           (UINT16) ACPI_OFFSET 
(ACPI_GTDT_TIMER_ENTRY,f)
 #define ACPI_GTDT1_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_GTDT_WATCHDOG,f)
 #define ACPI_GTDTH_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_GTDT_HEADER,f)
+#define ACPI_GTDT_EL2_OFFSET(f)         (UINT16) ACPI_OFFSET (ACPI_GTDT_EL2,f)
 #define ACPI_HEST0_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_HEST_IA_MACHINE_CHECK,f)
 #define ACPI_HEST1_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_HEST_IA_CORRECTED,f)
 #define ACPI_HEST2_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_HEST_IA_NMI,f)
@@ -140,7 +141,7 @@
 #define ACPI_HEST11_OFFSET(f)           (UINT16) ACPI_OFFSET 
(ACPI_HEST_IA_DEFERRED_CHECK,f)
 #define ACPI_HESTN_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_HEST_NOTIFY,f)
 #define ACPI_HESTB_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_HEST_IA_ERROR_BANK,f)
-#define ACPI_HMAT0_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_HMAT_ADDRESS_RANGE,f)
+#define ACPI_HMAT0_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_HMAT_PROXIMITY_DOMAIN,f)
 #define ACPI_HMAT1_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_HMAT_LOCALITY,f)
 #define ACPI_HMAT2_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_HMAT_CACHE,f)
 #define ACPI_HMATH_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_HMAT_STRUCTURE,f)
@@ -226,6 +227,7 @@
 #define ACPI_SRAT2_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_SRAT_X2APIC_CPU_AFFINITY,f)
 #define ACPI_SRAT3_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_SRAT_GICC_AFFINITY,f)
 #define ACPI_SRAT4_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_SRAT_GIC_ITS_AFFINITY,f)
+#define ACPI_SRAT5_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_SRAT_GENERIC_AFFINITY,f)
 #define ACPI_TCPA_CLIENT_OFFSET(f)      (UINT16) ACPI_OFFSET 
(ACPI_TABLE_TCPA_CLIENT,f)
 #define ACPI_TCPA_SERVER_OFFSET(f)      (UINT16) ACPI_OFFSET 
(ACPI_TABLE_TCPA_SERVER,f)
 #define ACPI_TPM2A_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_TPM2_TRAILER,f)
@@ -253,10 +255,11 @@
 #define ACPI_SRAT1_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET 
(ACPI_SRAT_MEM_AFFINITY,f,o)
 #define ACPI_SRAT2_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET 
(ACPI_SRAT_X2APIC_CPU_AFFINITY,f,o)
 #define ACPI_SRAT3_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET 
(ACPI_SRAT_GICC_AFFINITY,f,o)
+#define ACPI_SRAT5_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET 
(ACPI_SRAT_GENERIC_AFFINITY,f,o)
 #define ACPI_GTDT_FLAG_OFFSET(f,o)      ACPI_FLAG_OFFSET (ACPI_TABLE_GTDT,f,o)
 #define ACPI_GTDT0a_FLAG_OFFSET(f,o)    ACPI_FLAG_OFFSET 
(ACPI_GTDT_TIMER_ENTRY,f,o)
 #define ACPI_GTDT1_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET 
(ACPI_GTDT_WATCHDOG,f,o)
-#define ACPI_HMAT0_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET 
(ACPI_HMAT_ADDRESS_RANGE,f,o)
+#define ACPI_HMAT0_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET 
(ACPI_HMAT_PROXIMITY_DOMAIN,f,o)
 #define ACPI_HMAT1_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET 
(ACPI_HMAT_LOCALITY,f,o)
 #define ACPI_HMAT2_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_HMAT_CACHE,f,o)
 #define ACPI_IORT3_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_IORT_SMMU,f,o)
diff --git a/drivers/bus/acpi/acpica/include/actbl1.h 
b/drivers/bus/acpi/acpica/include/actbl1.h
index 14b8ade133..4c761c870d 100644
--- a/drivers/bus/acpi/acpica/include/actbl1.h
+++ b/drivers/bus/acpi/acpica/include/actbl1.h
@@ -689,7 +689,7 @@ typedef struct acpi_dmar_hardware_unit
 #define ACPI_DMAR_INCLUDE_ALL       (1)
 
 
-/* 1: Reserved Memory Defininition */
+/* 1: Reserved Memory Definition */
 
 typedef struct acpi_dmar_reserved_memory
 {
@@ -1211,6 +1211,12 @@ typedef struct acpi_table_gtdt
 #define ACPI_GTDT_INTERRUPT_POLARITY    (1<<1)
 #define ACPI_GTDT_ALWAYS_ON             (1<<2)
 
+typedef struct acpi_gtdt_el2
+{
+    UINT32                  VirtualEL2TimerGsiv;
+    UINT32                  VirtualEL2TimerFlags;
+} ACPI_GTDT_EL2;
+
 
 /* Common GTDT subtable header */
 
@@ -1670,7 +1676,7 @@ typedef struct acpi_table_hmat
 
 enum AcpiHmatType
 {
-    ACPI_HMAT_TYPE_ADDRESS_RANGE        = 0,   /* Memory subystem address 
range */
+    ACPI_HMAT_TYPE_ADDRESS_RANGE        = 0,   /* Memory subsystem address 
range */
     ACPI_HMAT_TYPE_LOCALITY             = 1,   /* System locality latency and 
bandwidth information */
     ACPI_HMAT_TYPE_CACHE                = 2,   /* Memory side cache 
information */
     ACPI_HMAT_TYPE_RESERVED             = 3    /* 3 and greater are reserved */
@@ -1689,9 +1695,9 @@ typedef struct acpi_hmat_structure
  * HMAT Structures, correspond to Type in ACPI_HMAT_STRUCTURE
  */
 
-/* 0: Memory subystem address range */
+/* 0: Memory proximity domain attributes */
 
-typedef struct acpi_hmat_address_range
+typedef struct acpi_hmat_proximity_domain
 {
     ACPI_HMAT_STRUCTURE     Header;
     UINT16                  Flags;
@@ -1699,10 +1705,10 @@ typedef struct acpi_hmat_address_range
     UINT32                  ProcessorPD;            /* Processor proximity 
domain */
     UINT32                  MemoryPD;               /* Memory proximity domain 
*/
     UINT32                  Reserved2;
-    UINT64                  PhysicalAddressBase;    /* Physical address range 
base */
-    UINT64                  PhysicalAddressLength;  /* Physical address range 
length */
+    UINT64                  Reserved3;
+    UINT64                  Reserved4;
 
-} ACPI_HMAT_ADDRESS_RANGE;
+} ACPI_HMAT_PROXIMITY_DOMAIN;
 
 /* Masks for Flags field above */
 
diff --git a/drivers/bus/acpi/acpica/include/actbl2.h 
b/drivers/bus/acpi/acpica/include/actbl2.h
index 3d2c070647..330445fd89 100644
--- a/drivers/bus/acpi/acpica/include/actbl2.h
+++ b/drivers/bus/acpi/acpica/include/actbl2.h
@@ -195,7 +195,7 @@ typedef struct acpi_iort_memory_access
 typedef struct acpi_iort_its_group
 {
     UINT32                  ItsCount;
-    UINT32                  Identifiers[1];         /* GIC ITS identifier 
arrary */
+    UINT32                  Identifiers[1];         /* GIC ITS identifier 
array */
 
 } ACPI_IORT_ITS_GROUP;
 
@@ -765,7 +765,7 @@ typedef struct acpi_madt_local_x2apic_nmi
 } ACPI_MADT_LOCAL_X2APIC_NMI;
 
 
-/* 11: Generic Interrupt (ACPI 5.0 + ACPI 6.0 changes) */
+/* 11: Generic Interrupt - GICC (ACPI 5.0 + ACPI 6.0 + ACPI 6.3 changes) */
 
 typedef struct acpi_madt_generic_interrupt
 {
@@ -784,7 +784,8 @@ typedef struct acpi_madt_generic_interrupt
     UINT64                  GicrBaseAddress;
     UINT64                  ArmMpidr;
     UINT8                   EfficiencyClass;
-    UINT8                   Reserved2[3];
+    UINT8                   Reserved2[1];
+    UINT16                  SpeInterrupt;       /* ACPI 6.3 */
 
 } ACPI_MADT_GENERIC_INTERRUPT;
 
@@ -1629,6 +1630,7 @@ typedef struct acpi_pdtt_channel
 
 #define ACPI_PDTT_RUNTIME_TRIGGER           (1)
 #define ACPI_PDTT_WAIT_COMPLETION           (1<<1)
+#define ACPI_PDTT_TRIGGER_ORDER             (1<<2)
 
 
 
/*******************************************************************************
@@ -1765,8 +1767,11 @@ typedef struct acpi_pptt_processor
 
 /* Flags */
 
-#define ACPI_PPTT_PHYSICAL_PACKAGE          (1)     /* Physical package */
-#define ACPI_PPTT_ACPI_PROCESSOR_ID_VALID   (2)     /* ACPI Processor ID valid 
*/
+#define ACPI_PPTT_PHYSICAL_PACKAGE          (1)
+#define ACPI_PPTT_ACPI_PROCESSOR_ID_VALID   (1<<1)
+#define ACPI_PPTT_ACPI_PROCESSOR_IS_THREAD  (1<<2)  /* ACPI 6.3 */
+#define ACPI_PPTT_ACPI_LEAF_NODE            (1<<3)  /* ACPI 6.3 */
+#define ACPI_PPTT_ACPI_IDENTICAL            (1<<4)  /* ACPI 6.3 */
 
 
 /* 1: Cache Type Structure */
diff --git a/drivers/bus/acpi/acpica/include/actbl3.h 
b/drivers/bus/acpi/acpica/include/actbl3.h
index 85d41d9890..0f2743fa3f 100644
--- a/drivers/bus/acpi/acpica/include/actbl3.h
+++ b/drivers/bus/acpi/acpica/include/actbl3.h
@@ -242,8 +242,9 @@ enum AcpiSratType
     ACPI_SRAT_TYPE_MEMORY_AFFINITY      = 1,
     ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY  = 2,
     ACPI_SRAT_TYPE_GICC_AFFINITY        = 3,
-    ACPI_SRAT_TYPE_GIC_ITS_AFFINITY     = 4,    /* ACPI 6.2 */
-    ACPI_SRAT_TYPE_RESERVED             = 5     /* 5 and greater are reserved 
*/
+    ACPI_SRAT_TYPE_GIC_ITS_AFFINITY     = 4, /* ACPI 6.2 */
+    ACPI_SRAT_TYPE_GENERIC_AFFINITY     = 5, /* ACPI 6.3 */
+    ACPI_SRAT_TYPE_RESERVED             = 6  /* 5 and greater are reserved */
 };
 
 /*
@@ -339,6 +340,24 @@ typedef struct acpi_srat_gic_its_affinity
 } ACPI_SRAT_GIC_ITS_AFFINITY;
 
 
+/* 5: Generic Initiator Affinity Structure (ACPI 6.3) */
+
+typedef struct acpi_srat_generic_affinity
+{
+    ACPI_SUBTABLE_HEADER    Header;
+    UINT8                   Reserved;
+    UINT8                   DeviceHandleType;
+    UINT32                  ProximityDomain;
+    UINT8                   DeviceHandle[16];
+    UINT32                  Flags;
+    UINT32                  Reserved1;
+
+} ACPI_SRAT_GENERIC_AFFINITY;
+
+/* Flags for ACPI_SRAT_GENERIC_AFFINITY */
+
+#define ACPI_SRAT_GENERIC_AFFINITY_ENABLED (1) /* 00: Use affinity structure */
+
 
/*******************************************************************************
  *
  * STAO - Status Override Table (_STA override) - ACPI 6.0
diff --git a/drivers/bus/acpi/acpica/include/actypes.h 
b/drivers/bus/acpi/acpica/include/actypes.h
index 0c96c820c3..b7c645f813 100644
--- a/drivers/bus/acpi/acpica/include/actypes.h
+++ b/drivers/bus/acpi/acpica/include/actypes.h
@@ -659,8 +659,9 @@ typedef UINT64                          ACPI_INTEGER;
 #define ACPI_NOTIFY_SHUTDOWN_REQUEST    (UINT8) 0x0C
 #define ACPI_NOTIFY_AFFINITY_UPDATE     (UINT8) 0x0D
 #define ACPI_NOTIFY_MEMORY_UPDATE       (UINT8) 0x0E
+#define ACPI_NOTIFY_DISCONNECT_RECOVER  (UINT8) 0x0F
 
-#define ACPI_GENERIC_NOTIFY_MAX         0x0E
+#define ACPI_GENERIC_NOTIFY_MAX         0x0F
 #define ACPI_SPECIFIC_NOTIFY_MAX        0x84
 
 /*
diff --git a/drivers/bus/acpi/acpica/include/platform/acefi.h 
b/drivers/bus/acpi/acpica/include/platform/acefi.h
index a8790883af..198e34d2e3 100644
--- a/drivers/bus/acpi/acpica/include/platform/acefi.h
+++ b/drivers/bus/acpi/acpica/include/platform/acefi.h
@@ -52,7 +52,7 @@
 #define DEBUGGER_THREADING          DEBUGGER_SINGLE_THREADED
 #endif /* !DEBUGGER_THREADING */
 
-/* EDK2 EFI environemnt */
+/* EDK2 EFI environment */
 
 #if defined(_EDK2_EFI)
 
diff --git a/drivers/bus/acpi/acpica/namespace/nsload.c 
b/drivers/bus/acpi/acpica/namespace/nsload.c
index c5a1921b0b..07f5b6b70e 100644
--- a/drivers/bus/acpi/acpica/namespace/nsload.c
+++ b/drivers/bus/acpi/acpica/namespace/nsload.c
@@ -125,7 +125,7 @@ AcpiNsLoadTable (
         /*
          * On error, delete any namespace objects created by this table.
          * We cannot initialize these objects, so delete them. There are
-         * a couple of expecially bad cases:
+         * a couple of especially bad cases:
          * AE_ALREADY_EXISTS - namespace collision.
          * AE_NOT_FOUND - the target of a Scope operator does not
          * exist. This target of Scope must already exist in the
diff --git a/drivers/bus/acpi/acpica/namespace/nsparse.c 
b/drivers/bus/acpi/acpica/namespace/nsparse.c
index 542c9c9345..c7e33972a6 100644
--- a/drivers/bus/acpi/acpica/namespace/nsparse.c
+++ b/drivers/bus/acpi/acpica/namespace/nsparse.c
@@ -314,66 +314,18 @@ AcpiNsParseTable (
     ACPI_FUNCTION_TRACE (NsParseTable);
 
 
-    if (AcpiGbl_ExecuteTablesAsMethods)
-    {
-        /*
-         * This case executes the AML table as one large control method.
-         * The point of this is to execute any module-level code in-place
-         * as the table is parsed. Some AML code depends on this behavior.
-         *
-         * It is a run-time option at this time, but will eventually become
-         * the default.
-         *
-         * Note: This causes the table to only have a single-pass parse.
-         * However, this is compatible with other ACPI implementations.
-         */
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_PARSE,
-            "%s: **** Start table execution pass\n", ACPI_GET_FUNCTION_NAME));
-
-        Status = AcpiNsExecuteTable (TableIndex, StartNode);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-    else
-    {
-        /*
-         * AML Parse, pass 1
-         *
-         * In this pass, we load most of the namespace. Control methods
-         * are not parsed until later. A parse tree is not created.
-         * Instead, each Parser Op subtree is deleted when it is finished.
-         * This saves a great deal of memory, and allows a small cache of
-         * parse objects to service the entire parse. The second pass of
-         * the parse then performs another complete parse of the AML.
-         */
-        ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** Start pass 1\n"));
-
-        Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS1,
-            TableIndex, StartNode);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
+    /*
+     * Executes the AML table as one large control method.
+     * The point of this is to execute any module-level code in-place
+     * as the table is parsed. Some AML code depends on this behavior.
+     *
+     * Note: This causes the table to only have a single-pass parse.
+     * However, this is compatible with other ACPI implementations.
+     */
+    ACPI_DEBUG_PRINT_RAW ((ACPI_DB_PARSE,
+        "%s: **** Start table execution pass\n", ACPI_GET_FUNCTION_NAME));
 
-        /*
-         * AML Parse, pass 2
-         *
-         * In this pass, we resolve forward references and other things
-         * that could not be completed during the first pass.
-         * Another complete parse of the AML is performed, but the
-         * overhead of this is compensated for by the fact that the
-         * parse objects are all cached.
-         */
-        ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** Start pass 2\n"));
-        Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS2,
-            TableIndex, StartNode);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
+    Status = AcpiNsExecuteTable (TableIndex, StartNode);
 
     return_ACPI_STATUS (Status);
 }
diff --git a/drivers/bus/acpi/acpica/namespace/nsutils.c 
b/drivers/bus/acpi/acpica/namespace/nsutils.c
index e234855cb1..fe0fd35e05 100644
--- a/drivers/bus/acpi/acpica/namespace/nsutils.c
+++ b/drivers/bus/acpi/acpica/namespace/nsutils.c
@@ -453,7 +453,7 @@ AcpiNsInternalizeName (
  *
  * FUNCTION:    AcpiNsExternalizeName
  *
- * PARAMETERS:  InternalNameLength  - Lenth of the internal name below
+ * PARAMETERS:  InternalNameLength  - Length of the internal name below
  *              InternalName        - Internal representation of name
  *              ConvertedNameLength - Where the length is returned
  *              ConvertedName       - Where the resulting external name
diff --git a/drivers/bus/acpi/acpica/parser/psloop.c 
b/drivers/bus/acpi/acpica/parser/psloop.c
index 61ff2d1fcb..3170992674 100644
--- a/drivers/bus/acpi/acpica/parser/psloop.c
+++ b/drivers/bus/acpi/acpica/parser/psloop.c
@@ -70,13 +70,6 @@ AcpiPsGetArguments (
     UINT8                   *AmlOpStart,
     ACPI_PARSE_OBJECT       *Op);
 
-static void
-AcpiPsLinkModuleCode (
-    ACPI_PARSE_OBJECT       *ParentOp,
-    UINT8                   *AmlStart,
-    UINT32                  AmlLength,
-    ACPI_OWNER_ID           OwnerId);
-
 
 
/*******************************************************************************
  *
@@ -100,7 +93,6 @@ AcpiPsGetArguments (
 {
     ACPI_STATUS             Status = AE_OK;
     ACPI_PARSE_OBJECT       *Arg = NULL;
-    const ACPI_OPCODE_INFO  *OpInfo;
 
 
     ACPI_FUNCTION_TRACE_PTR (PsGetArguments, WalkState);
@@ -179,82 +171,6 @@ AcpiPsGetArguments (
             "Final argument count: %8.8X pass %u\n",
             WalkState->ArgCount, WalkState->PassNumber));
 
-        /*
-         * This case handles the legacy option that groups all module-level
-         * code blocks together and defers execution until all of the tables
-         * are loaded. Execute all of these blocks at this time.
-         * Execute any module-level code that was detected during the table
-         * load phase.
-         *
-         * Note: this option is deprecated and will be eliminated in the
-         * future. Use of this option can cause problems with AML code that
-         * depends upon in-order immediate execution of module-level code.
-         */
-        if (!AcpiGbl_ExecuteTablesAsMethods &&
-            (WalkState->PassNumber <= ACPI_IMODE_LOAD_PASS2) &&
-            ((WalkState->ParseFlags & ACPI_PARSE_DISASSEMBLE) == 0))
-        {
-            /*
-             * We want to skip If/Else/While constructs during Pass1 because we
-             * want to actually conditionally execute the code during Pass2.
-             *
-             * Except for disassembly, where we always want to walk the
-             * If/Else/While packages
-             */
-            switch (Op->Common.AmlOpcode)
-            {
-            case AML_IF_OP:
-            case AML_ELSE_OP:
-            case AML_WHILE_OP:
-                /*
-                 * Currently supported module-level opcodes are:
-                 * IF/ELSE/WHILE. These appear to be the most common,
-                 * and easiest to support since they open an AML
-                 * package.
-                 */
-                if (WalkState->PassNumber == ACPI_IMODE_LOAD_PASS1)
-                {
-                    AcpiPsLinkModuleCode (Op->Common.Parent, AmlOpStart,
-                        (UINT32) (WalkState->ParserState.PkgEnd - AmlOpStart),
-                        WalkState->OwnerId);
-                }
-
-                ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
-                    "Pass1: Skipping an If/Else/While body\n"));
-
-                /* Skip body of if/else/while in pass 1 */
-
-                WalkState->ParserState.Aml = WalkState->ParserState.PkgEnd;
-                WalkState->ArgCount = 0;
-                break;
-
-            default:
-                /*
-                 * Check for an unsupported executable opcode at module
-                 * level. We must be in PASS1, the parent must be a SCOPE,
-                 * The opcode class must be EXECUTE, and the opcode must
-                 * not be an argument to another opcode.
-                 */
-                if ((WalkState->PassNumber == ACPI_IMODE_LOAD_PASS1) &&
-                    (Op->Common.Parent->Common.AmlOpcode == AML_SCOPE_OP))
-                {
-                    OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-                    if ((OpInfo->Class == AML_CLASS_EXECUTE) &&
-                        (!Arg))
-                    {
-                        ACPI_WARNING ((AE_INFO,
-                            "Unsupported module-level executable opcode "
-                            "0x%.2X at table offset 0x%.4X",
-                            Op->Common.AmlOpcode,
-                            (UINT32) (ACPI_PTR_DIFF (AmlOpStart,
-                                WalkState->ParserState.AmlStart) +
-                                sizeof (ACPI_TABLE_HEADER))));
-                    }
-                }
-                break;
-            }
-        }
-
         /* Special processing for certain opcodes */
 
         switch (Op->Common.AmlOpcode)
@@ -326,117 +242,6 @@ AcpiPsGetArguments (
 }
 
 
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsLinkModuleCode
- *
- * PARAMETERS:  ParentOp            - Parent parser op
- *              AmlStart            - Pointer to the AML
- *              AmlLength           - Length of executable AML
- *              OwnerId             - OwnerId of module level code
- *
- * RETURN:      None.
- *
- * DESCRIPTION: Wrap the module-level code with a method object and link the
- *              object to the global list. Note, the mutex field of the method
- *              object is used to link multiple module-level code objects.
- *
- * NOTE: In this legacy option, each block of detected executable AML
- * code that is outside of any control method is wrapped with a temporary
- * control method object and placed on a global list below.
- *
- * This function executes the module-level code for all tables only after
- * all of the tables have been loaded. It is a legacy option and is
- * not compatible with other ACPI implementations. See AcpiNsLoadTable.
- *
- * This function will be removed when the legacy option is removed.
- *
- 
******************************************************************************/
-
-static void
-AcpiPsLinkModuleCode (
-    ACPI_PARSE_OBJECT       *ParentOp,
-    UINT8                   *AmlStart,
-    UINT32                  AmlLength,
-    ACPI_OWNER_ID           OwnerId)
-{
-    ACPI_OPERAND_OBJECT     *Prev;
-    ACPI_OPERAND_OBJECT     *Next;
-    ACPI_OPERAND_OBJECT     *MethodObj;
-    ACPI_NAMESPACE_NODE     *ParentNode;
-
-
-    ACPI_FUNCTION_TRACE (PsLinkModuleCode);
-
-
-    /* Get the tail of the list */
-
-    Prev = Next = AcpiGbl_ModuleCodeList;
-    while (Next)
-    {
-        Prev = Next;
-        Next = Next->Method.Mutex;
-    }
-
-    /*
-     * Insert the module level code into the list. Merge it if it is
-     * adjacent to the previous element.
-     */
-    if (!Prev ||
-       ((Prev->Method.AmlStart + Prev->Method.AmlLength) != AmlStart))
-    {
-        /* Create, initialize, and link a new temporary method object */
-
-        MethodObj = AcpiUtCreateInternalObject (ACPI_TYPE_METHOD);
-        if (!MethodObj)
-        {
-            return_VOID;
-        }
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
-            "Create/Link new code block: %p\n", MethodObj));
-
-        if (ParentOp->Common.Node)
-        {
-            ParentNode = ParentOp->Common.Node;
-        }
-        else
-        {
-            ParentNode = AcpiGbl_RootNode;
-        }
-
-        MethodObj->Method.AmlStart = AmlStart;
-        MethodObj->Method.AmlLength = AmlLength;
-        MethodObj->Method.OwnerId = OwnerId;
-        MethodObj->Method.InfoFlags |= ACPI_METHOD_MODULE_LEVEL;
-
-        /*
-         * Save the parent node in NextObject. This is cheating, but we
-         * don't want to expand the method object.
-         */
-        MethodObj->Method.NextObject =
-            ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, ParentNode);
-
-        if (!Prev)
-        {
-            AcpiGbl_ModuleCodeList = MethodObj;
-        }
-        else
-        {
-            Prev->Method.Mutex = MethodObj;
-        }
-    }
-    else
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
-            "Appending to existing code block: %p\n", Prev));
-
-        Prev->Method.AmlLength += AmlLength;
-    }
-
-    return_VOID;
-}
-
 
/*******************************************************************************
  *
  * FUNCTION:    AcpiPsParseLoop
diff --git a/drivers/bus/acpi/acpica/parser/psparse.c 
b/drivers/bus/acpi/acpica/parser/psparse.c
index f4181b99c2..dfd1469999 100644
--- a/drivers/bus/acpi/acpica/parser/psparse.c
+++ b/drivers/bus/acpi/acpica/parser/psparse.c
@@ -572,12 +572,12 @@ AcpiPsParseAml (
             if (Status == AE_ABORT_METHOD)
             {
                 AcpiNsPrintNodePathname (
-                    WalkState->MethodNode, "Method aborted:");
+                    WalkState->MethodNode, "Aborting method");
                 AcpiOsPrintf ("\n");
             }
             else
             {
-                ACPI_ERROR_METHOD ("Method parse/execution failed",
+                ACPI_ERROR_METHOD ("Aborting method",
                     WalkState->MethodNode, NULL, Status);
             }
             AcpiExEnterInterpreter ();
diff --git a/drivers/bus/acpi/acpica/resources/rsdumpinfo.c 
b/drivers/bus/acpi/acpica/resources/rsdumpinfo.c
index bb6fe481fe..12bd7d04ef 100644
--- a/drivers/bus/acpi/acpica/resources/rsdumpinfo.c
+++ b/drivers/bus/acpi/acpica/resources/rsdumpinfo.c
@@ -72,7 +72,7 @@ ACPI_RSDUMP_INFO        AcpiRsDumpIrq[7] =
     {ACPI_RSD_UINT8 ,   ACPI_RSD_OFFSET (Irq.DescriptorLength),             
"Descriptor Length",        NULL},
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Triggering),                   
"Triggering",               AcpiGbl_HeDecode},
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Polarity),                     
"Polarity",                 AcpiGbl_LlDecode},
-    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Irq.Sharable),                     
"Sharing",                  AcpiGbl_ShrDecode},
+    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Irq.Shareable),                    
"Sharing",                  AcpiGbl_ShrDecode},
     {ACPI_RSD_UINT8 ,   ACPI_RSD_OFFSET (Irq.InterruptCount),               
"Interrupt Count",          NULL},
     {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Irq.Interrupts[0]),                
"Interrupt List",           NULL}
 };
@@ -216,7 +216,7 @@ ACPI_RSDUMP_INFO        AcpiRsDumpExtIrq[8] =
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.ProducerConsumer),     
"Type",                     AcpiGbl_ConsumeDecode},
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Triggering),           
"Triggering",               AcpiGbl_HeDecode},
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Polarity),             
"Polarity",                 AcpiGbl_LlDecode},
-    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Sharable),             
"Sharing",                  AcpiGbl_ShrDecode},
+    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Shareable),            
"Sharing",                  AcpiGbl_ShrDecode},
     {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (ExtendedIrq.ResourceSource),       
NULL,                       NULL},
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (ExtendedIrq.InterruptCount),       
"Interrupt Count",          NULL},
     {ACPI_RSD_DWORDLIST,ACPI_RSD_OFFSET (ExtendedIrq.Interrupts[0]),        
"Interrupt List",           NULL}
@@ -239,7 +239,7 @@ ACPI_RSDUMP_INFO        AcpiRsDumpGpio[16] =
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (Gpio.ConnectionType),              
"ConnectionType",           AcpiGbl_CtDecode},
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Gpio.ProducerConsumer),            
"ProducerConsumer",         AcpiGbl_ConsumeDecode},
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (Gpio.PinConfig),                   
"PinConfig",                AcpiGbl_PpcDecode},
-    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Gpio.Sharable),                    
"Sharing",                  AcpiGbl_ShrDecode},
+    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Gpio.Shareable),                   
"Sharing",                  AcpiGbl_ShrDecode},
     {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Gpio.IoRestriction),               
"IoRestriction",            AcpiGbl_IorDecode},
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Gpio.Triggering),                  
"Triggering",               AcpiGbl_HeDecode},
     {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Gpio.Polarity),                    
"Polarity",                 AcpiGbl_LlDecode},
@@ -257,7 +257,7 @@ ACPI_RSDUMP_INFO        AcpiRsDumpPinFunction[10] =
     {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinFunction),        
"PinFunction",              NULL},
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (PinFunction.RevisionId),           
"RevisionId",               NULL},
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (PinFunction.PinConfig),            
"PinConfig",                AcpiGbl_PpcDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinFunction.Sharable),             
"Sharing",                  AcpiGbl_ShrDecode},
+    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinFunction.Shareable),            
"Sharing",                  AcpiGbl_ShrDecode},
     {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (PinFunction.FunctionNumber),       
"FunctionNumber",           NULL},
     {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (PinFunction.ResourceSource),       
"ResourceSource",           NULL},
     {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (PinFunction.PinTableLength),       
"PinTableLength",           NULL},
@@ -271,7 +271,7 @@ ACPI_RSDUMP_INFO        AcpiRsDumpPinConfig[11] =
     {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinConfig),          
"PinConfig",                NULL},
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (PinConfig.RevisionId),             
"RevisionId",               NULL},
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinConfig.ProducerConsumer),       
"ProducerConsumer",         AcpiGbl_ConsumeDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinConfig.Sharable),               
"Sharing",                  AcpiGbl_ShrDecode},
+    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinConfig.Shareable),              
"Sharing",                  AcpiGbl_ShrDecode},
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (PinConfig.PinConfigType),          
"PinConfigType",            NULL},
     {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (PinConfig.PinConfigValue),         
"PinConfigValue",           NULL},
     {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (PinConfig.ResourceSource),         
"ResourceSource",           NULL},
@@ -298,7 +298,7 @@ ACPI_RSDUMP_INFO        AcpiRsDumpPinGroupFunction[9] =
     {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinGroupFunction),   
"PinGroupFunction",         NULL},
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (PinGroupFunction.RevisionId),      
"RevisionId",               NULL},
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupFunction.ProducerConsumer), 
"ProducerConsumer",        AcpiGbl_ConsumeDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupFunction.Sharable),        
"Sharing",                  AcpiGbl_ShrDecode},
+    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupFunction.Shareable),       
"Sharing",                  AcpiGbl_ShrDecode},
     {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (PinGroupFunction.FunctionNumber),  
"FunctionNumber",           NULL},
     {ACPI_RSD_SOURCE_LABEL, ACPI_RSD_OFFSET 
(PinGroupFunction.ResourceSourceLabel), "ResourceSourceLabel", NULL},
     {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (PinGroupFunction.ResourceSource),  
"ResourceSource",           NULL},
@@ -311,7 +311,7 @@ ACPI_RSDUMP_INFO        AcpiRsDumpPinGroupConfig[10] =
     {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinGroupConfig),     
"PinGroupConfig",           NULL},
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (PinGroupConfig.RevisionId),        
"RevisionId",               NULL},
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupConfig.ProducerConsumer),  
"ProducerConsumer",         AcpiGbl_ConsumeDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupConfig.Sharable),          
"Sharing",                  AcpiGbl_ShrDecode},
+    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupConfig.Shareable),         
"Sharing",                  AcpiGbl_ShrDecode},
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (PinGroupConfig.PinConfigType),     
"PinConfigType",            NULL},
     {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (PinGroupConfig.PinConfigValue),    
"PinConfigValue",           NULL},
     {ACPI_RSD_SOURCE_LABEL, ACPI_RSD_OFFSET 
(PinGroupConfig.ResourceSourceLabel), "ResourceSourceLabel", NULL},
diff --git a/drivers/bus/acpi/acpica/resources/rsirq.c 
b/drivers/bus/acpi/acpica/resources/rsirq.c
index 8514445f98..50a6001340 100644
--- a/drivers/bus/acpi/acpica/resources/rsirq.c
+++ b/drivers/bus/acpi/acpica/resources/rsirq.c
@@ -93,7 +93,7 @@ ACPI_RSCONVERT_INFO     AcpiRsGetIrq[9] =
                         AML_OFFSET (Irq.Flags),
                         3},
 
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Sharable),
+    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Shareable),
                         AML_OFFSET (Irq.Flags),
                         4},
 
@@ -133,7 +133,7 @@ ACPI_RSCONVERT_INFO     AcpiRsSetIrq[14] =
                         AML_OFFSET (Irq.Flags),
                         3},
 
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Sharable),
+    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Shareable),
                         AML_OFFSET (Irq.Flags),
                         4},
 
@@ -180,7 +180,7 @@ ACPI_RSCONVERT_INFO     AcpiRsSetIrq[14] =
                         ACPI_ACTIVE_HIGH},
 
     {ACPI_RSC_EXIT_NE,  ACPI_RSC_COMPARE_VALUE,
-                        ACPI_RS_OFFSET (Data.Irq.Sharable),
+                        ACPI_RS_OFFSET (Data.Irq.Shareable),
                         ACPI_EXCLUSIVE},
 
     /* We can optimize to a 2-byte IrqNoFlags() descriptor */
@@ -221,7 +221,7 @@ ACPI_RSCONVERT_INFO     AcpiRsConvertExtIrq[10] =
                         AML_OFFSET (ExtendedIrq.Flags),
                         2},
 
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ExtendedIrq.Sharable),
+    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ExtendedIrq.Shareable),
                         AML_OFFSET (ExtendedIrq.Flags),
                         3},
 
diff --git a/drivers/bus/acpi/acpica/resources/rsserial.c 
b/drivers/bus/acpi/acpica/resources/rsserial.c
index 31edd7203c..aed946b1f7 100644
--- a/drivers/bus/acpi/acpica/resources/rsserial.c
+++ b/drivers/bus/acpi/acpica/resources/rsserial.c
@@ -78,7 +78,7 @@ ACPI_RSCONVERT_INFO     AcpiRsConvertGpio[18] =
                         AML_OFFSET (Gpio.Flags),
                         0},
 
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Gpio.Sharable),
+    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Gpio.Shareable),
                         AML_OFFSET (Gpio.IntFlags),
                         3},
 
@@ -166,7 +166,7 @@ ACPI_RSCONVERT_INFO     AcpiRsConvertPinFunction[13] =
                         AML_OFFSET (PinFunction.RevisionId),
                         1},
 
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinFunction.Sharable),
+    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinFunction.Shareable),
                         AML_OFFSET (PinFunction.Flags),
                         0},
 
@@ -531,7 +531,7 @@ ACPI_RSCONVERT_INFO     AcpiRsConvertPinConfig[14] =
                         AML_OFFSET (PinConfig.RevisionId),
                         1},
 
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinConfig.Sharable),
+    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinConfig.Shareable),
                         AML_OFFSET (PinConfig.Flags),
                         0},
 
@@ -667,7 +667,7 @@ ACPI_RSCONVERT_INFO     AcpiRsConvertPinGroupFunction[13] =
                         AML_OFFSET (PinGroupFunction.RevisionId),
                         1},
 
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinGroupFunction.Sharable),
+    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinGroupFunction.Shareable),
                         AML_OFFSET (PinGroupFunction.Flags),
                         0},
 
@@ -734,7 +734,7 @@ ACPI_RSCONVERT_INFO     AcpiRsConvertPinGroupConfig[14] =
                         AML_OFFSET (PinGroupConfig.RevisionId),
                         1},
 
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinGroupConfig.Sharable),
+    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinGroupConfig.Shareable),
                         AML_OFFSET (PinGroupConfig.Flags),
                         0},
 
diff --git a/drivers/bus/acpi/acpica/tables/tbfadt.c 
b/drivers/bus/acpi/acpica/tables/tbfadt.c
index f56d31e96f..7a1c82fa14 100644
--- a/drivers/bus/acpi/acpica/tables/tbfadt.c
+++ b/drivers/bus/acpi/acpica/tables/tbfadt.c
@@ -632,7 +632,7 @@ AcpiTbConvertFadt (
                  * 64-bit X length field.
                  * Note: If the legacy length field is > 0xFF bits, ignore
                  * this check. (GPE registers can be larger than the
-                 * 64-bit GAS structure can accomodate, 0xFF bits).
+                 * 64-bit GAS structure can accommodate, 0xFF bits).
                  */
                 if ((ACPI_MUL_8 (Length) <= ACPI_UINT8_MAX) &&
                     (Address64->BitWidth != ACPI_MUL_8 (Length)))
diff --git a/drivers/bus/acpi/acpica/tables/tbxface.c 
b/drivers/bus/acpi/acpica/tables/tbxface.c
index 2ceb049fe2..6974964033 100644
--- a/drivers/bus/acpi/acpica/tables/tbxface.c
+++ b/drivers/bus/acpi/acpica/tables/tbxface.c
@@ -155,7 +155,7 @@ AcpiInitializeTables (
     /*
      * Get the root table (RSDT or XSDT) and extract all entries to the local
      * Root Table Array. This array contains the information of the RSDT/XSDT
-     * in a common, more useable format.
+     * in a common, more usable format.
      */
     Status = AcpiTbParseRootTable (RsdpAddress);
     return_ACPI_STATUS (Status);
@@ -226,7 +226,7 @@ AcpiReallocateRootTable (
     {
         /*
          * Now it's safe to do full table validation. We can do deferred
-         * table initilization here once the flag is set.
+         * table initialization here once the flag is set.
          */
         AcpiGbl_EnableTableValidation = TRUE;
         for (i = 0; i < AcpiGbl_RootTableList.CurrentTableCount; ++i)
diff --git a/drivers/bus/acpi/acpica/tables/tbxfload.c 
b/drivers/bus/acpi/acpica/tables/tbxfload.c
index ad2b766506..32095dccf8 100644
--- a/drivers/bus/acpi/acpica/tables/tbxfload.c
+++ b/drivers/bus/acpi/acpica/tables/tbxfload.c
@@ -111,25 +111,19 @@ AcpiLoadTables (
             "While loading namespace from ACPI tables"));
     }
 
-    if (AcpiGbl_ExecuteTablesAsMethods)
+    /*
+     * Initialize the objects in the namespace that remain uninitialized.
+     * This runs the executable AML that may be part of the declaration of
+     * these name objects:
+     *     OperationRegions, BufferFields, Buffers, and Packages.
+     *
+     */
+    Status = AcpiNsInitializeObjects ();
+    if (ACPI_SUCCESS (Status))
     {
-        /*
-         * If the module-level code support is enabled, initialize the objects
-         * in the namespace that remain uninitialized. This runs the executable
-         * AML that may be part of the declaration of these name objects:
-         *     OperationRegions, BufferFields, Buffers, and Packages.
-         *
-         * Note: The module-level code is optional at this time, but will
-         * become the default in the future.
-         */
-        Status = AcpiNsInitializeObjects ();
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
+        AcpiGbl_NamespaceInitialized = TRUE;
     }
 
-    AcpiGbl_NamespaceInitialized = TRUE;
     return_ACPI_STATUS (Status);
 }
 
diff --git a/drivers/bus/acpi/acpica/utilities/utclib.c 
b/drivers/bus/acpi/acpica/utilities/utclib.c
index d0547cf9c1..2afe7f1c1b 100644
--- a/drivers/bus/acpi/acpica/utilities/utclib.c
+++ b/drivers/bus/acpi/acpica/utilities/utclib.c
@@ -291,7 +291,7 @@ strlen (
  * PARAMETERS:  String              - Null terminated string
  *              Delimiters          - Delimiters to match
  *
- * RETURN:      The first occurance in the string of any of the bytes in the
+ * RETURN:      The first occurrence in the string of any of the bytes in the
  *              delimiters
  *
  * DESCRIPTION: Search a string for any of a set of the delimiters
@@ -681,7 +681,7 @@ strstr (
  * FUNCTION:    strtoul
  *
  * PARAMETERS:  String          - Null terminated string
- *              Terminater      - Where a pointer to the terminating byte is
+ *              Terminator      - Where a pointer to the terminating byte is
  *                                returned
  *              Base            - Radix of the string
  *
diff --git a/drivers/bus/acpi/acpica/utilities/utdecode.c 
b/drivers/bus/acpi/acpica/utilities/utdecode.c
index d8423a907a..9bd3d501fa 100644
--- a/drivers/bus/acpi/acpica/utilities/utdecode.c
+++ b/drivers/bus/acpi/acpica/utilities/utdecode.c
@@ -525,6 +525,7 @@ static const char           
*AcpiGbl_GenericNotify[ACPI_GENERIC_NOTIFY_MAX + 1]
     /* 0C */ "Reserved (was previously Shutdown Request)",  /* Reserved in 
ACPI 6.0 */
     /* 0D */ "System Resource Affinity Update",
     /* 0E */ "Heterogeneous Memory Attributes Update"       /* ACPI 6.2 */
+    /* 0F */ "Error Disconnect Recover"                     /* ACPI 6.3 */
 };
 
 static const char           *AcpiGbl_DeviceNotify[5] =
@@ -561,14 +562,14 @@ AcpiUtGetNotifyName (
     ACPI_OBJECT_TYPE        Type)
 {
 
-    /* 00 - 0D are "common to all object types" (from ACPI Spec) */
+    /* 00 - 0F are "common to all object types" (from ACPI Spec) */
 
     if (NotifyValue <= ACPI_GENERIC_NOTIFY_MAX)
     {
         return (AcpiGbl_GenericNotify[NotifyValue]);
     }
 
-    /* 0E - 7F are reserved */
+    /* 10 - 7F are reserved */
 
     if (NotifyValue <= ACPI_MAX_SYS_NOTIFY)
     {
diff --git a/drivers/bus/acpi/acpica/utilities/utdelete.c 
b/drivers/bus/acpi/acpica/utilities/utdelete.c
index 68fd650f2c..ff41facfec 100644
--- a/drivers/bus/acpi/acpica/utilities/utdelete.c
+++ b/drivers/bus/acpi/acpica/utilities/utdelete.c
@@ -304,6 +304,11 @@ AcpiUtDeleteInternalObj (
 
             AcpiUtDeleteObjectDesc (SecondDesc);
         }
+        if (Object->Field.InternalPccBuffer)
+        {
+            ACPI_FREE(Object->Field.InternalPccBuffer);
+        }
+
         break;
 
     case ACPI_TYPE_BUFFER_FIELD:
diff --git a/drivers/bus/acpi/acpica/utilities/uterror.c 
b/drivers/bus/acpi/acpica/utilities/uterror.c
index 1082009c16..76778943a5 100644
--- a/drivers/bus/acpi/acpica/utilities/uterror.c
+++ b/drivers/bus/acpi/acpica/utilities/uterror.c
@@ -245,19 +245,19 @@ AcpiUtPrefixedNamespaceError (
     case AE_ALREADY_EXISTS:
 
         AcpiOsPrintf (ACPI_MSG_BIOS_ERROR);
-        Message = "Failure creating";
+        Message = "Failure creating named object";
         break;
 
     case AE_NOT_FOUND:
 
         AcpiOsPrintf (ACPI_MSG_BIOS_ERROR);
-        Message = "Could not resolve";
+        Message = "Could not resolve symbol";
         break;
 
     default:
 
         AcpiOsPrintf (ACPI_MSG_ERROR);
-        Message = "Failure resolving";
+        Message = "Failure resolving symbol";
         break;
     }
 
@@ -392,7 +392,8 @@ AcpiUtMethodError (
     }
 
     AcpiNsPrintNodePathname (Node, Message);
-    AcpiOsPrintf (", %s", AcpiFormatException (MethodStatus));
+    AcpiOsPrintf (" due to previous error (%s)",
+        AcpiFormatException (MethodStatus));
 
     ACPI_MSG_SUFFIX;
     ACPI_MSG_REDIRECT_END;
diff --git a/drivers/bus/acpi/buspdo.c b/drivers/bus/acpi/buspdo.c
index 9abd48a2a8..ac43a847dd 100644
--- a/drivers/bus/acpi/buspdo.c
+++ b/drivers/bus/acpi/buspdo.c
@@ -971,7 +971,7 @@ Bus_PDO_QueryResources(
                     ResourceDescriptor->Type = CmResourceTypeInterrupt;
 
                     ResourceDescriptor->ShareDisposition =
-                    (irq_data->Sharable == ACPI_SHARED ? CmResourceShareShared 
: CmResourceShareDeviceExclusive);
+                    (irq_data->Shareable == ACPI_SHARED ? 
CmResourceShareShared : CmResourceShareDeviceExclusive);
                     ResourceDescriptor->Flags =
                     (irq_data->Triggering == ACPI_LEVEL_SENSITIVE ? 
CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE : CM_RESOURCE_INTERRUPT_LATCHED);
                     ResourceDescriptor->u.Interrupt.Level =
@@ -990,7 +990,7 @@ Bus_PDO_QueryResources(
                     ResourceDescriptor->Type = CmResourceTypeInterrupt;
 
                     ResourceDescriptor->ShareDisposition =
-                    (irq_data->Sharable == ACPI_SHARED ? CmResourceShareShared 
: CmResourceShareDeviceExclusive);
+                    (irq_data->Shareable == ACPI_SHARED ? 
CmResourceShareShared : CmResourceShareDeviceExclusive);
                     ResourceDescriptor->Flags =
                     (irq_data->Triggering == ACPI_LEVEL_SENSITIVE ? 
CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE : CM_RESOURCE_INTERRUPT_LATCHED);
                     ResourceDescriptor->u.Interrupt.Level =
@@ -1445,7 +1445,7 @@ Bus_PDO_QueryResourceRequirements(
                 {
                     RequirementDescriptor->Option = (i == 0) ? 
IO_RESOURCE_PREFERRED : IO_RESOURCE_ALTERNATIVE;
                     RequirementDescriptor->Type = CmResourceTypeInterrupt;
-                    RequirementDescriptor->ShareDisposition = 
(irq_data->Sharable == ACPI_SHARED ? CmResourceShareShared : 
CmResourceShareDeviceExclusive);
+                    RequirementDescriptor->ShareDisposition = 
(irq_data->Shareable == ACPI_SHARED ? CmResourceShareShared : 
CmResourceShareDeviceExclusive);
                     RequirementDescriptor->Flags =(irq_data->Triggering == 
ACPI_LEVEL_SENSITIVE ? CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE : 
CM_RESOURCE_INTERRUPT_LATCHED);
                     RequirementDescriptor->u.Interrupt.MinimumVector =
                     RequirementDescriptor->u.Interrupt.MaximumVector = 
irq_data->Interrupts[i];
@@ -1461,7 +1461,7 @@ Bus_PDO_QueryResourceRequirements(
                 {
                     RequirementDescriptor->Option = (i == 0) ? 
IO_RESOURCE_PREFERRED : IO_RESOURCE_ALTERNATIVE;
                     RequirementDescriptor->Type = CmResourceTypeInterrupt;
-                    RequirementDescriptor->ShareDisposition = 
(irq_data->Sharable == ACPI_SHARED ? CmResourceShareShared : 
CmResourceShareDeviceExclusive);
+                    RequirementDescriptor->ShareDisposition = 
(irq_data->Shareable == ACPI_SHARED ? CmResourceShareShared : 
CmResourceShareDeviceExclusive);
                     RequirementDescriptor->Flags =(irq_data->Triggering == 
ACPI_LEVEL_SENSITIVE ? CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE : 
CM_RESOURCE_INTERRUPT_LATCHED);
                     RequirementDescriptor->u.Interrupt.MinimumVector =
                     RequirementDescriptor->u.Interrupt.MaximumVector = 
irq_data->Interrupts[i];

Reply via email to