diff options
Diffstat (limited to 'sys/contrib/dev/acpica/nsinit.c')
-rw-r--r-- | sys/contrib/dev/acpica/nsinit.c | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/sys/contrib/dev/acpica/nsinit.c b/sys/contrib/dev/acpica/nsinit.c index a4a0ac8..c370af8 100644 --- a/sys/contrib/dev/acpica/nsinit.c +++ b/sys/contrib/dev/acpica/nsinit.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: nsinit - namespace initialization - * $Revision: 58 $ + * $Revision: 60 $ * *****************************************************************************/ @@ -226,7 +226,7 @@ AcpiNsInitializeDevices ( return_ACPI_STATUS (Status); } - /* Walk namespace for all objects of type Device or Processor */ + /* Walk namespace for all objects */ Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX, TRUE, AcpiNsInitOneDevice, &Info, NULL); @@ -422,26 +422,30 @@ AcpiNsInitOneDevice ( void *Context, void **ReturnValue) { - ACPI_STATUS Status; - ACPI_NAMESPACE_NODE *Node; - UINT32 Flags; ACPI_DEVICE_WALK_INFO *Info = (ACPI_DEVICE_WALK_INFO *) Context; + ACPI_PARAMETER_INFO Pinfo; + UINT32 Flags; + ACPI_STATUS Status; ACPI_FUNCTION_TRACE ("NsInitOneDevice"); - Node = AcpiNsMapHandleToNode (ObjHandle); - if (!Node) + Pinfo.Parameters = NULL; + Pinfo.ParameterType = ACPI_PARAM_ARGS; + + Pinfo.Node = AcpiNsMapHandleToNode (ObjHandle); + if (!Pinfo.Node) { return_ACPI_STATUS (AE_BAD_PARAMETER); } /* - * We will run _STA/_INI on Devices and Processors only + * We will run _STA/_INI on Devices, Processors and ThermalZones only */ - if ((Node->Type != ACPI_TYPE_DEVICE) && - (Node->Type != ACPI_TYPE_PROCESSOR)) + if ((Pinfo.Node->Type != ACPI_TYPE_DEVICE) && + (Pinfo.Node->Type != ACPI_TYPE_PROCESSOR) && + (Pinfo.Node->Type != ACPI_TYPE_THERMAL)) { return_ACPI_STATUS (AE_OK); } @@ -456,19 +460,19 @@ AcpiNsInitOneDevice ( /* * Run _STA to determine if we can run _INI on the device. */ - ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (ACPI_TYPE_METHOD, Node, "_STA")); - Status = AcpiUtExecute_STA (Node, &Flags); + ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (ACPI_TYPE_METHOD, Pinfo.Node, "_STA")); + Status = AcpiUtExecute_STA (Pinfo.Node, &Flags); if (ACPI_FAILURE (Status)) { - if (Node->Type == ACPI_TYPE_DEVICE) + if (Pinfo.Node->Type == ACPI_TYPE_DEVICE) { /* Ignore error and move on to next device */ return_ACPI_STATUS (AE_OK); } - /* _STA is not required for Processor objects */ + /* _STA is not required for Processor or ThermalZone objects */ } else { @@ -485,8 +489,8 @@ AcpiNsInitOneDevice ( /* * The device is present. Run _INI. */ - ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (ACPI_TYPE_METHOD, ObjHandle, "_INI")); - Status = AcpiNsEvaluateRelative (ObjHandle, "_INI", NULL, NULL); + ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (ACPI_TYPE_METHOD, Pinfo.Node, "_INI")); + Status = AcpiNsEvaluateRelative ("_INI", &Pinfo); if (ACPI_FAILURE (Status)) { /* No _INI (AE_NOT_FOUND) means device requires no initialization */ @@ -495,14 +499,14 @@ AcpiNsInitOneDevice ( { /* Ignore error and move on to next device */ - #ifdef ACPI_DEBUG_OUTPUT - char *ScopeName = AcpiNsGetExternalPathname (ObjHandle); +#ifdef ACPI_DEBUG_OUTPUT + char *ScopeName = AcpiNsGetExternalPathname (Pinfo.Node); ACPI_DEBUG_PRINT ((ACPI_DB_WARN, "%s._INI failed: %s\n", ScopeName, AcpiFormatException (Status))); ACPI_MEM_FREE (ScopeName); - #endif +#endif } Status = AE_OK; @@ -518,7 +522,7 @@ AcpiNsInitOneDevice ( { /* External initialization handler is present, call it */ - Status = AcpiGbl_InitHandler (ObjHandle, ACPI_INIT_DEVICE_INI); + Status = AcpiGbl_InitHandler (Pinfo.Node, ACPI_INIT_DEVICE_INI); } |