Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Jul 2012 23:18:36 +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: r238381 - in head: sys/conf sys/contrib/dev/acpica sys/contrib/dev/acpica/compiler sys/contrib/dev/acpica/components/debugger sys/contrib/dev/acpica/components/events sys/contrib/dev/ac...
Message-ID:  <201207112318.q6BNIa8Z070803@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jkim
Date: Wed Jul 11 23:18:35 2012
New Revision: 238381
URL: http://svn.freebsd.org/changeset/base/238381

Log:
  Merge ACPICA 20120711.

Added:
  head/sys/contrib/dev/acpica/components/tables/tbxfload.c
     - copied, changed from r238368, vendor-sys/acpica/dist/source/components/tables/tbxfload.c
  head/sys/contrib/dev/acpica/components/utilities/utexcep.c
     - copied, changed from r238368, vendor-sys/acpica/dist/source/components/utilities/utexcep.c
Modified:
  head/sys/conf/files
  head/sys/contrib/dev/acpica/changes.txt   (contents, props changed)
  head/sys/contrib/dev/acpica/compiler/aslmain.c
  head/sys/contrib/dev/acpica/components/debugger/dbcmds.c
  head/sys/contrib/dev/acpica/components/debugger/dbinput.c
  head/sys/contrib/dev/acpica/components/events/evxfgpe.c
  head/sys/contrib/dev/acpica/components/executer/exprep.c
  head/sys/contrib/dev/acpica/components/executer/exresolv.c
  head/sys/contrib/dev/acpica/components/executer/exstore.c
  head/sys/contrib/dev/acpica/components/executer/exutils.c
  head/sys/contrib/dev/acpica/components/hardware/hwsleep.c
  head/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c
  head/sys/contrib/dev/acpica/components/namespace/nspredef.c
  head/sys/contrib/dev/acpica/components/parser/psxface.c
  head/sys/contrib/dev/acpica/components/resources/rscreate.c
  head/sys/contrib/dev/acpica/components/resources/rsutils.c
  head/sys/contrib/dev/acpica/components/tables/tbfadt.c
  head/sys/contrib/dev/acpica/components/tables/tbinstal.c
  head/sys/contrib/dev/acpica/components/tables/tbutils.c
  head/sys/contrib/dev/acpica/components/tables/tbxface.c
  head/sys/contrib/dev/acpica/components/tables/tbxfroot.c
  head/sys/contrib/dev/acpica/components/utilities/utdecode.c
  head/sys/contrib/dev/acpica/components/utilities/utglobal.c
  head/sys/contrib/dev/acpica/components/utilities/utmisc.c
  head/sys/contrib/dev/acpica/components/utilities/utobject.c
  head/sys/contrib/dev/acpica/components/utilities/utresrc.c
  head/sys/contrib/dev/acpica/components/utilities/utxferror.c
  head/sys/contrib/dev/acpica/include/acdebug.h
  head/sys/contrib/dev/acpica/include/acexcep.h
  head/sys/contrib/dev/acpica/include/acglobal.h
  head/sys/contrib/dev/acpica/include/acmacros.h
  head/sys/contrib/dev/acpica/include/acobject.h
  head/sys/contrib/dev/acpica/include/acoutput.h
  head/sys/contrib/dev/acpica/include/acpixf.h
  head/sys/contrib/dev/acpica/include/actbl1.h
  head/sys/contrib/dev/acpica/include/platform/acenv.h
  head/sys/modules/acpi/acpi/Makefile
  head/usr.sbin/acpi/acpidb/Makefile
  head/usr.sbin/acpi/iasl/Makefile
Directory Properties:
  head/sys/contrib/dev/acpica/   (props changed)
  head/sys/contrib/dev/acpica/compiler/   (props changed)
  head/sys/contrib/dev/acpica/components/debugger/   (props changed)
  head/sys/contrib/dev/acpica/components/events/   (props changed)
  head/sys/contrib/dev/acpica/components/executer/   (props changed)
  head/sys/contrib/dev/acpica/components/hardware/   (props changed)
  head/sys/contrib/dev/acpica/components/namespace/   (props changed)
  head/sys/contrib/dev/acpica/components/parser/   (props changed)
  head/sys/contrib/dev/acpica/components/resources/   (props changed)
  head/sys/contrib/dev/acpica/components/tables/   (props changed)
  head/sys/contrib/dev/acpica/components/utilities/   (props changed)
  head/sys/contrib/dev/acpica/include/   (props changed)

Modified: head/sys/conf/files
==============================================================================
--- head/sys/conf/files	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/conf/files	Wed Jul 11 23:18:35 2012	(r238381)
@@ -412,6 +412,7 @@ contrib/dev/acpica/components/tables/tbf
 contrib/dev/acpica/components/tables/tbinstal.c		optional acpi
 contrib/dev/acpica/components/tables/tbutils.c		optional acpi
 contrib/dev/acpica/components/tables/tbxface.c		optional acpi
+contrib/dev/acpica/components/tables/tbxfload.c		optional acpi
 contrib/dev/acpica/components/tables/tbxfroot.c		optional acpi
 contrib/dev/acpica/components/utilities/utaddress.c	optional acpi
 contrib/dev/acpica/components/utilities/utalloc.c	optional acpi
@@ -421,6 +422,7 @@ contrib/dev/acpica/components/utilities/
 contrib/dev/acpica/components/utilities/utdecode.c	optional acpi
 contrib/dev/acpica/components/utilities/utdelete.c	optional acpi
 contrib/dev/acpica/components/utilities/uteval.c	optional acpi
+contrib/dev/acpica/components/utilities/utexcep.c	optional acpi
 contrib/dev/acpica/components/utilities/utglobal.c	optional acpi
 contrib/dev/acpica/components/utilities/utids.c		optional acpi
 contrib/dev/acpica/components/utilities/utinit.c	optional acpi

