https://git.reactos.org/?p=reactos.git;a=commitdiff;h=9d53c935f22775e45f2cb…
commit 9d53c935f22775e45f2cb980df86eecb1c81fd36
Author: Thomas Faber <thomas.faber(a)reactos.org>
AuthorDate: Fri Feb 15 19:43:25 2019 +0100
Commit: Thomas Faber <thomas.faber(a)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];