summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/resources/rscalc.c11
-rw-r--r--drivers/acpi/resources/rsio.c2
2 files changed, 12 insertions, 1 deletions
diff --git a/drivers/acpi/resources/rscalc.c b/drivers/acpi/resources/rscalc.c
index db0a835e331..d801823de01 100644
--- a/drivers/acpi/resources/rscalc.c
+++ b/drivers/acpi/resources/rscalc.c
@@ -213,11 +213,22 @@ acpi_rs_get_aml_length(struct acpi_resource * resource, acpi_size * size_needed)
switch (resource->type) {
case ACPI_RESOURCE_TYPE_IRQ:
+ /* Length can be 3 or 2 */
+
if (resource->data.irq.descriptor_length == 2) {
total_size--;
}
break;
+ case ACPI_RESOURCE_TYPE_START_DEPENDENT:
+
+ /* Length can be 1 or 0 */
+
+ if (resource->data.irq.descriptor_length == 0) {
+ total_size--;
+ }
+ break;
+
case ACPI_RESOURCE_TYPE_VENDOR:
/*
* Vendor Defined Resource:
diff --git a/drivers/acpi/resources/rsio.c b/drivers/acpi/resources/rsio.c
index 50f3acdd9c8..610d7c2101f 100644
--- a/drivers/acpi/resources/rsio.c
+++ b/drivers/acpi/resources/rsio.c
@@ -268,7 +268,7 @@ struct acpi_rsconvert_info acpi_rs_set_start_dpf[10] = {
/* Reset length to 1 byte (descriptor with flags byte) */
- {ACPI_RSC_LENGTH, 0, 0, sizeof(struct aml_resource_irq)},
+ {ACPI_RSC_LENGTH, 0, 0, sizeof(struct aml_resource_start_dependent)},
/*
* All done if flags byte is necessary -- if either priority value