Modified: head/sys/contrib/dev/acpica/changes.txt
==============================================================================
--- head/sys/contrib/dev/acpica/changes.txt	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/changes.txt	Wed Jul 11 23:18:35 2012	(r238381)
@@ -1,4 +1,82 @@
 ----------------------------------------
+11 July 2012. Summary of changes for version 20120711:
+
+This release is available at https://www.acpica.org/downloads The ACPI 5.0 
+specification is available at www.acpi.info
+
+1) ACPICA Kernel-resident Subsystem:
+
+Fixed a possible fault in the return package object repair code. Fixes a 
+problem that can occur when a lone package object is wrapped with an outer 
+package object in order to force conformance to the ACPI specification. Can 
+affect these predefined names: _ALR, _MLS, _PSS, _TRT, _TSS, _PRT, _HPX, _DLM, 
+_CSD, _PSD, _TSD.
+
+Removed code to disable/enable bus master arbitration (ARB_DIS bit in the 
+PM2_CNT register) in the ACPICA sleep/wake interfaces. Management of the 
+ARB_DIS bit must be implemented in the host-dependent C3 processor power state 
+support. Note, ARB_DIS is obsolete and only applies to older chipsets, both 
+Intel and other vendors. (for Intel: ICH4-M and earlier)
+
+This change removes the code to disable/enable bus master arbitration during 
+suspend/resume. Use of the ARB_DIS bit in the optional PM2_CNT register causes 
+resume problems on some machines. The change has been in use for over seven 
+years within Linux.
+
+Implemented two new external interfaces to support host-directed dynamic ACPI 
+table load and unload. They are intended to simplify the host implementation 
+of hot-plug support:
+  AcpiLoadTable: Load an SSDT from a buffer into the namespace.
+  AcpiUnloadParentTable: Unload an SSDT via a named object owned by the table.
+See the ACPICA reference for additional details. Adds one new file, 
+components/tables/tbxfload.c
+
+Implemented and deployed two new interfaces for errors and warnings that are 
+known to be caused by BIOS/firmware issues:
+  AcpiBiosError: Prints "ACPI Firmware Error" message.
+  AcpiBiosWarning: Prints "ACPI Firmware Warning" message.
+Deployed these new interfaces in the ACPICA Table Manager code for ACPI table 
+and FADT errors. Additional deployment to be completed as appropriate in the 
+future. The associated conditional macros are ACPI_BIOS_ERROR and 
+ACPI_BIOS_WARNING. See the ACPICA reference for additional details. ACPICA BZ 
+843.
+
+Implicit notify support: ensure that no memory allocation occurs within a 
+critical region. This fix moves a memory allocation outside of the time that a 
+spinlock is held. Fixes issues on systems that do not allow this behavior. 
+Jung-uk Kim.
+
+Split exception code utilities and tables into a new file, utilities/utexcep.c
+
+Example Code and Data Size: These are the sizes for the OS-independent 
+acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug 
+version of the code includes the debug output trace mechanism and has a much 
+larger code and data size.
+
+  Previous Release:
+    Non-Debug Version:  93.1K Code, 25.1K Data, 118.2K Total
+    Debug Version:     172.9K Code, 73.6K Data, 246.5K Total
+  Current Release:
+    Non-Debug Version:  93.5K Code, 25.3K Data, 118.8K Total
+    Debug Version:     173.7K Code, 74.0K Data, 247.7K Total
+
+
+2) iASL Compiler/Disassembler and Tools:
+
+iASL: Fixed a parser problem for hosts where EOF is defined as -1 instead of 
+0. Jung-uk Kim.
+
+Debugger: Enhanced the "tables" command to emit additional information about 
+the current set of ACPI tables, including the owner ID and flags decode.
+
+Debugger: Reimplemented the "unload" command to use the new 
+AcpiUnloadParentTable external interface. This command was disable previously 
+due to need for an unload interface.
+
+AcpiHelp: Added a new option to decode ACPICA exception codes. The -e option 
+will decode 16-bit hex status codes (ACPI_STATUS) to name strings.
+
+----------------------------------------
 20 June 2012. Summary of changes for version 20120620:
 
 This release is available at https://www.acpica.org/downloads

