Message ID | 1411005230-2227-4-git-send-email-rui.zhang@intel.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On Thursday, September 18, 2014 09:53:34 AM Zhang Rui wrote: > Add ACPI_TYPE_LOCAL_REFERENCE support to acpi_extract_package(), > so that we can use this helper for more cases like _ART/_TRT. > > Signed-off-by: Zhang Rui <rui.zhang@intel.com> ACK > --- > drivers/acpi/utils.c | 28 +++++++++++++++++++++++++++- > 1 file changed, 27 insertions(+), 1 deletion(-) > > diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c > index 07c8c5a..1ed7aba 100644 > --- a/drivers/acpi/utils.c > +++ b/drivers/acpi/utils.c > @@ -149,6 +149,21 @@ acpi_extract_package(union acpi_object *package, > break; > } > break; > + case ACPI_TYPE_LOCAL_REFERENCE: > + switch (format_string[i]) { > + case 'R': > + size_required += sizeof(void *); > + tail_offset += sizeof(void *); > + break; > + default: > + printk(KERN_WARNING PREFIX "Invalid package element" > + " [%d] got reference," > + " expecting [%c]\n", > + i, format_string[i]); > + return AE_BAD_DATA; > + break; > + } > + break; > > case ACPI_TYPE_PACKAGE: > default: > @@ -247,7 +262,18 @@ acpi_extract_package(union acpi_object *package, > break; > } > break; > - > + case ACPI_TYPE_LOCAL_REFERENCE: > + switch (format_string[i]) { > + case 'R': > + *(void **)head = > + (void *)element->reference.handle; > + head += sizeof(void *); > + break; > + default: > + /* Should never get here */ > + break; > + } > + break; > case ACPI_TYPE_PACKAGE: > /* TBD: handle nested packages... */ > default: >
diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c index 07c8c5a..1ed7aba 100644 --- a/drivers/acpi/utils.c +++ b/drivers/acpi/utils.c @@ -149,6 +149,21 @@ acpi_extract_package(union acpi_object *package, break; } break; + case ACPI_TYPE_LOCAL_REFERENCE: + switch (format_string[i]) { + case 'R': + size_required += sizeof(void *); + tail_offset += sizeof(void *); + break; + default: + printk(KERN_WARNING PREFIX "Invalid package element" + " [%d] got reference," + " expecting [%c]\n", + i, format_string[i]); + return AE_BAD_DATA; + break; + } + break; case ACPI_TYPE_PACKAGE: default: @@ -247,7 +262,18 @@ acpi_extract_package(union acpi_object *package, break; } break; - + case ACPI_TYPE_LOCAL_REFERENCE: + switch (format_string[i]) { + case 'R': + *(void **)head = + (void *)element->reference.handle; + head += sizeof(void *); + break; + default: + /* Should never get here */ + break; + } + break; case ACPI_TYPE_PACKAGE: /* TBD: handle nested packages... */ default:
Add ACPI_TYPE_LOCAL_REFERENCE support to acpi_extract_package(), so that we can use this helper for more cases like _ART/_TRT. Signed-off-by: Zhang Rui <rui.zhang@intel.com> --- drivers/acpi/utils.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-)