|
@@ -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:
|