diff options
Diffstat (limited to 'namespace/nsinit.c')
-rw-r--r-- | namespace/nsinit.c | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/namespace/nsinit.c b/namespace/nsinit.c index 7e8a0b1928e2..c4cd6a62edb4 100644 --- a/namespace/nsinit.c +++ b/namespace/nsinit.c @@ -1,7 +1,6 @@ /****************************************************************************** * * Module Name: nsinit - namespace initialization - * $Revision: 1.86 $ * *****************************************************************************/ @@ -9,7 +8,7 @@ * * 1. Copyright Notice * - * Some or all of this work - Copyright (c) 1999 - 2007, Intel Corp. + * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp. * All rights reserved. * * 2. License @@ -118,6 +117,7 @@ #define __NSXFINIT_C__ #include "acpi.h" +#include "accommon.h" #include "acnamesp.h" #include "acdispat.h" #include "acinterp.h" @@ -193,7 +193,8 @@ AcpiNsInitializeObjects ( } ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, - "\nInitialized %hd/%hd Regions %hd/%hd Fields %hd/%hd Buffers %hd/%hd Packages (%hd nodes)\n", + "\nInitialized %hd/%hd Regions %hd/%hd Fields %hd/%hd " + "Buffers %hd/%hd Packages (%hd nodes)\n", Info.OpRegionInit, Info.OpRegionCount, Info.FieldInit, Info.FieldCount, Info.BufferInit, Info.BufferCount, @@ -242,7 +243,8 @@ AcpiNsInitializeDevices ( Info.Num_INI = 0; ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, - "Initializing Device/Processor/Thermal objects by executing _INI methods:")); + "Initializing Device/Processor/Thermal objects " + "by executing _INI methods:")); /* Tree analysis: find all subtrees that contain _INI methods */ @@ -274,7 +276,8 @@ AcpiNsInitializeDevices ( } ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, - "\nExecuted %hd _INI methods requiring %hd _STA executions (examined %hd objects)\n", + "\nExecuted %hd _INI methods requiring %hd _STA executions " + "(examined %hd objects)\n", Info.Num_INI, Info.Num_STA, Info.DeviceCount)); return_ACPI_STATUS (Status); @@ -346,6 +349,10 @@ AcpiNsInitOneObject ( Info->FieldCount++; break; + case ACPI_TYPE_LOCAL_BANK_FIELD: + Info->FieldCount++; + break; + case ACPI_TYPE_BUFFER: Info->BufferCount++; break; @@ -360,17 +367,15 @@ AcpiNsInitOneObject ( return (AE_OK); } - /* - * If the object is already initialized, nothing else to do - */ + /* If the object is already initialized, nothing else to do */ + if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID) { return (AE_OK); } - /* - * Must lock the interpreter before executing AML code - */ + /* Must lock the interpreter before executing AML code */ + AcpiExEnterInterpreter (); /* @@ -391,6 +396,12 @@ AcpiNsInitOneObject ( Status = AcpiDsGetBufferFieldArguments (ObjDesc); break; + case ACPI_TYPE_LOCAL_BANK_FIELD: + + Info->FieldInit++; + Status = AcpiDsGetBankFieldArguments (ObjDesc); + break; + case ACPI_TYPE_BUFFER: Info->BufferInit++; @@ -656,7 +667,6 @@ AcpiNsInitOneDevice ( Info->PrefixNode = DeviceNode; Info->Pathname = METHOD_NAME__INI; Info->Parameters = NULL; - Info->ParameterType = ACPI_PARAM_ARGS; Info->Flags = ACPI_IGNORE_RETURN_VALUE; Status = AcpiNsEvaluate (Info); |