summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/exresnte.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/acpica/exresnte.c')
-rw-r--r--sys/contrib/dev/acpica/exresnte.c27
1 files changed, 22 insertions, 5 deletions
diff --git a/sys/contrib/dev/acpica/exresnte.c b/sys/contrib/dev/acpica/exresnte.c
index 5e450dd..2267ef4 100644
--- a/sys/contrib/dev/acpica/exresnte.c
+++ b/sys/contrib/dev/acpica/exresnte.c
@@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: exresnte - AML Interpreter object resolution
- * $Revision: 62 $
+ * $Revision: 63 $
*
*****************************************************************************/
@@ -121,6 +121,8 @@
#include "acdispat.h"
#include "acinterp.h"
#include "acnamesp.h"
+#include "acparser.h"
+#include "amlcode.h"
#define _COMPONENT ACPI_EXECUTER
@@ -327,12 +329,27 @@ AcpiExResolveNodeToValue (
case ACPI_TYPE_LOCAL_REFERENCE:
- /* No named references are allowed here */
+ switch (SourceDesc->Reference.Opcode)
+ {
+ case AML_LOAD_OP:
- ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unsupported Reference opcode %X\n",
- SourceDesc->Reference.Opcode));
+ /* This is a DdbHandle */
+ /* Return an additional reference to the object */
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
+ ObjDesc = SourceDesc;
+ AcpiUtAddReference (ObjDesc);
+ break;
+
+ default:
+ /* No named references are allowed here */
+
+ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unsupported Reference opcode %X (%s)\n",
+ SourceDesc->Reference.Opcode,
+ AcpiPsGetOpcodeName (SourceDesc->Reference.Opcode)));
+
+ return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
+ }
+ break;
/* Default case is for unknown types */
OpenPOWER on IntegriCloud