From owner-svn-src-user@FreeBSD.ORG Sun Aug 22 21:55:13 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2E99210656AB; Sun, 22 Aug 2010 21:55:13 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1BEAA8FC1C; Sun, 22 Aug 2010 21:55:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o7MLtDic017948; Sun, 22 Aug 2010 21:55:13 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o7MLtCva017923; Sun, 22 Aug 2010 21:55:12 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201008222155.o7MLtCva017923@svn.freebsd.org> From: Warner Losh Date: Sun, 22 Aug 2010 21:55:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r211661 - in user/imp/tbemd/sys/contrib/dev/acpica: . debugger disassembler dispatcher events hardware include namespace utilities X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Aug 2010 21:55:13 -0000 Author: imp Date: Sun Aug 22 21:55:12 2010 New Revision: 211661 URL: http://svn.freebsd.org/changeset/base/211661 Log: Merge to head @211636 -- with hand tweaks [given up] hoping for the best Added: user/imp/tbemd/sys/contrib/dev/acpica/utilities/utosi.c - copied unchanged from r211636, head/sys/contrib/dev/acpica/utilities/utosi.c Modified: user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbcmds.c user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbdisply.c user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbexec.c user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbfileio.c user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbhistry.c user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbinput.c user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbutils.c user/imp/tbemd/sys/contrib/dev/acpica/disassembler/dmobject.c user/imp/tbemd/sys/contrib/dev/acpica/disassembler/dmopcode.c user/imp/tbemd/sys/contrib/dev/acpica/disassembler/dmresrc.c user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsinit.c user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsmethod.c user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsmthdat.c user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsobject.c user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsopcode.c user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsutils.c user/imp/tbemd/sys/contrib/dev/acpica/events/evgpe.c user/imp/tbemd/sys/contrib/dev/acpica/events/evgpeblk.c user/imp/tbemd/sys/contrib/dev/acpica/events/evgpeinit.c user/imp/tbemd/sys/contrib/dev/acpica/events/evgpeutil.c user/imp/tbemd/sys/contrib/dev/acpica/events/evrgnini.c user/imp/tbemd/sys/contrib/dev/acpica/events/evxface.c user/imp/tbemd/sys/contrib/dev/acpica/events/evxfevnt.c user/imp/tbemd/sys/contrib/dev/acpica/hardware/hwgpe.c user/imp/tbemd/sys/contrib/dev/acpica/hardware/hwsleep.c user/imp/tbemd/sys/contrib/dev/acpica/hardware/hwvalid.c user/imp/tbemd/sys/contrib/dev/acpica/include/acconfig.h user/imp/tbemd/sys/contrib/dev/acpica/include/acdebug.h user/imp/tbemd/sys/contrib/dev/acpica/include/acdisasm.h user/imp/tbemd/sys/contrib/dev/acpica/include/acevents.h user/imp/tbemd/sys/contrib/dev/acpica/include/acexcep.h user/imp/tbemd/sys/contrib/dev/acpica/include/acglobal.h user/imp/tbemd/sys/contrib/dev/acpica/include/achware.h user/imp/tbemd/sys/contrib/dev/acpica/include/aclocal.h user/imp/tbemd/sys/contrib/dev/acpica/include/acnamesp.h user/imp/tbemd/sys/contrib/dev/acpica/include/acobject.h user/imp/tbemd/sys/contrib/dev/acpica/include/acoutput.h user/imp/tbemd/sys/contrib/dev/acpica/include/acpiosxf.h user/imp/tbemd/sys/contrib/dev/acpica/include/acpixf.h user/imp/tbemd/sys/contrib/dev/acpica/include/acpredef.h user/imp/tbemd/sys/contrib/dev/acpica/include/acstruct.h user/imp/tbemd/sys/contrib/dev/acpica/include/actbl.h user/imp/tbemd/sys/contrib/dev/acpica/include/actbl2.h user/imp/tbemd/sys/contrib/dev/acpica/include/actypes.h user/imp/tbemd/sys/contrib/dev/acpica/include/acutils.h user/imp/tbemd/sys/contrib/dev/acpica/namespace/nsaccess.c user/imp/tbemd/sys/contrib/dev/acpica/namespace/nsalloc.c user/imp/tbemd/sys/contrib/dev/acpica/namespace/nsdump.c user/imp/tbemd/sys/contrib/dev/acpica/namespace/nsinit.c user/imp/tbemd/sys/contrib/dev/acpica/namespace/nsnames.c user/imp/tbemd/sys/contrib/dev/acpica/namespace/nsparse.c user/imp/tbemd/sys/contrib/dev/acpica/namespace/nsrepair.c user/imp/tbemd/sys/contrib/dev/acpica/namespace/nsrepair2.c user/imp/tbemd/sys/contrib/dev/acpica/namespace/nssearch.c user/imp/tbemd/sys/contrib/dev/acpica/namespace/nsutils.c user/imp/tbemd/sys/contrib/dev/acpica/namespace/nswalk.c user/imp/tbemd/sys/contrib/dev/acpica/namespace/nsxfobj.c user/imp/tbemd/sys/contrib/dev/acpica/osunixxf.c user/imp/tbemd/sys/contrib/dev/acpica/utilities/uteval.c user/imp/tbemd/sys/contrib/dev/acpica/utilities/utglobal.c user/imp/tbemd/sys/contrib/dev/acpica/utilities/utinit.c user/imp/tbemd/sys/contrib/dev/acpica/utilities/utmisc.c user/imp/tbemd/sys/contrib/dev/acpica/utilities/utmutex.c user/imp/tbemd/sys/contrib/dev/acpica/utilities/uttrack.c user/imp/tbemd/sys/contrib/dev/acpica/utilities/utxface.c Modified: user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbcmds.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbcmds.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbcmds.c Sun Aug 22 21:55:12 2010 (r211661) @@ -477,7 +477,7 @@ AcpiDbCheckPredefinedNames ( (void) AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX, AcpiDbWalkForPredefinedNames, NULL, (void *) &Count, NULL); - AcpiOsPrintf ("Found %d predefined names in the namespace\n", Count); + AcpiOsPrintf ("Found %u predefined names in the namespace\n", Count); } @@ -619,7 +619,7 @@ AcpiDbBatchExecute ( (void) AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX, AcpiDbWalkForExecute, NULL, (void *) &Info, NULL); - AcpiOsPrintf ("Executed %d predefined names in the namespace\n", Info.Count); + AcpiOsPrintf ("Executed %u predefined names in the namespace\n", Info.Count); } @@ -678,7 +678,7 @@ AcpiDbDisplayTableInfo ( for (i = 0; i < AcpiGbl_RootTableList.CurrentTableCount; i++) { TableDesc = &AcpiGbl_RootTableList.Tables[i]; - AcpiOsPrintf ("%d ", i); + AcpiOsPrintf ("%u ", i); /* Make sure that the table is mapped */ @@ -1182,7 +1182,7 @@ AcpiDbSetMethodData ( if (Index > ACPI_METHOD_MAX_ARG) { - AcpiOsPrintf ("Arg%d - Invalid argument name\n", Index); + AcpiOsPrintf ("Arg%u - Invalid argument name\n", Index); goto Cleanup; } @@ -1195,7 +1195,7 @@ AcpiDbSetMethodData ( ObjDesc = WalkState->Arguments[Index].Object; - AcpiOsPrintf ("Arg%d: ", Index); + AcpiOsPrintf ("Arg%u: ", Index); AcpiDmDisplayInternalObject (ObjDesc, WalkState); break; @@ -1205,7 +1205,7 @@ AcpiDbSetMethodData ( if (Index > ACPI_METHOD_MAX_LOCAL) { - AcpiOsPrintf ("Local%d - Invalid local variable name\n", Index); + AcpiOsPrintf ("Local%u - Invalid local variable name\n", Index); goto Cleanup; } @@ -1218,7 +1218,7 @@ AcpiDbSetMethodData ( ObjDesc = WalkState->LocalVariables[Index].Object; - AcpiOsPrintf ("Local%d: ", Index); + AcpiOsPrintf ("Local%u: ", Index); AcpiDmDisplayInternalObject (ObjDesc, WalkState); break; @@ -1336,6 +1336,98 @@ AcpiDbDisplayObjects ( /******************************************************************************* * + * FUNCTION: AcpiDbDisplayInterfaces + * + * PARAMETERS: ActionArg - Null, "install", or "remove" + * InterfaceNameArg - Name for install/remove options + * + * RETURN: None + * + * DESCRIPTION: Display or modify the global _OSI interface list + * + ******************************************************************************/ + +void +AcpiDbDisplayInterfaces ( + char *ActionArg, + char *InterfaceNameArg) +{ + ACPI_INTERFACE_INFO *NextInterface; + char *SubString; + ACPI_STATUS Status; + + + /* If no arguments, just display current interface list */ + + if (!ActionArg) + { + (void) AcpiOsAcquireMutex (AcpiGbl_OsiMutex, + ACPI_WAIT_FOREVER); + + NextInterface = AcpiGbl_SupportedInterfaces; + + while (NextInterface) + { + if (!(NextInterface->Flags & ACPI_OSI_INVALID)) + { + AcpiOsPrintf ("%s\n", NextInterface->Name); + } + NextInterface = NextInterface->Next; + } + + AcpiOsReleaseMutex (AcpiGbl_OsiMutex); + return; + } + + /* If ActionArg exists, so must InterfaceNameArg */ + + if (!InterfaceNameArg) + { + AcpiOsPrintf ("Missing Interface Name argument\n"); + return; + } + + /* Uppercase the action for match below */ + + AcpiUtStrupr (ActionArg); + + /* Install - install an interface */ + + SubString = ACPI_STRSTR ("INSTALL", ActionArg); + if (SubString) + { + Status = AcpiInstallInterface (InterfaceNameArg); + if (ACPI_FAILURE (Status)) + { + AcpiOsPrintf ("%s, while installing \"%s\"\n", + AcpiFormatException (Status), InterfaceNameArg); + } + return; + } + + /* Remove - remove an interface */ + + SubString = ACPI_STRSTR ("REMOVE", ActionArg); + if (SubString) + { + Status = AcpiRemoveInterface (InterfaceNameArg); + if (ACPI_FAILURE (Status)) + { + AcpiOsPrintf ("%s, while removing \"%s\"\n", + AcpiFormatException (Status), InterfaceNameArg); + } + return; + } + + /* Invalid ActionArg */ + + AcpiOsPrintf ("Invalid action argument: %s\n", ActionArg); + return; +} + + +/******************************************************************************* + * * FUNCTION: AcpiDbWalkAndMatchName * * PARAMETERS: Callback from WalkNamespace @@ -1942,7 +2034,7 @@ AcpiDbCheckIntegrity ( (void) AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX, AcpiDbIntegrityWalk, NULL, (void *) &Info, NULL); - AcpiOsPrintf ("Verified %d namespace nodes with %d Objects\n", + AcpiOsPrintf ("Verified %u namespace nodes with %u Objects\n", Info.Nodes, Info.Objects); } Modified: user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbdisply.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbdisply.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbdisply.c Sun Aug 22 21:55:12 2010 (r211661) @@ -612,7 +612,7 @@ AcpiDbDisplayResults ( for (i = 0; i < ResultCount; i++) { ObjDesc = Frame->Results.ObjDesc[Index]; - AcpiOsPrintf ("Result%d: ", i); + AcpiOsPrintf ("Result%u: ", i); AcpiDmDisplayInternalObject (ObjDesc, WalkState); if (Index == 0) { @@ -722,7 +722,7 @@ AcpiDbDisplayObjectType ( { for (i = 0; i < Info->CompatibleIdList.Count; i++) { - AcpiOsPrintf ("CID %d: %s\n", i, + AcpiOsPrintf ("CID %u: %s\n", i, Info->CompatibleIdList.Ids[i].String); } } @@ -854,7 +854,7 @@ AcpiDbDisplayGpes ( GpeType = "GPE Block Device"; } - AcpiOsPrintf ("\nBlock %d - Info %p DeviceNode %p [%s] - %s\n", + AcpiOsPrintf ("\nBlock %u - Info %p DeviceNode %p [%s] - %s\n", Block, GpeBlock, GpeBlock->Node, Buffer, GpeType); AcpiOsPrintf (" Registers: %u (%u GPEs)\n", @@ -904,9 +904,9 @@ AcpiDbDisplayGpes ( } AcpiOsPrintf ( - " GPE %.2X: %p RunRefs %2.2X WakeRefs %2.2X Flags %2.2X (", + " GPE %.2X: %p RunRefs %2.2X Flags %2.2X (", GpeBlock->BlockBaseNumber + GpeIndex, GpeEventInfo, - GpeEventInfo->RuntimeCount, GpeEventInfo->WakeupCount, + GpeEventInfo->RuntimeCount, GpeEventInfo->Flags); /* Decode the flags byte */ Modified: user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbexec.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbexec.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbexec.c Sun Aug 22 21:55:12 2010 (r211661) @@ -602,7 +602,7 @@ AcpiDbMethodThread ( #if 0 if ((i % 100) == 0) { - AcpiOsPrintf ("%d executions, Thread 0x%x\n", i, AcpiOsGetThreadId ()); + AcpiOsPrintf ("%u executions, Thread 0x%x\n", i, AcpiOsGetThreadId ()); } if (ReturnObj.Length) Modified: user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbfileio.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbfileio.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbfileio.c Sun Aug 22 21:55:12 2010 (r211661) @@ -289,7 +289,7 @@ AcpiDbCheckTextModeCorruption ( * meaning that we cannot simply replace CR/LF pairs with LFs. */ AcpiOsPrintf ("Table has been corrupted by text mode conversion\n"); - AcpiOsPrintf ("All LFs (%d) were changed to CR/LF pairs\n", Pairs); + AcpiOsPrintf ("All LFs (%u) were changed to CR/LF pairs\n", Pairs); AcpiOsPrintf ("Table cannot be repaired!\n"); return (AE_BAD_VALUE); } Modified: user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbhistry.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbhistry.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbhistry.c Sun Aug 22 21:55:12 2010 (r211661) @@ -284,7 +284,7 @@ AcpiDbGetFromHistory ( } } - AcpiOsPrintf ("Invalid history number: %d\n", HistoryIndex); + AcpiOsPrintf ("Invalid history number: %u\n", HistoryIndex); return (NULL); } Modified: user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbinput.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbinput.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbinput.c Sun Aug 22 21:55:12 2010 (r211661) @@ -194,6 +194,7 @@ enum AcpiExDebuggerCommands CMD_NOTIFY, CMD_OBJECT, CMD_OPEN, + CMD_OSI, CMD_OWNER, CMD_PREDEFINED, CMD_PREFIX, @@ -260,6 +261,7 @@ static const COMMAND_INFO AcpiGbl_ {"NOTIFY", 2}, {"OBJECT", 1}, {"OPEN", 1}, + {"OSI", 0}, {"OWNER", 1}, {"PREDEFINED", 0}, {"PREFIX", 0}, @@ -333,6 +335,7 @@ AcpiDbDisplayHelp ( AcpiOsPrintf ("History Display command history buffer\n"); AcpiOsPrintf ("Level [] [console] Get/Set debug level for file or console\n"); AcpiOsPrintf ("Locks Current status of internal mutexes\n"); + AcpiOsPrintf ("Osi [Install|Remove ] Display or modify global _OSI list\n"); AcpiOsPrintf ("Quit or Exit Exit this command\n"); AcpiOsPrintf ("Stats [Allocations|Memory|Misc\n"); AcpiOsPrintf (" |Objects|Sizes|Stack|Tables] Display namespace and memory statistics\n"); @@ -455,13 +458,30 @@ AcpiDbGetNextToken ( } } - Start = String; + if (*String == '"') + { + /* This is a quoted string, scan until closing quote */ + + String++; + Start = String; - /* Find end of token */ + /* Find end of token */ - while (*String && (*String != ' ')) + while (*String && (*String != '"')) + { + String++; + } + } + else { - String++; + Start = String; + + /* Find end of token */ + + while (*String && (*String != ' ')) + { + String++; + } } if (!(*String)) @@ -613,7 +633,7 @@ AcpiDbCommandDispatch ( if (ParamCount < AcpiGbl_DbCommands[CommandIndex].MinArgs) { - AcpiOsPrintf ("%d parameters entered, [%s] requires %d parameters\n", + AcpiOsPrintf ("%u parameters entered, [%s] requires %u parameters\n", ParamCount, AcpiGbl_DbCommands[CommandIndex].Name, AcpiGbl_DbCommands[CommandIndex].MinArgs); @@ -820,6 +840,10 @@ AcpiDbCommandDispatch ( AcpiDbOpenDebugFile (AcpiGbl_DbArgs[1]); break; + case CMD_OSI: + AcpiDbDisplayInterfaces (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]); + break; + case CMD_OWNER: AcpiDbDumpNamespaceByOwner (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]); break; Modified: user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbutils.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbutils.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbutils.c Sun Aug 22 21:55:12 2010 (r211661) @@ -291,7 +291,7 @@ AcpiDbDumpExternalObject ( case ACPI_TYPE_PACKAGE: - AcpiOsPrintf ("[Package] Contains %d Elements:\n", + AcpiOsPrintf ("[Package] Contains %u Elements:\n", ObjDesc->Package.Count); for (i = 0; i < ObjDesc->Package.Count; i++) Modified: user/imp/tbemd/sys/contrib/dev/acpica/disassembler/dmobject.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/disassembler/dmobject.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/disassembler/dmobject.c Sun Aug 22 21:55:12 2010 (r211661) @@ -289,7 +289,7 @@ AcpiDmDecodeInternalObject ( case ACPI_TYPE_STRING: - AcpiOsPrintf ("(%d) \"%.24s", + AcpiOsPrintf ("(%u) \"%.24s", ObjDesc->String.Length, ObjDesc->String.Pointer); if (ObjDesc->String.Length > 24) @@ -305,7 +305,7 @@ AcpiDmDecodeInternalObject ( case ACPI_TYPE_BUFFER: - AcpiOsPrintf ("(%d)", ObjDesc->Buffer.Length); + AcpiOsPrintf ("(%u)", ObjDesc->Buffer.Length); for (i = 0; (i < 8) && (i < ObjDesc->Buffer.Length); i++) { AcpiOsPrintf (" %2.2X", ObjDesc->Buffer.Pointer[i]); @@ -651,7 +651,7 @@ AcpiDmDisplayArguments ( for (i = 0; i < ACPI_METHOD_NUM_ARGS; i++) { ObjDesc = WalkState->Arguments[i].Object; - AcpiOsPrintf (" Arg%d: ", i); + AcpiOsPrintf (" Arg%u: ", i); AcpiDmDisplayInternalObject (ObjDesc, WalkState); } } Modified: user/imp/tbemd/sys/contrib/dev/acpica/disassembler/dmopcode.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/disassembler/dmopcode.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/disassembler/dmopcode.c Sun Aug 22 21:55:12 2010 (r211661) @@ -163,7 +163,7 @@ AcpiDmMethodFlags ( /* 1) Method argument count */ - AcpiOsPrintf (", %d, ", Args); + AcpiOsPrintf (", %u, ", Args); /* 2) Serialize rule */ @@ -178,7 +178,7 @@ AcpiDmMethodFlags ( if (Flags & 0xF0) { - AcpiOsPrintf (", %d", Flags >> 4); + AcpiOsPrintf (", %u", Flags >> 4); } } @@ -550,7 +550,7 @@ AcpiDmDisassembleOneOp ( case AML_INT_NAMEDFIELD_OP: Length = AcpiDmDumpName (Op->Named.Name); - AcpiOsPrintf (",%*.s %d", (int) (5 - Length), " ", + AcpiOsPrintf (",%*.s %u", (unsigned) (5 - Length), " ", (UINT32) Op->Common.Value.Integer); AcpiDmCommaIfFieldMember (Op); @@ -571,7 +571,7 @@ AcpiDmDisassembleOneOp ( } else { - AcpiOsPrintf (" , %d", Offset); + AcpiOsPrintf (" , %u", Offset); } AcpiDmCommaIfFieldMember (Op); Modified: user/imp/tbemd/sys/contrib/dev/acpica/disassembler/dmresrc.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/disassembler/dmresrc.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/disassembler/dmresrc.c Sun Aug 22 21:55:12 2010 (r211661) @@ -290,7 +290,7 @@ AcpiDmBitList ( AcpiOsPrintf (","); } Previous = TRUE; - AcpiOsPrintf ("%d", i); + AcpiOsPrintf ("%u", i); } Mask >>= 1; Modified: user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsinit.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsinit.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsinit.c Sun Aug 22 21:55:12 2010 (r211661) @@ -263,12 +263,12 @@ AcpiDsInitializeObjects ( "**** Starting initialization of namespace objects ****\n")); ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, "Parsing all Control Methods:")); - Info.MethodCount = 0; - Info.OpRegionCount = 0; - Info.ObjectCount = 0; - Info.DeviceCount = 0; - Info.TableIndex = TableIndex; - Info.OwnerId = OwnerId; + /* Set all init info to zero */ + + ACPI_MEMSET (&Info, 0, sizeof (ACPI_INIT_WALK_INFO)); + + Info.OwnerId = OwnerId; + Info.TableIndex = TableIndex; /* Walk entire namespace from the supplied root */ @@ -297,12 +297,12 @@ AcpiDsInitializeObjects ( } ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, - "\nTable [%4.4s](id %4.4X) - %hd Objects with %hd Devices %hd Methods %hd Regions\n", + "\nTable [%4.4s](id %4.4X) - %u Objects with %u Devices %u Methods %u Regions\n", Table->Signature, OwnerId, Info.ObjectCount, Info.DeviceCount, Info.MethodCount, Info.OpRegionCount)); ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, - "%hd Methods, %hd Regions\n", Info.MethodCount, Info.OpRegionCount)); + "%u Methods, %u Regions\n", Info.MethodCount, Info.OpRegionCount)); return_ACPI_STATUS (AE_OK); } Modified: user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsmethod.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsmethod.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsmethod.c Sun Aug 22 21:55:12 2010 (r211661) @@ -700,7 +700,18 @@ AcpiDsTerminateControlMethod ( */ if (!(MethodDesc->Method.Flags & AOPOBJ_MODULE_LEVEL)) { - AcpiNsDeleteNamespaceByOwner (MethodDesc->Method.OwnerId); + /* Delete any direct children of (created by) this method */ + + AcpiNsDeleteNamespaceSubtree (WalkState->MethodNode); + + /* + * Delete any objects that were created by this method + * elsewhere in the namespace (if any were created). + */ + if (MethodDesc->Method.Flags & AOPOBJ_MODIFIED_NAMESPACE) + { + AcpiNsDeleteNamespaceByOwner (MethodDesc->Method.OwnerId); + } } } @@ -725,7 +736,7 @@ AcpiDsTerminateControlMethod ( * we immediately reuse it for the next thread executing this method */ ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, - "*** Completed execution of one thread, %d threads remaining\n", + "*** Completed execution of one thread, %u threads remaining\n", MethodDesc->Method.ThreadCount)); } else Modified: user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsmthdat.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsmthdat.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsmthdat.c Sun Aug 22 21:55:12 2010 (r211661) @@ -188,8 +188,7 @@ AcpiDsMethodDataInit ( WalkState->Arguments[i].Name.Integer |= (i << 24); WalkState->Arguments[i].DescriptorType = ACPI_DESC_TYPE_NAMED; WalkState->Arguments[i].Type = ACPI_TYPE_ANY; - WalkState->Arguments[i].Flags = - ANOBJ_END_OF_PEER_LIST | ANOBJ_METHOD_ARG; + WalkState->Arguments[i].Flags = ANOBJ_METHOD_ARG; } /* Init the method locals */ @@ -201,8 +200,7 @@ AcpiDsMethodDataInit ( WalkState->LocalVariables[i].Name.Integer |= (i << 24); WalkState->LocalVariables[i].DescriptorType = ACPI_DESC_TYPE_NAMED; WalkState->LocalVariables[i].Type = ACPI_TYPE_ANY; - WalkState->LocalVariables[i].Flags = - ANOBJ_END_OF_PEER_LIST | ANOBJ_METHOD_LOCAL; + WalkState->LocalVariables[i].Flags = ANOBJ_METHOD_LOCAL; } return_VOID; @@ -238,7 +236,7 @@ AcpiDsMethodDataDeleteAll ( { if (WalkState->LocalVariables[Index].Object) { - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Deleting Local%d=%p\n", + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Deleting Local%u=%p\n", Index, WalkState->LocalVariables[Index].Object)); /* Detach object (if present) and remove a reference */ @@ -253,7 +251,7 @@ AcpiDsMethodDataDeleteAll ( { if (WalkState->Arguments[Index].Object) { - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Deleting Arg%d=%p\n", + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Deleting Arg%u=%p\n", Index, WalkState->Arguments[Index].Object)); /* Detach object (if present) and remove a reference */ @@ -322,7 +320,7 @@ AcpiDsMethodDataInitArgs ( Index++; } - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%d args passed to method\n", Index)); + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%u args passed to method\n", Index)); return_ACPI_STATUS (AE_OK); } @@ -429,7 +427,7 @@ AcpiDsMethodDataSetValue ( ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, - "NewObj %p Type %2.2X, Refs=%d [%s]\n", Object, + "NewObj %p Type %2.2X, Refs=%u [%s]\n", Object, Type, Object->Common.ReferenceCount, AcpiUtGetTypeName (Object->Common.Type))); @@ -667,7 +665,7 @@ AcpiDsStoreObjectToLocal ( ACPI_FUNCTION_TRACE (DsStoreObjectToLocal); - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Type=%2.2X Index=%d Obj=%p\n", + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Type=%2.2X Index=%u Obj=%p\n", Type, Index, ObjDesc)); /* Parameter validation */ Modified: user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsobject.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsobject.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsobject.c Sun Aug 22 21:55:12 2010 (r211661) @@ -159,6 +159,7 @@ AcpiDsBuildInternalObject ( { ACPI_OPERAND_OBJECT *ObjDesc; ACPI_STATUS Status; + ACPI_OBJECT_TYPE Type; ACPI_FUNCTION_TRACE (DsBuildInternalObject); @@ -241,7 +242,20 @@ AcpiDsBuildInternalObject ( return_ACPI_STATUS (Status); } - switch (Op->Common.Node->Type) + /* + * Special handling for Alias objects. We need to setup the type + * and the Op->Common.Node to point to the Alias target. Note, + * Alias has at most one level of indirection internally. + */ + Type = Op->Common.Node->Type; + if (Type == ACPI_TYPE_LOCAL_ALIAS) + { + Type = ObjDesc->Common.Type; + Op->Common.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, + Op->Common.Node->Object); + } + + switch (Type) { /* * For these types, we need the actual node, not the subobject. Modified: user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsopcode.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsopcode.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsopcode.c Sun Aug 22 21:55:12 2010 (r211661) @@ -307,7 +307,7 @@ AcpiDsGetBufferFieldArguments ( /* Execute the AML code for the TermArg arguments */ - Status = AcpiDsExecuteArguments (Node, AcpiNsGetParentNode (Node), + Status = AcpiDsExecuteArguments (Node, Node->Parent, ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart); return_ACPI_STATUS (Status); } @@ -354,7 +354,7 @@ AcpiDsGetBankFieldArguments ( /* Execute the AML code for the TermArg arguments */ - Status = AcpiDsExecuteArguments (Node, AcpiNsGetParentNode (Node), + Status = AcpiDsExecuteArguments (Node, Node->Parent, ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart); return_ACPI_STATUS (Status); } @@ -505,7 +505,7 @@ AcpiDsGetRegionArguments ( /* Execute the argument AML */ - Status = AcpiDsExecuteArguments (Node, AcpiNsGetParentNode (Node), + Status = AcpiDsExecuteArguments (Node, Node->Parent, ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart); return_ACPI_STATUS (Status); } Modified: user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsutils.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsutils.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsutils.c Sun Aug 22 21:55:12 2010 (r211661) @@ -875,7 +875,7 @@ AcpiDsCreateOperands ( Index--; - ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Arg #%d (%p) done, Arg1=%p\n", + ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Arg #%u (%p) done, Arg1=%p\n", Index, Arg, FirstArg)); } @@ -890,7 +890,7 @@ Cleanup: */ AcpiDsObjStackPopAndDelete (ArgCount, WalkState); - ACPI_EXCEPTION ((AE_INFO, Status, "While creating Arg %d", Index)); + ACPI_EXCEPTION ((AE_INFO, Status, "While creating Arg %u", Index)); return_ACPI_STATUS (Status); } Modified: user/imp/tbemd/sys/contrib/dev/acpica/events/evgpe.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/events/evgpe.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/events/evgpe.c Sun Aug 22 21:55:12 2010 (r211661) @@ -134,26 +134,26 @@ AcpiEvAsynchEnableGpe ( /******************************************************************************* * - * FUNCTION: AcpiEvUpdateGpeEnableMasks + * FUNCTION: AcpiEvUpdateGpeEnableMask * * PARAMETERS: GpeEventInfo - GPE to update * * RETURN: Status * - * DESCRIPTION: Updates GPE register enable masks based upon whether there are - * references (either wake or run) to this GPE + * DESCRIPTION: Updates GPE register enable mask based upon whether there are + * runtime references to this GPE * ******************************************************************************/ ACPI_STATUS -AcpiEvUpdateGpeEnableMasks ( +AcpiEvUpdateGpeEnableMask ( ACPI_GPE_EVENT_INFO *GpeEventInfo) { ACPI_GPE_REGISTER_INFO *GpeRegisterInfo; - UINT8 RegisterBit; + UINT32 RegisterBit; - ACPI_FUNCTION_TRACE (EvUpdateGpeEnableMasks); + ACPI_FUNCTION_TRACE (EvUpdateGpeEnableMask); GpeRegisterInfo = GpeEventInfo->RegisterInfo; @@ -162,24 +162,17 @@ AcpiEvUpdateGpeEnableMasks ( return_ACPI_STATUS (AE_NOT_EXIST); } - RegisterBit = (UINT8) - (1 << (GpeEventInfo->GpeNumber - GpeRegisterInfo->BaseGpeNumber)); + RegisterBit = AcpiHwGetGpeRegisterBit (GpeEventInfo, GpeRegisterInfo); - /* Clear the wake/run bits up front */ + /* Clear the run bit up front */ - ACPI_CLEAR_BIT (GpeRegisterInfo->EnableForWake, RegisterBit); ACPI_CLEAR_BIT (GpeRegisterInfo->EnableForRun, RegisterBit); - /* Set the mask bits only if there are references to this GPE */ + /* Set the mask bit only if there are references to this GPE */ if (GpeEventInfo->RuntimeCount) { - ACPI_SET_BIT (GpeRegisterInfo->EnableForRun, RegisterBit); - } - - if (GpeEventInfo->WakeupCount) - { - ACPI_SET_BIT (GpeRegisterInfo->EnableForWake, RegisterBit); + ACPI_SET_BIT (GpeRegisterInfo->EnableForRun, (UINT8) RegisterBit); } return_ACPI_STATUS (AE_OK); @@ -194,10 +187,7 @@ AcpiEvUpdateGpeEnableMasks ( * * RETURN: Status * - * DESCRIPTION: Hardware-enable a GPE. Always enables the GPE, regardless - * of type or number of references. - * - * Note: The GPE lock should be already acquired when this function is called. + * DESCRIPTION: Clear a GPE of stale events and enable it. * ******************************************************************************/ @@ -222,14 +212,6 @@ AcpiEvEnableGpe ( return_ACPI_STATUS (AE_NO_HANDLER); } - /* Ensure the HW enable masks are current */ - - Status = AcpiEvUpdateGpeEnableMasks (GpeEventInfo); - if (ACPI_FAILURE (Status)) - { - return_ACPI_STATUS (Status); - } - /* Clear the GPE (of stale events) */ Status = AcpiHwClearGpe (GpeEventInfo); @@ -240,59 +222,7 @@ AcpiEvEnableGpe ( /* Enable the requested GPE */ - Status = AcpiHwWriteGpeEnableReg (GpeEventInfo); - return_ACPI_STATUS (Status); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiEvDisableGpe - * - * PARAMETERS: GpeEventInfo - GPE to disable - * - * RETURN: Status - * - * DESCRIPTION: Hardware-disable a GPE. Always disables the requested GPE, - * regardless of the type or number of references. - * - * Note: The GPE lock should be already acquired when this function is called. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiEvDisableGpe ( - ACPI_GPE_EVENT_INFO *GpeEventInfo) -{ - ACPI_STATUS Status; - - - ACPI_FUNCTION_TRACE (EvDisableGpe); - - - /* - * Note: Always disable the GPE, even if we think that that it is already - * disabled. It is possible that the AML or some other code has enabled - * the GPE behind our back. - */ - - /* Ensure the HW enable masks are current */ - - Status = AcpiEvUpdateGpeEnableMasks (GpeEventInfo); - if (ACPI_FAILURE (Status)) - { - return_ACPI_STATUS (Status); - } - - /* - * Always H/W disable this GPE, even if we don't know the GPE type. - * Simply clear the enable bit for this particular GPE, but do not - * write out the current GPE enable mask since this may inadvertently - * enable GPEs too early. An example is a rogue GPE that has arrived - * during ACPICA initialization - possibly because AML or other code - * has enabled the GPE. - */ - Status = AcpiHwLowDisableGpe (GpeEventInfo); + Status = AcpiHwLowSetGpe (GpeEventInfo, ACPI_GPE_ENABLE); return_ACPI_STATUS (Status); } @@ -578,10 +508,6 @@ AcpiEvAsynchExecuteGpeMethod ( return_VOID; } - /* Update the GPE register masks for return to enabled state */ - - (void) AcpiEvUpdateGpeEnableMasks (GpeEventInfo); - /* * Take a snapshot of the GPE info for this level - we copy the info to * prevent a race condition with RemoveHandler/RemoveBlock. @@ -677,9 +603,11 @@ AcpiEvAsynchEnableGpe ( } } - /* Enable this GPE */ - - (void) AcpiHwWriteGpeEnableReg (GpeEventInfo); + /* + * Enable this GPE, conditionally. This means that the GPE will only be + * physically enabled if the EnableForRun bit is set in the EventInfo + */ + (void) AcpiHwLowSetGpe (GpeEventInfo, ACPI_GPE_CONDITIONAL_ENABLE); Exit: ACPI_FREE (GpeEventInfo); @@ -772,7 +700,7 @@ AcpiEvGpeDispatch ( * Disable the GPE, so it doesn't keep firing before the method has a * chance to run (it runs asynchronously with interrupts enabled). */ - Status = AcpiEvDisableGpe (GpeEventInfo); + Status = AcpiHwLowSetGpe (GpeEventInfo, ACPI_GPE_DISABLE); if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, @@ -806,10 +734,10 @@ AcpiEvGpeDispatch ( GpeNumber)); /* - * Disable the GPE. The GPE will remain disabled a handler + * Disable the GPE. The GPE will remain disabled until a handler * is installed or ACPICA is restarted. */ - Status = AcpiEvDisableGpe (GpeEventInfo); + Status = AcpiHwLowSetGpe (GpeEventInfo, ACPI_GPE_DISABLE); if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, Modified: user/imp/tbemd/sys/contrib/dev/acpica/events/evgpeblk.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/events/evgpeblk.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/events/evgpeblk.c Sun Aug 22 21:55:12 2010 (r211661) @@ -613,6 +613,18 @@ AcpiEvInitializeGpeBlock ( GpeIndex = (i * ACPI_GPE_REGISTER_WIDTH) + j; GpeEventInfo = &GpeBlock->EventInfo[GpeIndex]; + GpeNumber = GpeIndex + GpeBlock->BlockBaseNumber; + + /* + * If the GPE has already been enabled for runtime + * signalling, make sure that it remains enabled, but + * do not increment its reference count. + */ + if (GpeEventInfo->RuntimeCount) + { + Status = AcpiEvEnableGpe (GpeEventInfo); + goto Enabled; + } /* Ignore GPEs that can wake the system */ @@ -634,9 +646,8 @@ AcpiEvInitializeGpeBlock ( /* Enable this GPE */ - GpeNumber = GpeIndex + GpeBlock->BlockBaseNumber; - Status = AcpiEnableGpe (GpeDevice, GpeNumber, - ACPI_GPE_TYPE_RUNTIME); + Status = AcpiEnableGpe (GpeDevice, GpeNumber); +Enabled: if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, Modified: user/imp/tbemd/sys/contrib/dev/acpica/events/evgpeinit.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/events/evgpeinit.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/events/evgpeinit.c Sun Aug 22 21:55:12 2010 (r211661) @@ -575,8 +575,7 @@ AcpiEvMatchGpeMethod ( GpeDevice = NULL; } - Status = AcpiEnableGpe (GpeDevice, GpeNumber, - ACPI_GPE_TYPE_RUNTIME); + Status = AcpiEnableGpe (GpeDevice, GpeNumber); if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, Modified: user/imp/tbemd/sys/contrib/dev/acpica/events/evgpeutil.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/events/evgpeutil.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/events/evgpeutil.c Sun Aug 22 21:55:12 2010 (r211661) @@ -114,7 +114,6 @@ *****************************************************************************/ - #include #include #include Modified: user/imp/tbemd/sys/contrib/dev/acpica/events/evrgnini.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/events/evrgnini.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/events/evrgnini.c Sun Aug 22 21:55:12 2010 (r211661) @@ -294,7 +294,7 @@ AcpiEvPciConfigRegionSetup ( return_ACPI_STATUS (Status); } - ParentNode = AcpiNsGetParentNode (RegionObj->Region.Node); + ParentNode = RegionObj->Region.Node->Parent; /* * Get the _SEG and _BBN values from the device upon which the handler @@ -348,7 +348,7 @@ AcpiEvPciConfigRegionSetup ( break; } - PciRootNode = AcpiNsGetParentNode (PciRootNode); + PciRootNode = PciRootNode->Parent; } /* PCI root bridge not found, use namespace root node */ @@ -385,7 +385,7 @@ AcpiEvPciConfigRegionSetup ( PciDeviceNode = RegionObj->Region.Node; while (PciDeviceNode && (PciDeviceNode->Type != ACPI_TYPE_DEVICE)) { - PciDeviceNode = AcpiNsGetParentNode (PciDeviceNode); + PciDeviceNode = PciDeviceNode->Parent; } if (!PciDeviceNode) @@ -661,7 +661,7 @@ AcpiEvInitializeRegion ( return_ACPI_STATUS (AE_NOT_EXIST); } - Node = AcpiNsGetParentNode (RegionObj->Region.Node); + Node = RegionObj->Region.Node->Parent; SpaceId = RegionObj->Region.SpaceId; /* Setup defaults */ @@ -785,7 +785,7 @@ AcpiEvInitializeRegion ( /* This node does not have the handler we need; Pop up one level */ - Node = AcpiNsGetParentNode (Node); + Node = Node->Parent; } /* If we get here, there is no handler for this region */ Modified: user/imp/tbemd/sys/contrib/dev/acpica/events/evxface.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/events/evxface.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/events/evxface.c Sun Aug 22 21:55:12 2010 (r211661) @@ -747,14 +747,6 @@ AcpiInstallGpeHandler ( Handler->Context = Context; Handler->MethodNode = GpeEventInfo->Dispatch.MethodNode; - /* Disable the GPE before installing the handler */ - - Status = AcpiEvDisableGpe (GpeEventInfo); - if (ACPI_FAILURE (Status)) - { - goto UnlockAndExit; - } - /* Install the handler */ Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock); @@ -845,14 +837,6 @@ AcpiRemoveGpeHandler ( goto UnlockAndExit; } - /* Disable the GPE before removing the handler */ - - Status = AcpiEvDisableGpe (GpeEventInfo); - if (ACPI_FAILURE (Status)) - { - goto UnlockAndExit; - } - /* Remove the handler */ Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock); Modified: user/imp/tbemd/sys/contrib/dev/acpica/events/evxfevnt.c ============================================================================== --- user/imp/tbemd/sys/contrib/dev/acpica/events/evxfevnt.c Sun Aug 22 21:54:40 2010 (r211660) +++ user/imp/tbemd/sys/contrib/dev/acpica/events/evxfevnt.c Sun Aug 22 21:55:12 2010 (r211661) @@ -307,42 +307,107 @@ ACPI_EXPORT_SYMBOL (AcpiEnableEvent) /******************************************************************************* * - * FUNCTION: AcpiEnableGpe + * FUNCTION: AcpiGpeWakeup * * PARAMETERS: GpeDevice - Parent GPE Device. NULL for GPE0/GPE1 * GpeNumber - GPE level within the GPE block - * GpeType - ACPI_GPE_TYPE_RUNTIME or ACPI_GPE_TYPE_WAKE - * or both + * Action - Enable or Disable * * RETURN: Status * - * DESCRIPTION: Add a reference to a GPE. On the first reference, the GPE is - * hardware-enabled (for runtime GPEs), or the GPE register mask - * is updated (for wake GPEs). + * DESCRIPTION: Set or clear the GPE's wakeup enable mask bit. * ******************************************************************************/ ACPI_STATUS -AcpiEnableGpe ( +AcpiGpeWakeup ( ACPI_HANDLE GpeDevice, UINT32 GpeNumber, - UINT8 GpeType) + UINT8 Action) { ACPI_STATUS Status = AE_OK; ACPI_GPE_EVENT_INFO *GpeEventInfo; *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***