Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Aug 2018 16:26:27 +0000 (UTC)
From:      Jung-uk Kim <jkim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r337713 - in head: sys/contrib/dev/acpica sys/contrib/dev/acpica/components/debugger sys/contrib/dev/acpica/components/dispatcher sys/contrib/dev/acpica/components/hardware sys/contrib/...
Message-ID:  <201808131626.w7DGQRYn026925@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jkim
Date: Mon Aug 13 16:26:26 2018
New Revision: 337713
URL: https://svnweb.freebsd.org/changeset/base/337713

Log:
  Merge ACPICA 20180810.

Modified:
  head/sys/contrib/dev/acpica/changes.txt
  head/sys/contrib/dev/acpica/components/debugger/dbinput.c
  head/sys/contrib/dev/acpica/components/debugger/dbmethod.c
  head/sys/contrib/dev/acpica/components/debugger/dbxface.c
  head/sys/contrib/dev/acpica/components/dispatcher/dsfield.c
  head/sys/contrib/dev/acpica/components/hardware/hwregs.c
  head/sys/contrib/dev/acpica/components/hardware/hwsleep.c
  head/sys/contrib/dev/acpica/components/namespace/nsaccess.c
  head/sys/contrib/dev/acpica/components/parser/psloop.c
  head/sys/contrib/dev/acpica/components/tables/tbdata.c
  head/sys/contrib/dev/acpica/components/utilities/utdelete.c
  head/sys/contrib/dev/acpica/components/utilities/uterror.c
  head/sys/contrib/dev/acpica/components/utilities/utstrsuppt.c
  head/sys/contrib/dev/acpica/components/utilities/utstrtoul64.c
  head/sys/contrib/dev/acpica/include/acconfig.h
  head/sys/contrib/dev/acpica/include/acexcep.h
  head/sys/contrib/dev/acpica/include/aclocal.h
  head/sys/contrib/dev/acpica/include/acnamesp.h
  head/sys/contrib/dev/acpica/include/acpixf.h
  head/sys/contrib/dev/acpica/include/acutils.h
  head/usr.sbin/acpi/acpidb/Makefile
Directory Properties:
  head/sys/contrib/dev/acpica/   (props changed)

Modified: head/sys/contrib/dev/acpica/changes.txt
==============================================================================
--- head/sys/contrib/dev/acpica/changes.txt	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/changes.txt	Mon Aug 13 16:26:26 2018	(r337713)
@@ -1,4 +1,51 @@
 ----------------------------------------
+10 August 2018. Summary of changes for version 20180810:
+
+
+1) ACPICA kernel-resident subsystem:
+
+Initial ACPI table loading: Attempt to continue loading ACPI tables 
+regardless of malformed AML. Since migrating table initialization to the 
+new module-level code support, the AML interpreter rejected tables upon 
+any ACPI error encountered during table load. This is a problem because 
+non-serious ACPI errors during table load do not necessarily mean that 
+the entire definition block (DSDT or SSDT) is invalid. This change 
+improves the table loading by ignoring some types of errors that can be 
+generated by incorrect AML. This can range from object type errors, scope 
+errors, and index errors.
+
+Suspend/Resume support: Update to stop unconditionally clearing ACPI IRQs 
+during suspend/resume. The status of ACPI events is no longer cleared 
+when entering the ACPI S5 system state (power off) which caused some 
+systems to power up immediately after turning off power in certain 
+situations. This was a functional regression. It was fixed by clearing 
+the status of all ACPI events again when entering S5 (for system-wide 
+suspend or hibernation the clearing of the status of all events is not 
+desirable, as it might cause the kernel to miss wakeup events sometimes). 
+Rafael Wysocki.
+
+
+2) iASL Compiler/Disassembler and Tools:
+
+AcpiExec: Enhanced the -fi option (Namespace initialization file). Field 
+elements listed in the initialization file were previously initialized 
+after the table load and before executing module-level code blocks. 
+Recent changes in the module-level code support means that the table load 
+becomes a large control method execution. If fields are used within 
+module-level code and we are executing with the -fi option, the 
+initialization values were used to initialize the namespace object(s) 
+only after the table was finished loading. This change Provides an early 
+initialization of objects specified in the initialization file so that 
+field unit values are populated during the table load (not after the 
+load).
+
+AcpiExec: Fixed a small memory leak regression that could result in 
+warnings during exit of the utility. These warnings were similar to 
+these:
+    0002D690 Length 0x0006 nsnames-0502 [Not a Descriptor - too small]
+    0002CD70 Length 0x002C utcache-0453 [Operand] Integer RefCount 0x0001
+
+----------------------------------------
 29 June 2018. Summary of changes for version 20180629:
 
 

