summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/nsinit.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/acpica/nsinit.c')
-rw-r--r--sys/contrib/dev/acpica/nsinit.c44
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);
}
OpenPOWER on IntegriCloud