Modified: head/sys/contrib/dev/acpica/compiler/aslmain.c
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/aslmain.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/compiler/aslmain.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -96,7 +96,7 @@ AslDoResponseFile (
 
 
 #define ASL_TOKEN_SEPARATORS    " \t\n"
-#define ASL_SUPPORTED_OPTIONS   "@:2b|c|d^D:e:fgh^i|I:l^mno|p:P^r:s|t|T:G^v|w|x:z"
+#define ASL_SUPPORTED_OPTIONS   "@:2b|c|d^D:e:fgh^i|I:l^mno|p:P^r:s|t|T:G^v^w|x:z"
 
 
 /*******************************************************************************
@@ -119,6 +119,7 @@ Options (
     printf ("\nGlobal:\n");
     ACPI_OPTION ("-@ <file>",       "Specify command file");
     ACPI_OPTION ("-I <dir>",        "Specify additional include directory");
+    ACPI_OPTION ("-v",              "Display compiler version");
 
     printf ("\nPreprocessor:\n");
     ACPI_OPTION ("-D <symbol>",     "Define symbol for preprocessor use");
@@ -751,9 +752,13 @@ AslDoOptions (
         break;
 
 
-    case 'v':   /* Verbosity settings */
+    case 'v':   /* Version and verbosity settings */
         switch (AcpiGbl_Optarg[0])
         {
+        case '^':
+            printf (ACPI_COMMON_SIGNON (ASL_COMPILER_NAME));
+            exit (0);
+
         case 'a':
             /* Disable All error/warning messages */
 

Modified: head/sys/contrib/dev/acpica/components/debugger/dbcmds.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/debugger/dbcmds.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/debugger/dbcmds.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -254,12 +254,53 @@ AcpiDbDisplayTableInfo (
     ACPI_STATUS             Status;
 
 
+    /* Header */
+
+    AcpiOsPrintf ("Idx ID Status    Type            Sig  Address  Len   Header\n");
+
     /* Walk the entire root table list */
 
     for (i = 0; i < AcpiGbl_RootTableList.CurrentTableCount; i++)
     {
         TableDesc = &AcpiGbl_RootTableList.Tables[i];
-        AcpiOsPrintf ("%u ", i);
+
+        /* Index and Table ID */
+
+        AcpiOsPrintf ("%3u %.2u ", i, TableDesc->OwnerId);
+
+        /* Decode the table flags */
+
+        if (!(TableDesc->Flags & ACPI_TABLE_IS_LOADED))
+        {
+            AcpiOsPrintf ("NotLoaded ");
+        }
+        else
+        {
+            AcpiOsPrintf ("   Loaded ");
+        }
+
+        switch (TableDesc->Flags & ACPI_TABLE_ORIGIN_MASK)
+        {
+        case ACPI_TABLE_ORIGIN_UNKNOWN:
+            AcpiOsPrintf ("Unknown   ");
+            break;
+
+        case ACPI_TABLE_ORIGIN_MAPPED:
+            AcpiOsPrintf ("Mapped    ");
+            break;
+
+        case ACPI_TABLE_ORIGIN_ALLOCATED:
+            AcpiOsPrintf ("Allocated ");
+            break;
+
+        case ACPI_TABLE_ORIGIN_OVERRIDE:
+            AcpiOsPrintf ("Override  ");
+            break;
+
+        default:
+            AcpiOsPrintf ("INVALID   ");
+            break;
+        }
 
         /* Make sure that the table is mapped */
 
@@ -290,55 +331,45 @@ AcpiDbDisplayTableInfo (
  *
  * FUNCTION:    AcpiDbUnloadAcpiTable
  *
- * PARAMETERS:  TableArg        - Name of the table to be unloaded
- *              InstanceArg     - Which instance of the table to unload (if
- *                                there are multiple tables of the same type)
+ * PARAMETERS:  ObjectName          - Namespace pathname for an object that
+ *                                    is owned by the table to be unloaded
  *
- * RETURN:      Nonde
+ * RETURN:      None
  *
- * DESCRIPTION: Unload an ACPI table.
- *              Instance is not implemented
+ * DESCRIPTION: Unload an ACPI table, via any namespace node that is owned
+ *              by the table.
  *
  ******************************************************************************/
 
 void
 AcpiDbUnloadAcpiTable (
-    char                    *TableArg,
-    char                    *InstanceArg)
+    char                    *ObjectName)
 {
-/* TBD: Need to reimplement for new data structures */
-
-#if 0
-    UINT32                  i;
+    ACPI_NAMESPACE_NODE     *Node;
     ACPI_STATUS             Status;
 
 
-    /* Search all tables for the target type */
+    /* Translate name to an Named object */
 
-    for (i = 0; i < (ACPI_TABLE_ID_MAX+1); i++)
+    Node = AcpiDbConvertToNode (ObjectName);
+    if (!Node)
     {
-        if (!ACPI_STRNCMP (TableArg, AcpiGbl_TableData[i].Signature,
-                AcpiGbl_TableData[i].SigLength))
-        {
-            /* Found the table, unload it */
-
-            Status = AcpiUnloadTable (i);
-            if (ACPI_SUCCESS (Status))
-            {
-                AcpiOsPrintf ("[%s] unloaded and uninstalled\n", TableArg);
-            }
-            else
-            {
-                AcpiOsPrintf ("%s, while unloading [%s]\n",
-                    AcpiFormatException (Status), TableArg);
-            }
-
-            return;
-        }
+        AcpiOsPrintf ("Could not find [%s] in namespace\n",
+            ObjectName);
+        return;
     }
 
-    AcpiOsPrintf ("Unknown table type [%s]\n", TableArg);
-#endif
+    Status = AcpiUnloadParentTable (ACPI_CAST_PTR (ACPI_HANDLE, Node));
+    if (ACPI_SUCCESS (Status))
+    {
+        AcpiOsPrintf ("Parent of [%s] (%p) unloaded and uninstalled\n",
+            ObjectName, Node);
+    }
+    else
+    {
+        AcpiOsPrintf ("%s, while unloading parent table of [%s]\n",
+            AcpiFormatException (Status), ObjectName);
+    }
 }
 
 

Modified: head/sys/contrib/dev/acpica/components/debugger/dbinput.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/debugger/dbinput.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/debugger/dbinput.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -250,7 +250,7 @@ AcpiDbDisplayHelp (
     AcpiOsPrintf ("     Stack                            Display CPU stack usage\n");
     AcpiOsPrintf ("     Tables                           Info about current ACPI table(s)\n");
     AcpiOsPrintf ("  Tables                              Display info about loaded ACPI tables\n");
-    AcpiOsPrintf ("  Unload <TableSig> [Instance]        Unload an ACPI table\n");
+    AcpiOsPrintf ("  Unload <Namepath>                   Unload an ACPI table via namespace object\n");
     AcpiOsPrintf ("  ! <CommandNumber>                   Execute command from history buffer\n");
     AcpiOsPrintf ("  !!                                  Execute last command again\n");
 
@@ -894,7 +894,7 @@ AcpiDbCommandDispatch (
         break;
 
     case CMD_UNLOAD:
-        AcpiDbUnloadAcpiTable (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
+        AcpiDbUnloadAcpiTable (AcpiGbl_DbArgs[1]);
         break;
 
     case CMD_EXIT:

Modified: head/sys/contrib/dev/acpica/components/events/evxfgpe.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/events/evxfgpe.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/events/evxfgpe.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -83,7 +83,7 @@ AcpiUpdateAllGpes (
     ACPI_STATUS             Status;
 
 
-    ACPI_FUNCTION_TRACE (AcpiUpdateGpes);
+    ACPI_FUNCTION_TRACE (AcpiUpdateAllGpes);
 
 
     Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
@@ -298,7 +298,8 @@ AcpiSetupGpeForWake (
     ACPI_STATUS             Status;
     ACPI_GPE_EVENT_INFO     *GpeEventInfo;
     ACPI_NAMESPACE_NODE     *DeviceNode;
-    ACPI_GPE_NOTIFY_INFO    *NewNotify, *Notify;
+    ACPI_GPE_NOTIFY_INFO    *Notify;
+    ACPI_GPE_NOTIFY_INFO    *NewNotify;
     ACPI_CPU_FLAGS          Flags;
 
 
@@ -334,6 +335,11 @@ AcpiSetupGpeForWake (
         return_ACPI_STATUS (AE_BAD_PARAMETER);
     }
 
+    /*
+     * Allocate a new notify object up front, in case it is needed.
+     * Memory allocation while holding a spinlock is a big no-no
+     * on some hosts.
+     */
     NewNotify = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_GPE_NOTIFY_INFO));
     if (!NewNotify)
     {
@@ -401,8 +407,12 @@ AcpiSetupGpeForWake (
     GpeEventInfo->Flags |= ACPI_GPE_CAN_WAKE;
     Status = AE_OK;
 
+
 UnlockAndExit:
     AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
+
+    /* Delete the notify object if it was not used above */
+
     if (NewNotify)
     {
         ACPI_FREE (NewNotify);

Modified: head/sys/contrib/dev/acpica/components/executer/exprep.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/executer/exprep.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/executer/exprep.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -418,8 +418,8 @@ AcpiExPrepCommonFieldObject (
  *
  * RETURN:      Status
  *
- * DESCRIPTION: Construct an ACPI_OPERAND_OBJECT of type DefField and
- *              connect it to the parent Node.
+ * DESCRIPTION: Construct an object of type ACPI_OPERAND_OBJECT with a
+ *              subtype of DefField and connect it to the parent Node.
  *
  ******************************************************************************/
 

Modified: head/sys/contrib/dev/acpica/components/executer/exresolv.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/executer/exresolv.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/executer/exresolv.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -165,7 +165,7 @@ AcpiExResolveObjectToValue (
 
     StackDesc = *StackPtr;
 
-    /* This is an ACPI_OPERAND_OBJECT  */
+    /* This is an object of type ACPI_OPERAND_OBJECT */
 
     switch (StackDesc->Common.Type)
     {

Modified: head/sys/contrib/dev/acpica/components/executer/exstore.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/executer/exstore.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/executer/exstore.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -68,15 +68,15 @@ AcpiExStoreObjectToIndex (
  * FUNCTION:    AcpiExStore
  *
  * PARAMETERS:  *SourceDesc         - Value to be stored
- *              *DestDesc           - Where to store it.  Must be an NS node
- *                                    or an ACPI_OPERAND_OBJECT of type
+ *              *DestDesc           - Where to store it. Must be an NS node
+ *                                    or ACPI_OPERAND_OBJECT of type
  *                                    Reference;
  *              WalkState           - Current walk state
  *
  * RETURN:      Status
  *
  * DESCRIPTION: Store the value described by SourceDesc into the location
- *              described by DestDesc.  Called by various interpreter
+ *              described by DestDesc. Called by various interpreter
  *              functions to store the result of an operation into
  *              the destination operand -- not just simply the actual "Store"
  *              ASL operator.

Modified: head/sys/contrib/dev/acpica/components/executer/exutils.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/executer/exutils.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/executer/exutils.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -121,7 +121,7 @@ AcpiExEnterInterpreter (
  *
  * DESCRIPTION: Reacquire the interpreter execution region from within the
  *              interpreter code. Failure to enter the interpreter region is a
- *              fatal system error. Used in  conjuction with
+ *              fatal system error. Used in conjunction with
  *              RelinquishInterpreter
  *
  ******************************************************************************/

Modified: head/sys/contrib/dev/acpica/components/hardware/hwsleep.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/hardware/hwsleep.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/hardware/hwsleep.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -100,20 +100,6 @@ AcpiHwLegacySleep (
         return_ACPI_STATUS (Status);
     }
 
-    if (SleepState != ACPI_STATE_S5)
-    {
-        /*
-         * Disable BM arbitration. This feature is contained within an
-         * optional register (PM2 Control), so ignore a BAD_ADDRESS
-         * exception.
-         */
-        Status = AcpiWriteBitRegister (ACPI_BITREG_ARB_DISABLE, 1);
-        if (ACPI_FAILURE (Status) && (Status != AE_BAD_ADDRESS))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-
     /*
      * 1) Disable/Clear all GPEs
      * 2) Enable all wakeup GPEs
@@ -394,17 +380,6 @@ AcpiHwLegacyWake (
             AcpiGbl_FixedEventInfo[ACPI_EVENT_POWER_BUTTON].StatusRegisterId,
             ACPI_CLEAR_STATUS);
 
-    /*
-     * Enable BM arbitration. This feature is contained within an
-     * optional register (PM2 Control), so ignore a BAD_ADDRESS
-     * exception.
-     */
-    Status = AcpiWriteBitRegister (ACPI_BITREG_ARB_DISABLE, 0);
-    if (ACPI_FAILURE (Status) && (Status != AE_BAD_ADDRESS))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
     AcpiHwExecuteSleepMethod (METHOD_PATHNAME__SST, ACPI_SST_WORKING);
     return_ACPI_STATUS (Status);
 }

Modified: head/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -101,6 +101,14 @@ AcpiSetFirmwareWakingVector (
     ACPI_FUNCTION_TRACE (AcpiSetFirmwareWakingVector);
 
 
+    /*
+     * According to the ACPI specification 2.0c and later, the 64-bit
+     * waking vector should be cleared and the 32-bit waking vector should
+     * be used, unless we want the wake-up code to be called by the BIOS in
+     * Protected Mode. Some systems (for example HP dv5-1004nr) are known
+     * to fail to resume if the 64-bit vector is used.
+     */
+
     /* Set the 32-bit vector */
 
     AcpiGbl_FACS->FirmwareWakingVector = PhysicalAddress;

Modified: head/sys/contrib/dev/acpica/components/namespace/nspredef.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/namespace/nspredef.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/namespace/nspredef.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -681,7 +681,7 @@ AcpiNsCheckPackage (
         {
             /* Create the new outer package and populate it */
 
-            Status = AcpiNsWrapWithPackage (Data, *Elements, ReturnObjectPtr);
+            Status = AcpiNsWrapWithPackage (Data, ReturnObject, ReturnObjectPtr);
             if (ACPI_FAILURE (Status))
             {
                 return (Status);

Modified: head/sys/contrib/dev/acpica/components/parser/psxface.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/parser/psxface.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/parser/psxface.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -348,8 +348,8 @@ AcpiPsExecuteMethod (
     }
 
     /*
-     * Start method evaluation with an implicit return of zero. This is done
-     * for Windows compatibility.
+     * Start method evaluation with an implicit return of zero.
+     * This is done for Windows compatibility.
      */
     if (AcpiGbl_EnableInterpreterSlack)
     {

Modified: head/sys/contrib/dev/acpica/components/resources/rscreate.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/resources/rscreate.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/resources/rscreate.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -209,8 +209,8 @@ AcpiRsCreateResourceList (
  *
  * FUNCTION:    AcpiRsCreatePciRoutingTable
  *
- * PARAMETERS:  PackageObject           - Pointer to an ACPI_OPERAND_OBJECT
- *                                        package
+ * PARAMETERS:  PackageObject           - Pointer to a package containing one
+ *                                        of more ACPI_OPERAND_OBJECTs
  *              OutputBuffer            - Pointer to the user's buffer
  *
  * RETURN:      Status  AE_OK if okay, else a valid ACPI_STATUS code.
@@ -218,7 +218,7 @@ AcpiRsCreateResourceList (
  *              AE_BUFFER_OVERFLOW and OutputBuffer->Length will point
  *              to the size buffer needed.
  *
- * DESCRIPTION: Takes the ACPI_OPERAND_OBJECT  package and creates a
+ * DESCRIPTION: Takes the ACPI_OPERAND_OBJECT package and creates a
  *              linked list of PCI interrupt descriptions
  *
  * NOTE: It is the caller's responsibility to ensure that the start of the

Modified: head/sys/contrib/dev/acpica/components/resources/rsutils.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/resources/rsutils.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/resources/rsutils.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -181,7 +181,7 @@ AcpiRsMoveData (
 
         /*
          * 16-, 32-, and 64-bit cases must use the move macros that perform
-         * endian conversion and/or accomodate hardware that cannot perform
+         * endian conversion and/or accommodate hardware that cannot perform
          * misaligned memory transfers
          */
         case ACPI_RSC_MOVE16:

Modified: head/sys/contrib/dev/acpica/components/tables/tbfadt.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/tables/tbfadt.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/tables/tbfadt.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -192,7 +192,7 @@ static ACPI_FADT_PM_INFO    FadtPmInfoTa
  *
  * PARAMETERS:  GenericAddress      - GAS struct to be initialized
  *              SpaceId             - ACPI Space ID for this register
- *              ByteWidth           - Width of this register, in bytes
+ *              ByteWidth           - Width of this register
  *              Address             - Address of the register
  *
  * RETURN:      None
@@ -338,7 +338,7 @@ AcpiTbCreateLocalFadt (
      */
     if (Length > sizeof (ACPI_TABLE_FADT))
     {
-        ACPI_WARNING ((AE_INFO,
+        ACPI_BIOS_WARNING ((AE_INFO,
             "FADT (revision %u) is longer than ACPI 5.0 version, "
             "truncating length %u to %u",
             Table->Revision, Length, (UINT32) sizeof (ACPI_TABLE_FADT)));
@@ -486,8 +486,9 @@ AcpiTbConvertFadt (
         if (Address64->Address && Address32 &&
            (Address64->Address != (UINT64) Address32))
         {
-            ACPI_ERROR ((AE_INFO,
-                "32/64X address mismatch in %s: 0x%8.8X/0x%8.8X%8.8X, using 32",
+            ACPI_BIOS_ERROR ((AE_INFO,
+                "32/64X address mismatch in FADT/%s: "
+                "0x%8.8X/0x%8.8X%8.8X, using 32",
                 FadtInfoTable[i].Name, Address32,
                 ACPI_FORMAT_UINT64 (Address64->Address)));
         }
@@ -546,7 +547,7 @@ AcpiTbValidateFadt (
     if (AcpiGbl_FADT.Facs &&
         (AcpiGbl_FADT.XFacs != (UINT64) AcpiGbl_FADT.Facs))
     {
-        ACPI_WARNING ((AE_INFO,
+        ACPI_BIOS_WARNING ((AE_INFO,
             "32/64X FACS address mismatch in FADT - "
             "0x%8.8X/0x%8.8X%8.8X, using 32",
             AcpiGbl_FADT.Facs, ACPI_FORMAT_UINT64 (AcpiGbl_FADT.XFacs)));
@@ -557,7 +558,7 @@ AcpiTbValidateFadt (
     if (AcpiGbl_FADT.Dsdt &&
         (AcpiGbl_FADT.XDsdt != (UINT64) AcpiGbl_FADT.Dsdt))
     {
-        ACPI_WARNING ((AE_INFO,
+        ACPI_BIOS_WARNING ((AE_INFO,
             "32/64X DSDT address mismatch in FADT - "
             "0x%8.8X/0x%8.8X%8.8X, using 32",
             AcpiGbl_FADT.Dsdt, ACPI_FORMAT_UINT64 (AcpiGbl_FADT.XDsdt)));
@@ -593,8 +594,8 @@ AcpiTbValidateFadt (
         if (Address64->Address &&
            (Address64->BitWidth != ACPI_MUL_8 (Length)))
         {
-            ACPI_WARNING ((AE_INFO,
-                "32/64X length mismatch in %s: %u/%u",
+            ACPI_BIOS_WARNING ((AE_INFO,
+                "32/64X length mismatch in FADT/%s: %u/%u",
                 Name, ACPI_MUL_8 (Length), Address64->BitWidth));
         }
 
@@ -606,9 +607,9 @@ AcpiTbValidateFadt (
              */
             if (!Address64->Address || !Length)
             {
-                ACPI_ERROR ((AE_INFO,
-                    "Required field %s has zero address and/or length:"
-                    " 0x%8.8X%8.8X/0x%X",
+                ACPI_BIOS_ERROR ((AE_INFO,
+                    "Required FADT field %s has zero address and/or length: "
+                    "0x%8.8X%8.8X/0x%X",
                     Name, ACPI_FORMAT_UINT64 (Address64->Address), Length));
             }
         }
@@ -622,8 +623,8 @@ AcpiTbValidateFadt (
             if ((Address64->Address && !Length) ||
                 (!Address64->Address && Length))
             {
-                ACPI_WARNING ((AE_INFO,
-                    "Optional field %s has zero address or length: "
+                ACPI_BIOS_WARNING ((AE_INFO,
+                    "Optional FADT field %s has zero address or length: "
                     "0x%8.8X%8.8X/0x%X",
                     Name, ACPI_FORMAT_UINT64 (Address64->Address), Length));
             }
@@ -674,8 +675,8 @@ AcpiTbSetupFadtRegisters (
                 (FadtInfoTable[i].DefaultLength > 0) &&
                 (FadtInfoTable[i].DefaultLength != Target64->BitWidth))
             {
-                ACPI_WARNING ((AE_INFO,
-                    "Invalid length for %s: %u, using default %u",
+                ACPI_BIOS_WARNING ((AE_INFO,
+                    "Invalid length for FADT/%s: %u, using default %u",
                     FadtInfoTable[i].Name, Target64->BitWidth,
                     FadtInfoTable[i].DefaultLength));
 

Modified: head/sys/contrib/dev/acpica/components/tables/tbinstal.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/tables/tbinstal.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/tables/tbinstal.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -157,8 +157,9 @@ AcpiTbAddTable (
        (!ACPI_COMPARE_NAME (TableDesc->Pointer->Signature, ACPI_SIG_SSDT)) &&
        (ACPI_STRNCMP (TableDesc->Pointer->Signature, "OEM", 3)))
     {
-        ACPI_ERROR ((AE_INFO,
-            "Table has invalid signature [%4.4s] (0x%8.8X), must be SSDT or OEMx",
+        ACPI_BIOS_ERROR ((AE_INFO,
+            "Table has invalid signature [%4.4s] (0x%8.8X), "
+            "must be SSDT or OEMx",
             AcpiUtValidAcpiName (*(UINT32 *) TableDesc->Pointer->Signature) ?
                 TableDesc->Pointer->Signature : "????",
             *(UINT32 *) TableDesc->Pointer->Signature));

Modified: head/sys/contrib/dev/acpica/components/tables/tbutils.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/tables/tbutils.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/tables/tbutils.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -287,8 +287,9 @@ AcpiTbVerifyChecksum (
 
     if (Checksum)
     {
-        ACPI_WARNING ((AE_INFO,
-            "Incorrect checksum in table [%4.4s] - 0x%2.2X, should be 0x%2.2X",
+        ACPI_BIOS_WARNING ((AE_INFO,
+            "Incorrect checksum in table [%4.4s] - 0x%2.2X, "
+            "should be 0x%2.2X",
             Table->Signature, Table->Checksum,
             (UINT8) (Table->Checksum - Checksum)));
 
@@ -356,8 +357,9 @@ AcpiTbCheckDsdtHeader (
     if (AcpiGbl_OriginalDsdtHeader.Length != AcpiGbl_DSDT->Length ||
         AcpiGbl_OriginalDsdtHeader.Checksum != AcpiGbl_DSDT->Checksum)
     {
-        ACPI_ERROR ((AE_INFO,
-            "The DSDT has been corrupted or replaced - old, new headers below"));
+        ACPI_BIOS_ERROR ((AE_INFO,
+            "The DSDT has been corrupted or replaced - "
+            "old, new headers below"));
         AcpiTbPrintTableHeader (0, &AcpiGbl_OriginalDsdtHeader);
         AcpiTbPrintTableHeader (0, AcpiGbl_DSDT);
 
@@ -460,27 +462,12 @@ AcpiTbInstallTable (
         return;
     }
 
-    /* Skip SSDT when DSDT is overriden */
-
-    if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_SSDT) &&
-       (AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Flags &
-            ACPI_TABLE_ORIGIN_OVERRIDE))
-    {
-        ACPI_INFO ((AE_INFO,
-            "%4.4s @ 0x%p Table override, replaced with:", ACPI_SIG_SSDT,
-            ACPI_CAST_PTR (void, Address)));
-        AcpiTbPrintTableHeader (
-            AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Address,
-            AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Pointer);
-        goto UnmapAndExit;
-    }
-
     /* If a particular signature is expected (DSDT/FACS), it must match */
 
     if (Signature &&
         !ACPI_COMPARE_NAME (Table->Signature, Signature))
     {
-        ACPI_ERROR ((AE_INFO,
+        ACPI_BIOS_ERROR ((AE_INFO,
             "Invalid signature 0x%X for ACPI table, expected [%s]",
             *ACPI_CAST_PTR (UINT32, Table->Signature), Signature));
         goto UnmapAndExit;
@@ -498,6 +485,19 @@ AcpiTbInstallTable (
     TableDesc->Flags = ACPI_TABLE_ORIGIN_MAPPED;
     ACPI_MOVE_32_TO_32 (TableDesc->Signature.Ascii, Table->Signature);
 
+    /* When DSDT is overriden, assume SSDT is also overriden with it */
+
+    if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_SSDT) &&
+       (AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Flags &
+            ACPI_TABLE_ORIGIN_OVERRIDE))
+    {
+        TableDesc->Flags = ACPI_TABLE_ORIGIN_OVERRIDE;
+        ACPI_INFO ((AE_INFO,
+            "%4.4s %p Logical table override, replaced with %4.4s",
+            ACPI_SIG_SSDT, ACPI_CAST_PTR (void, Address), ACPI_SIG_DSDT));
+        goto UnmapAndExit;
+    }
+
     /*
      * ACPI Table Override:
      *
@@ -599,7 +599,7 @@ AcpiTbGetRootTableEntry (
         {
             /* Will truncate 64-bit address to 32 bits, issue warning */
 
-            ACPI_WARNING ((AE_INFO,
+            ACPI_BIOS_WARNING ((AE_INFO,
                 "64-bit Physical Address in XSDT is too large (0x%8.8X%8.8X),"
                 " truncating",
                 ACPI_FORMAT_UINT64 (Address64)));
@@ -701,7 +701,8 @@ AcpiTbParseRootTable (
 
     if (Length < sizeof (ACPI_TABLE_HEADER))
     {
-        ACPI_ERROR ((AE_INFO, "Invalid length 0x%X in RSDT/XSDT", Length));
+        ACPI_BIOS_ERROR ((AE_INFO,
+            "Invalid table length 0x%X in RSDT/XSDT", Length));
         return_ACPI_STATUS (AE_INVALID_TABLE_LENGTH);
     }
 

Modified: head/sys/contrib/dev/acpica/components/tables/tbxface.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/tables/tbxface.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/tables/tbxface.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -1,7 +1,6 @@
 /******************************************************************************
  *
- * Module Name: tbxface - Public interfaces to the ACPI subsystem
- *                         ACPI table oriented interfaces
+ * Module Name: tbxface - ACPI table oriented external interfaces
  *
  *****************************************************************************/
 
@@ -46,18 +45,11 @@
 
 #include <contrib/dev/acpica/include/acpi.h>
 #include <contrib/dev/acpica/include/accommon.h>
-#include <contrib/dev/acpica/include/acnamesp.h>
 #include <contrib/dev/acpica/include/actables.h>
 
 #define _COMPONENT          ACPI_TABLES
         ACPI_MODULE_NAME    ("tbxface")
 
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiTbLoadNamespace (
-    void);
-
 
 /*******************************************************************************
  *
@@ -458,165 +450,6 @@ ACPI_EXPORT_SYMBOL (AcpiGetTableByIndex)
 
 /*******************************************************************************
  *
- * FUNCTION:    AcpiTbLoadNamespace
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Load the namespace from the DSDT and all SSDTs/PSDTs found in
- *              the RSDT/XSDT.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiTbLoadNamespace (
-    void)
-{
-    ACPI_STATUS             Status;
-    UINT32                  i;
-    ACPI_TABLE_HEADER       *NewDsdt;
-
-
-    ACPI_FUNCTION_TRACE (TbLoadNamespace);
-
-
-    (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-
-    /*
-     * Load the namespace. The DSDT is required, but any SSDT and
-     * PSDT tables are optional. Verify the DSDT.
-     */
-    if (!AcpiGbl_RootTableList.CurrentTableCount ||
-        !ACPI_COMPARE_NAME (
-            &(AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Signature),
-            ACPI_SIG_DSDT) ||
-         ACPI_FAILURE (AcpiTbVerifyTable (
-            &AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT])))
-    {
-        Status = AE_NO_ACPI_TABLES;
-        goto UnlockAndExit;
-    }
-
-    /*
-     * Save the DSDT pointer for simple access. This is the mapped memory
-     * address. We must take care here because the address of the .Tables
-     * array can change dynamically as tables are loaded at run-time. Note:
-     * .Pointer field is not validated until after call to AcpiTbVerifyTable.
-     */
-    AcpiGbl_DSDT = AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Pointer;
-
-    /*
-     * Optionally copy the entire DSDT to local memory (instead of simply
-     * mapping it.) There are some BIOSs that corrupt or replace the original
-     * DSDT, creating the need for this option. Default is FALSE, do not copy
-     * the DSDT.
-     */
-    if (AcpiGbl_CopyDsdtLocally)
-    {
-        NewDsdt = AcpiTbCopyDsdt (ACPI_TABLE_INDEX_DSDT);
-        if (NewDsdt)
-        {
-            AcpiGbl_DSDT = NewDsdt;
-        }
-    }
-
-    /*
-     * Save the original DSDT header for detection of table corruption
-     * and/or replacement of the DSDT from outside the OS.
-     */
-    ACPI_MEMCPY (&AcpiGbl_OriginalDsdtHeader, AcpiGbl_DSDT,
-        sizeof (ACPI_TABLE_HEADER));
-
-    (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-
-    /* Load and parse tables */
-
-    Status = AcpiNsLoadTable (ACPI_TABLE_INDEX_DSDT, AcpiGbl_RootNode);
-    if (ACPI_FAILURE (Status))
-    {
-        return_ACPI_STATUS (Status);
-    }
-
-    /* Load any SSDT or PSDT tables. Note: Loop leaves tables locked */
-
-    (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-    for (i = 2; i < AcpiGbl_RootTableList.CurrentTableCount; ++i)
-    {
-        if ((!ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature),
-                    ACPI_SIG_SSDT) &&
-             !ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature),
-                    ACPI_SIG_PSDT)) ||
-             ACPI_FAILURE (AcpiTbVerifyTable (
-                &AcpiGbl_RootTableList.Tables[i])))
-        {
-            continue;
-        }
-
-        /* Skip SSDT when DSDT is overriden */
-
-        if (ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature),
-                    ACPI_SIG_SSDT) &&
-            (AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Flags &
-                    ACPI_TABLE_ORIGIN_OVERRIDE))
-        {
-            continue;
-        }
-
-        /* Ignore errors while loading tables, get as many as possible */
-
-        (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-        (void) AcpiNsLoadTable (i, AcpiGbl_RootNode);
-        (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-    }
-
-    ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "ACPI Tables successfully acquired\n"));
-
-UnlockAndExit:
-    (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-    return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AcpiLoadTables
- *
- * PARAMETERS:  None
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Load the ACPI tables from the RSDT/XSDT
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiLoadTables (
-    void)
-{
-    ACPI_STATUS             Status;
-
-
-    ACPI_FUNCTION_TRACE (AcpiLoadTables);
-
-
-    /* Load the namespace from the tables */
-
-    Status = AcpiTbLoadNamespace ();
-    if (ACPI_FAILURE (Status))
-    {
-        ACPI_EXCEPTION ((AE_INFO, Status,
-            "While loading namespace from ACPI tables"));
-    }
-
-    return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiLoadTables)
-
-
-/*******************************************************************************
- *
  * FUNCTION:    AcpiInstallTableHandler
  *
  * PARAMETERS:  Handler         - Table event handler

Copied and modified: head/sys/contrib/dev/acpica/components/tables/tbxfload.c (from r238368, vendor-sys/acpica/dist/source/components/tables/tbxfload.c)
==============================================================================
--- vendor-sys/acpica/dist/source/components/tables/tbxfload.c	Wed Jul 11 16:52:25 2012	(r238368, copy source)
+++ head/sys/contrib/dev/acpica/components/tables/tbxfload.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -43,10 +43,10 @@
 
 #define __TBXFLOAD_C__
 
-#include "acpi.h"
-#include "accommon.h"
-#include "acnamesp.h"
-#include "actables.h"
+#include <contrib/dev/acpica/include/acpi.h>
+#include <contrib/dev/acpica/include/accommon.h>
+#include <contrib/dev/acpica/include/acnamesp.h>
+#include <contrib/dev/acpica/include/actables.h>
 
 #define _COMPONENT          ACPI_TABLES
         ACPI_MODULE_NAME    ("tbxfload")
@@ -180,7 +180,7 @@ AcpiTbLoadNamespace (
     /* Load any SSDT or PSDT tables. Note: Loop leaves tables locked */
 
     (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-    for (i = 0; i < AcpiGbl_RootTableList.CurrentTableCount; ++i)
+    for (i = 2; i < AcpiGbl_RootTableList.CurrentTableCount; ++i)
     {
         if ((!ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature),
                     ACPI_SIG_SSDT) &&
@@ -192,6 +192,15 @@ AcpiTbLoadNamespace (
             continue;
         }
 
+        /* Skip SSDT when it is overriden with DSDT */
+        if (ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature),
+                    ACPI_SIG_SSDT) &&
+            (AcpiGbl_RootTableList.Tables[i].Flags &
+                    ACPI_TABLE_ORIGIN_OVERRIDE))
+        {
+            continue;
+        }
+
         /* Ignore errors while loading tables, get as many as possible */
 
         (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);

Modified: head/sys/contrib/dev/acpica/components/tables/tbxfroot.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/tables/tbxfroot.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/tables/tbxfroot.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -234,7 +234,7 @@ AcpiFindRootPointer (
 
     /* A valid RSDP was not found */
 
-    ACPI_ERROR ((AE_INFO, "A valid RSDP was not found"));
+    ACPI_BIOS_ERROR ((AE_INFO, "A valid RSDP was not found"));
     return_ACPI_STATUS (AE_NOT_FOUND);
 }
 

Modified: head/sys/contrib/dev/acpica/components/utilities/utdecode.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/utilities/utdecode.c	Wed Jul 11 23:12:17 2012	(r238380)
+++ head/sys/contrib/dev/acpica/components/utilities/utdecode.c	Wed Jul 11 23:18:35 2012	(r238381)
@@ -51,47 +51,6 @@
         ACPI_MODULE_NAME    ("utdecode")
 
 
-/*******************************************************************************
- *
- * FUNCTION:    AcpiFormatException
- *
- * PARAMETERS:  Status       - The ACPI_STATUS code to be formatted
- *
- * RETURN:      A string containing the exception text. A valid pointer is
- *              always returned.
- *
- * DESCRIPTION: This function translates an ACPI exception into an ASCII string
- *              It is here instead of utxface.c so it is always present.
- *
- ******************************************************************************/
-
-const char *
-AcpiFormatException (
-    ACPI_STATUS             Status)
-{
-    const char              *Exception = NULL;
-
-
-    ACPI_FUNCTION_ENTRY ();
-
-
-    Exception = AcpiUtValidateException (Status);
-    if (!Exception)
-    {
-        /* Exception code was not recognized */
-
-        ACPI_ERROR ((AE_INFO,

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



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