Modified: head/sys/contrib/dev/acpica/components/debugger/dbinput.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/debugger/dbinput.c	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/components/debugger/dbinput.c	Mon Aug 13 16:26:26 2018	(r337713)
@@ -969,7 +969,11 @@ AcpiDbCommandDispatch (
     case CMD_DISASSEMBLE:
     case CMD_DISASM:
 
+#ifdef ACPI_DISASSEMBLER
         (void) AcpiDbDisassembleMethod (AcpiGbl_DbArgs[1]);
+#else
+        AcpiOsPrintf ("The AML Disassembler is not configured/present\n");
+#endif
         break;
 
     case CMD_DUMP:
@@ -1083,7 +1087,11 @@ AcpiDbCommandDispatch (
 
     case CMD_LIST:
 
-        AcpiDbDisassembleAml (AcpiGbl_DbArgs[1], Op);
+#ifdef ACPI_DISASSEMBLER
+        AcpiDbDisassembleAml (AcpiGbl_DbArgs[1], Op);;
+#else
+        AcpiOsPrintf ("The AML Disassembler is not configured/present\n");
+#endif
         break;
 
     case CMD_LOCKS:

Modified: head/sys/contrib/dev/acpica/components/debugger/dbmethod.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/debugger/dbmethod.c	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/components/debugger/dbmethod.c	Mon Aug 13 16:26:26 2018	(r337713)
@@ -393,6 +393,7 @@ Cleanup:
 }
 
 
+#ifdef ACPI_DISASSEMBLER
 /*******************************************************************************
  *
  * FUNCTION:    AcpiDbDisassembleAml
@@ -426,9 +427,7 @@ AcpiDbDisassembleAml (
         NumStatements = strtoul (Statements, NULL, 0);
     }
 
-#ifdef ACPI_DISASSEMBLER
     AcpiDmDisassemble (NULL, Op, NumStatements);
-#endif
 }
 
 
@@ -511,8 +510,6 @@ AcpiDbDisassembleMethod (
     WalkState->ParseFlags |= ACPI_PARSE_DISASSEMBLE;
 
     Status = AcpiPsParseAml (WalkState);
-
-#ifdef ACPI_DISASSEMBLER
     (void) AcpiDmParseDeferredOps (Op);
 
     /* Now we can disassemble the method */
@@ -520,7 +517,6 @@ AcpiDbDisassembleMethod (
     AcpiGbl_DmOpt_Verbose = FALSE;
     AcpiDmDisassemble (NULL, Op, 0);
     AcpiGbl_DmOpt_Verbose = TRUE;
-#endif
 
     AcpiPsDeleteParseTree (Op);
 
@@ -531,6 +527,7 @@ AcpiDbDisassembleMethod (
     AcpiUtReleaseOwnerId (&ObjDesc->Method.OwnerId);
     return (AE_OK);
 }
+#endif
 
 
 /*******************************************************************************

Modified: head/sys/contrib/dev/acpica/components/debugger/dbxface.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/debugger/dbxface.c	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/components/debugger/dbxface.c	Mon Aug 13 16:26:26 2018	(r337713)
@@ -154,6 +154,7 @@
 #include <contrib/dev/acpica/include/amlcode.h>
 #include <contrib/dev/acpica/include/acdebug.h>
 #include <contrib/dev/acpica/include/acinterp.h>
+#include <contrib/dev/acpica/include/acparser.h>
 
 
 #define _COMPONENT          ACPI_CA_DEBUGGER
@@ -435,10 +436,17 @@ AcpiDbSingleStep (
             }
         }
 
-        /* Now we can display it */
+        /* Now we can disassemble and display it */
 
 #ifdef ACPI_DISASSEMBLER
         AcpiDmDisassemble (WalkState, DisplayOp, ACPI_UINT32_MAX);
+#else
+        /*
+         * The AML Disassembler is not configured - at least we can
+         * display the opcode value and name
+         */
+        AcpiOsPrintf ("AML Opcode: %4.4X  %s\n", Op->Common.AmlOpcode,
+            AcpiPsGetOpcodeName (Op->Common.AmlOpcode));
 #endif
 
         if ((Op->Common.AmlOpcode == AML_IF_OP) ||

Modified: head/sys/contrib/dev/acpica/components/dispatcher/dsfield.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/dispatcher/dsfield.c	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/components/dispatcher/dsfield.c	Mon Aug 13 16:26:26 2018	(r337713)
@@ -157,7 +157,11 @@
 #include <contrib/dev/acpica/include/acnamesp.h>
 #include <contrib/dev/acpica/include/acparser.h>
 
+#if !defined(ACPI_DB_APP) && defined(ACPI_EXEC_APP)
+#include "aecommon.h"
+#endif
 
+
 #define _COMPONENT          ACPI_DISPATCHER
         ACPI_MODULE_NAME    ("dsfield")
 
@@ -430,7 +434,14 @@ AcpiDsGetFieldNames (
     UINT64                  Position;
     ACPI_PARSE_OBJECT       *Child;
 
+#if !defined(ACPI_DB_APP) && defined(ACPI_EXEC_APP)
+    UINT64                  Value = 0;
+    ACPI_OPERAND_OBJECT     *ResultDesc;
+    ACPI_OPERAND_OBJECT     *ObjDesc;
+    char                    *NamePath;
+#endif
 
+
     ACPI_FUNCTION_TRACE_PTR (DsGetFieldNames, Info);
 
 
@@ -564,6 +575,18 @@ AcpiDsGetFieldNames (
                     {
                         return_ACPI_STATUS (Status);
                     }
+#if !defined(ACPI_DB_APP) && defined(ACPI_EXEC_APP)
+                    NamePath = AcpiNsGetExternalPathname (Info->FieldNode);
+                    ObjDesc = AcpiUtCreateIntegerObject (Value);
+                    if (ACPI_SUCCESS (AeLookupInitFileEntry (NamePath, &Value)))
+                    {
+                        AcpiExWriteDataToField (ObjDesc,
+                            AcpiNsGetAttachedObject (Info->FieldNode),
+                            &ResultDesc);
+                    }
+                    AcpiUtRemoveReference (ObjDesc);
+                    ACPI_FREE (NamePath);
+#endif
                 }
             }
 
@@ -756,6 +779,9 @@ AcpiDsInitFieldObjects (
         Flags |= ACPI_NS_TEMPORARY;
     }
 
+#ifdef ACPI_EXEC_APP
+        Flags |= ACPI_NS_OVERRIDE_IF_FOUND;
+#endif
     /*
      * Walk the list of entries in the FieldList
      * Note: FieldList can be of zero length. In this case, Arg will be NULL.

Modified: head/sys/contrib/dev/acpica/components/hardware/hwregs.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/hardware/hwregs.c	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/components/hardware/hwregs.c	Mon Aug 13 16:26:26 2018	(r337713)
@@ -724,13 +724,20 @@ AcpiHwRegisterRead (
     case ACPI_REGISTER_PM2_CONTROL:          /* 8-bit access */
 
         Status = AcpiHwRead (&Value64, &AcpiGbl_FADT.XPm2ControlBlock);
-        Value = (UINT32) Value64;
+        if (ACPI_SUCCESS (Status))
+        {
+            Value = (UINT32) Value64;
+        }
         break;
 
     case ACPI_REGISTER_PM_TIMER:             /* 32-bit access */
 
         Status = AcpiHwRead (&Value64, &AcpiGbl_FADT.XPmTimerBlock);
-        Value = (UINT32) Value64;
+        if (ACPI_SUCCESS (Status))
+        {
+            Value = (UINT32) Value64;
+        }
+
         break;
 
     case ACPI_REGISTER_SMI_COMMAND_BLOCK:    /* 8-bit access */

Modified: head/sys/contrib/dev/acpica/components/hardware/hwsleep.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/hardware/hwsleep.c	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/components/hardware/hwsleep.c	Mon Aug 13 16:26:26 2018	(r337713)
@@ -198,16 +198,27 @@ AcpiHwLegacySleep (
         return_ACPI_STATUS (Status);
     }
 
-    /*
-     * 1) Disable all GPEs
-     * 2) Enable all wakeup GPEs
-     */
+    /* Disable all GPEs */
+
     Status = AcpiHwDisableAllGpes ();
     if (ACPI_FAILURE (Status))
     {
         return_ACPI_STATUS (Status);
     }
+    /*
+     * If the target sleep state is S5, clear all GPEs and fixed events too
+     */
+    if (SleepState == ACPI_STATE_S5)
+    {
+        Status = AcpiHwClearAcpiStatus();
+        if (ACPI_FAILURE (Status))
+        {
+            return_ACPI_STATUS (Status);
+        }
+    }
     AcpiGbl_SystemAwakeAndRunning = FALSE;
+
+    /* Enable all wakeup GPEs */
 
     Status = AcpiHwEnableAllWakeupGpes ();
     if (ACPI_FAILURE (Status))

Modified: head/sys/contrib/dev/acpica/components/namespace/nsaccess.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/namespace/nsaccess.c	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/components/namespace/nsaccess.c	Mon Aug 13 16:26:26 2018	(r337713)
@@ -724,6 +724,15 @@ AcpiNsLookup (
                     CurrentNode));
             }
 
+#ifdef ACPI_EXEC_APP
+            if ((Status == AE_ALREADY_EXISTS) &&
+                (ThisNode->Flags & ANOBJ_NODE_EARLY_INIT))
+            {
+                ThisNode->Flags &= ~ANOBJ_NODE_EARLY_INIT;
+                Status = AE_OK;
+            }
+#endif
+
 #ifdef ACPI_ASL_COMPILER
             /*
              * If this ACPI name already exists within the namespace as an
@@ -844,6 +853,13 @@ AcpiNsLookup (
             }
         }
     }
+
+#ifdef ACPI_EXEC_APP
+    if (Flags & ACPI_NS_EARLY_INIT)
+    {
+        ThisNode->Flags |= ANOBJ_NODE_EARLY_INIT;
+    }
+#endif
 
     *ReturnNode = ThisNode;
     return_ACPI_STATUS (AE_OK);

Modified: head/sys/contrib/dev/acpica/components/parser/psloop.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/parser/psloop.c	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/components/parser/psloop.c	Mon Aug 13 16:26:26 2018	(r337713)
@@ -164,6 +164,7 @@
 #include <contrib/dev/acpica/include/acdispat.h>
 #include <contrib/dev/acpica/include/amlcode.h>
 #include <contrib/dev/acpica/include/acconvert.h>
+#include <contrib/dev/acpica/include/acnamesp.h>
 
 #define _COMPONENT          ACPI_PARSER
         ACPI_MODULE_NAME    ("psloop")
@@ -645,6 +646,18 @@ AcpiPsParseLoop (
             Status = AcpiPsCreateOp (WalkState, AmlOpStart, &Op);
             if (ACPI_FAILURE (Status))
             {
+                /*
+                 * ACPI_PARSE_MODULE_LEVEL means that we are loading a table by
+                 * executing it as a control method. However, if we encounter
+                 * an error while loading the table, we need to keep trying to
+                 * load the table rather than aborting the table load. Set the
+                 * status to AE_OK to proceed with the table load.
+                 */
+                if ((WalkState->ParseFlags & ACPI_PARSE_MODULE_LEVEL) &&
+                    Status == AE_ALREADY_EXISTS)
+                {
+                    Status = AE_OK;
+                }
                 if (Status == AE_CTRL_PARSE_CONTINUE)
                 {
                     continue;
@@ -665,18 +678,20 @@ AcpiPsParseLoop (
                 {
                     return_ACPI_STATUS (Status);
                 }
-                if (WalkState->Opcode == AML_SCOPE_OP)
+                if (AcpiNsOpensScope (
+                    AcpiPsGetOpcodeInfo (WalkState->Opcode)->ObjectType))
                 {
                     /*
-                     * If the scope op fails to parse, skip the body of the
-                     * scope op because the parse failure indicates that the
-                     * device may not exist.
+                     * If the scope/device op fails to parse, skip the body of
+                     * the scope op because the parse failure indicates that
+                     * the device may not exist.
                      */
+                    ACPI_ERROR ((AE_INFO, "Skip parsing opcode %s",
+                        AcpiPsGetOpcodeName (WalkState->Opcode)));
                     WalkState->ParserState.Aml = WalkState->Aml + 1;
                     WalkState->ParserState.Aml =
                         AcpiPsGetNextPackageEnd(&WalkState->ParserState);
                     WalkState->Aml = WalkState->ParserState.Aml;
-                    ACPI_ERROR ((AE_INFO, "Skipping Scope block"));
                 }
 
                 continue;
@@ -832,6 +847,22 @@ AcpiPsParseLoop (
             Status = AcpiPsNextParseState (WalkState, Op, Status);
             if (Status == AE_CTRL_PENDING)
             {
+                Status = AE_OK;
+            }
+            else if ((WalkState->ParseFlags & ACPI_PARSE_MODULE_LEVEL) &&
+                (ACPI_AML_EXCEPTION(Status) || Status == AE_ALREADY_EXISTS ||
+                Status == AE_NOT_FOUND))
+            {
+                /*
+                 * ACPI_PARSE_MODULE_LEVEL flag means that we are currently
+                 * loading a table by executing it as a control method.
+                 * However, if we encounter an error while loading the table,
+                 * we need to keep trying to load the table rather than
+                 * aborting the table load (setting the status to AE_OK
+                 * continues the table load). If we get a failure at this
+                 * point, it means that the dispatcher got an error while
+                 * trying to execute the Op.
+                 */
                 Status = AE_OK;
             }
         }

Modified: head/sys/contrib/dev/acpica/components/tables/tbdata.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/tables/tbdata.c	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/components/tables/tbdata.c	Mon Aug 13 16:26:26 2018	(r337713)
@@ -711,9 +711,9 @@ AcpiTbVerifyTempTable (
             {
                 if (Status != AE_CTRL_TERMINATE)
                 {
-                    ACPI_EXCEPTION ((AE_INFO, AE_NO_MEMORY,
+                    ACPI_EXCEPTION ((AE_INFO, Status,
                         "%4.4s 0x%8.8X%8.8X"
-                        " Table is duplicated",
+                        " Table is already loaded",
                         AcpiUtValidNameseg (TableDesc->Signature.Ascii) ?
                             TableDesc->Signature.Ascii : "????",
                         ACPI_FORMAT_UINT64 (TableDesc->Address)));

Modified: head/sys/contrib/dev/acpica/components/utilities/utdelete.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/utilities/utdelete.c	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/components/utilities/utdelete.c	Mon Aug 13 16:26:26 2018	(r337713)
@@ -520,6 +520,7 @@ AcpiUtUpdateRefCount (
     UINT16                  OriginalCount;
     UINT16                  NewCount = 0;
     ACPI_CPU_FLAGS          LockFlags;
+    char                    *Message;
 
 
     ACPI_FUNCTION_NAME (UtUpdateRefCount);
@@ -560,6 +561,7 @@ AcpiUtUpdateRefCount (
             "Obj %p Type %.2X [%s] Refs %.2X [Incremented]\n",
             Object, Object->Common.Type,
             AcpiUtGetObjectTypeName (Object), NewCount));
+        Message = "Incremement";
         break;
 
     case REF_DECREMENT:
@@ -591,6 +593,7 @@ AcpiUtUpdateRefCount (
         {
             AcpiUtDeleteInternalObj (Object);
         }
+        Message = "Decrement";
         break;
 
     default:
@@ -608,8 +611,8 @@ AcpiUtUpdateRefCount (
     if (NewCount > ACPI_MAX_REFERENCE_COUNT)
     {
         ACPI_WARNING ((AE_INFO,
-            "Large Reference Count (0x%X) in object %p, Type=0x%.2X",
-            NewCount, Object, Object->Common.Type));
+            "Large Reference Count (0x%X) in object %p, Type=0x%.2X Operation=%s",
+            NewCount, Object, Object->Common.Type, Message));
     }
 }
 

Modified: head/sys/contrib/dev/acpica/components/utilities/uterror.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/utilities/uterror.c	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/components/utilities/uterror.c	Mon Aug 13 16:26:26 2018	(r337713)
@@ -352,19 +352,19 @@ AcpiUtPrefixedNamespaceError (
     {
     case AE_ALREADY_EXISTS:
 
-        AcpiOsPrintf ("\n" ACPI_MSG_BIOS_ERROR);
+        AcpiOsPrintf (ACPI_MSG_BIOS_ERROR);
         Message = "Failure creating";
         break;
 
     case AE_NOT_FOUND:
 
-        AcpiOsPrintf ("\n" ACPI_MSG_BIOS_ERROR);
+        AcpiOsPrintf (ACPI_MSG_BIOS_ERROR);
         Message = "Could not resolve";
         break;
 
     default:
 
-        AcpiOsPrintf ("\n" ACPI_MSG_ERROR);
+        AcpiOsPrintf (ACPI_MSG_ERROR);
         Message = "Failure resolving";
         break;
     }

Modified: head/sys/contrib/dev/acpica/components/utilities/utstrsuppt.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/utilities/utstrsuppt.c	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/components/utilities/utstrsuppt.c	Mon Aug 13 16:26:26 2018	(r337713)
@@ -419,15 +419,39 @@ BOOLEAN
 AcpiUtDetectHexPrefix (
     char                    **String)
 {
+    char                    *InitialPosition = *String;
 
+    AcpiUtRemoveHexPrefix (String);
+    if (*String != InitialPosition)
+    {
+        return (TRUE); /* String is past leading 0x */
+    }
+
+    return (FALSE);     /* Not a hex string */
+}
+
+
+/*******************************************************************************
+ *
+ * FUNCTION:    AcpiUtRemoveHexPrefix
+ *
+ * PARAMETERS:  String                  - Pointer to input ASCII string
+ *
+ * RETURN:      none
+ *
+ * DESCRIPTION: Remove a hex "0x" prefix
+ *
+ ******************************************************************************/
+
+void
+AcpiUtRemoveHexPrefix (
+    char                    **String)
+{
     if ((**String == ACPI_ASCII_ZERO) &&
         (tolower ((int) *(*String + 1)) == 'x'))
     {
         *String += 2;        /* Go past the leading 0x */
-        return (TRUE);
     }
-
-    return (FALSE);     /* Not a hex string */
 }
 
 

Modified: head/sys/contrib/dev/acpica/components/utilities/utstrtoul64.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/utilities/utstrtoul64.c	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/components/utilities/utstrtoul64.c	Mon Aug 13 16:26:26 2018	(r337713)
@@ -383,7 +383,7 @@ AcpiUtImplicitStrtoul64 (
      * implicit conversions, and the "0x" prefix is "not allowed".
      * However, allow a "0x" prefix as an ACPI extension.
      */
-    AcpiUtDetectHexPrefix (&String);
+    AcpiUtRemoveHexPrefix (&String);
 
     if (!AcpiUtRemoveLeadingZeros (&String))
     {

Modified: head/sys/contrib/dev/acpica/include/acconfig.h
==============================================================================
--- head/sys/contrib/dev/acpica/include/acconfig.h	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/include/acconfig.h	Mon Aug 13 16:26:26 2018	(r337713)
@@ -233,7 +233,7 @@
 
 /* Maximum object reference count (detects object deletion issues) */
 
-#define ACPI_MAX_REFERENCE_COUNT        0x800
+#define ACPI_MAX_REFERENCE_COUNT        0x4000
 
 /* Default page size for use in mapping memory for operation regions */
 

Modified: head/sys/contrib/dev/acpica/include/acexcep.h
==============================================================================
--- head/sys/contrib/dev/acpica/include/acexcep.h	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/include/acexcep.h	Mon Aug 13 16:26:26 2018	(r337713)
@@ -204,6 +204,13 @@ typedef struct acpi_exception_info
 
 #define AE_OK                           (ACPI_STATUS) 0x0000
 
+#define ACPI_ENV_EXCEPTION(Status)      (Status & AE_CODE_ENVIRONMENTAL)
+#define ACPI_AML_EXCEPTION(Status)      (Status & AE_CODE_AML)
+#define ACPI_PROG_EXCEPTION(Status)     (Status & AE_CODE_PROGRAMMER)
+#define ACPI_TABLE_EXCEPTION(Status)    (Status & AE_CODE_ACPI_TABLES)
+#define ACPI_CNTL_EXCEPTION(Status)     (Status & AE_CODE_CONTROL)
+
+
 /*
  * Environmental exceptions
  */

Modified: head/sys/contrib/dev/acpica/include/aclocal.h
==============================================================================
--- head/sys/contrib/dev/acpica/include/aclocal.h	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/include/aclocal.h	Mon Aug 13 16:26:26 2018	(r337713)
@@ -327,6 +327,7 @@ typedef struct acpi_namespace_node
 #define ANOBJ_SUBTREE_HAS_INI           0x10    /* Used to optimize device initialization */
 #define ANOBJ_EVALUATED                 0x20    /* Set on first evaluation of node */
 #define ANOBJ_ALLOCATED_BUFFER          0x40    /* Method AML buffer is dynamic (InstallMethod) */
+#define ANOBJ_NODE_EARLY_INIT           0x80    /* AcpiExec only: Node was create via init file (-fi) */
 
 #define ANOBJ_IS_EXTERNAL               0x08    /* iASL only: This object created via External() */
 #define ANOBJ_METHOD_NO_RETVAL          0x10    /* iASL only: Method has no return value */

Modified: head/sys/contrib/dev/acpica/include/acnamesp.h
==============================================================================
--- head/sys/contrib/dev/acpica/include/acnamesp.h	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/include/acnamesp.h	Mon Aug 13 16:26:26 2018	(r337713)
@@ -168,14 +168,15 @@
 /* Flags for AcpiNsLookup, AcpiNsSearchAndEnter */
 
 #define ACPI_NS_NO_UPSEARCH         0
-#define ACPI_NS_SEARCH_PARENT       0x01
-#define ACPI_NS_DONT_OPEN_SCOPE     0x02
-#define ACPI_NS_NO_PEER_SEARCH      0x04
-#define ACPI_NS_ERROR_IF_FOUND      0x08
-#define ACPI_NS_PREFIX_IS_SCOPE     0x10
-#define ACPI_NS_EXTERNAL            0x20
-#define ACPI_NS_TEMPORARY           0x40
-#define ACPI_NS_OVERRIDE_IF_FOUND   0x80
+#define ACPI_NS_SEARCH_PARENT       0x0001
+#define ACPI_NS_DONT_OPEN_SCOPE     0x0002
+#define ACPI_NS_NO_PEER_SEARCH      0x0004
+#define ACPI_NS_ERROR_IF_FOUND      0x0008
+#define ACPI_NS_PREFIX_IS_SCOPE     0x0010
+#define ACPI_NS_EXTERNAL            0x0020
+#define ACPI_NS_TEMPORARY           0x0040
+#define ACPI_NS_OVERRIDE_IF_FOUND   0x0080
+#define ACPI_NS_EARLY_INIT          0x0100
 
 /* Flags for AcpiNsWalkNamespace */
 

Modified: head/sys/contrib/dev/acpica/include/acpixf.h
==============================================================================
--- head/sys/contrib/dev/acpica/include/acpixf.h	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/include/acpixf.h	Mon Aug 13 16:26:26 2018	(r337713)
@@ -154,7 +154,7 @@
 
 /* Current ACPICA subsystem version in YYYYMMDD format */
 
-#define ACPI_CA_VERSION                 0x20180629
+#define ACPI_CA_VERSION                 0x20180810
 
 #include <contrib/dev/acpica/include/acconfig.h>
 #include <contrib/dev/acpica/include/actypes.h>

Modified: head/sys/contrib/dev/acpica/include/acutils.h
==============================================================================
--- head/sys/contrib/dev/acpica/include/acutils.h	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/sys/contrib/dev/acpica/include/acutils.h	Mon Aug 13 16:26:26 2018	(r337713)
@@ -362,6 +362,10 @@ BOOLEAN
 AcpiUtDetectHexPrefix (
     char                    **String);
 
+void
+AcpiUtRemoveHexPrefix (
+    char                    **String);
+
 BOOLEAN
 AcpiUtDetectOctalPrefix (
     char                    **String);

Modified: head/usr.sbin/acpi/acpidb/Makefile
==============================================================================
--- head/usr.sbin/acpi/acpidb/Makefile	Mon Aug 13 16:07:18 2018	(r337712)
+++ head/usr.sbin/acpi/acpidb/Makefile	Mon Aug 13 16:26:26 2018	(r337713)
@@ -76,7 +76,7 @@ SRCS+=	osgendbg.c osunixxf.c
 MAN=	acpidb.8
 WARNS?=	3
 
-CFLAGS+= -DACPI_EXEC_APP -fno-strict-aliasing
+CFLAGS+= -DACPI_DB_APP -DACPI_EXEC_APP -fno-strict-aliasing
 LIBADD=	pthread
 
 .include <bsd.prog.mk>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201808131626.w7DGQRYn026925>