diff options
author | Lin Ming <ming.m.lin@intel.com> | 2008-04-10 11:06:42 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2008-04-22 14:29:30 -0400 |
commit | bc7a36ab74e09da7bb63e2477b0740ac992b290e (patch) | |
tree | f9384f3f0909e1da6f12fb55643de8de594551dd /drivers/acpi/executer/exresolv.c | |
parent | a6f4a4511e65942b93ded60d746094ec0e58ed8e (diff) |
ACPICA: Fixes for Unload and DDBHandles
Implemented support for the use of DDBHandles as an Indexed
Reference, as per the ACPI spec.
http://www.acpica.org/bugzilla/show_bug.cgi?id=486.
Implemented support for UserTerm (Method invocation) for the Unload operator
as per the ACPI spec.
http://www.acpica.org/bugzilla/show_bug.cgi?id=580
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/executer/exresolv.c')
-rw-r--r-- | drivers/acpi/executer/exresolv.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/acpi/executer/exresolv.c b/drivers/acpi/executer/exresolv.c index 9c3cdf61dc34..5b5b2ff45ea2 100644 --- a/drivers/acpi/executer/exresolv.c +++ b/drivers/acpi/executer/exresolv.c | |||
@@ -382,10 +382,10 @@ acpi_ex_resolve_multiple(struct acpi_walk_state *walk_state, | |||
382 | } | 382 | } |
383 | 383 | ||
384 | /* | 384 | /* |
385 | * For reference objects created via the ref_of or Index operators, | 385 | * For reference objects created via the ref_of, Index, or Load/load_table |
386 | * we need to get to the base object (as per the ACPI specification | 386 | * operators, we need to get to the base object (as per the ACPI |
387 | * of the object_type and size_of operators). This means traversing | 387 | * specification of the object_type and size_of operators). This means |
388 | * the list of possibly many nested references. | 388 | * traversing the list of possibly many nested references. |
389 | */ | 389 | */ |
390 | while (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_LOCAL_REFERENCE) { | 390 | while (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_LOCAL_REFERENCE) { |
391 | switch (obj_desc->reference.opcode) { | 391 | switch (obj_desc->reference.opcode) { |
@@ -455,6 +455,11 @@ acpi_ex_resolve_multiple(struct acpi_walk_state *walk_state, | |||
455 | } | 455 | } |
456 | break; | 456 | break; |
457 | 457 | ||
458 | case AML_LOAD_OP: | ||
459 | |||
460 | type = ACPI_TYPE_DDB_HANDLE; | ||
461 | goto exit; | ||
462 | |||
458 | case AML_LOCAL_OP: | 463 | case AML_LOCAL_OP: |
459 | case AML_ARG_OP: | 464 | case AML_ARG_OP: |
460 | 465 | ||