diff options
Diffstat (limited to 'drivers/acpi/acpica/rsirq.c')
-rw-r--r-- | drivers/acpi/acpica/rsirq.c | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/drivers/acpi/acpica/rsirq.c b/drivers/acpi/acpica/rsirq.c index f3733ee0cac8..9c1d74a8a678 100644 --- a/drivers/acpi/acpica/rsirq.c +++ b/drivers/acpi/acpica/rsirq.c | |||
@@ -53,7 +53,7 @@ ACPI_MODULE_NAME("rsirq") | |||
53 | * acpi_rs_get_irq | 53 | * acpi_rs_get_irq |
54 | * | 54 | * |
55 | ******************************************************************************/ | 55 | ******************************************************************************/ |
56 | struct acpi_rsconvert_info acpi_rs_get_irq[8] = { | 56 | struct acpi_rsconvert_info acpi_rs_get_irq[9] = { |
57 | {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_IRQ, | 57 | {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_IRQ, |
58 | ACPI_RS_SIZE(struct acpi_resource_irq), | 58 | ACPI_RS_SIZE(struct acpi_resource_irq), |
59 | ACPI_RSC_TABLE_SIZE(acpi_rs_get_irq)}, | 59 | ACPI_RSC_TABLE_SIZE(acpi_rs_get_irq)}, |
@@ -80,7 +80,7 @@ struct acpi_rsconvert_info acpi_rs_get_irq[8] = { | |||
80 | 80 | ||
81 | {ACPI_RSC_EXIT_NE, ACPI_RSC_COMPARE_AML_LENGTH, 0, 3}, | 81 | {ACPI_RSC_EXIT_NE, ACPI_RSC_COMPARE_AML_LENGTH, 0, 3}, |
82 | 82 | ||
83 | /* Get flags: Triggering[0], Polarity[3], sharing_and_wake[4:5] */ | 83 | /* Get flags: Triggering[0], Polarity[3], Sharing[4], Wake[5] */ |
84 | 84 | ||
85 | {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.irq.triggering), | 85 | {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.irq.triggering), |
86 | AML_OFFSET(irq.flags), | 86 | AML_OFFSET(irq.flags), |
@@ -90,9 +90,13 @@ struct acpi_rsconvert_info acpi_rs_get_irq[8] = { | |||
90 | AML_OFFSET(irq.flags), | 90 | AML_OFFSET(irq.flags), |
91 | 3}, | 91 | 3}, |
92 | 92 | ||
93 | {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET(data.irq.sharable), | 93 | {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.irq.sharable), |
94 | AML_OFFSET(irq.flags), | 94 | AML_OFFSET(irq.flags), |
95 | 4} | 95 | 4}, |
96 | |||
97 | {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.irq.wake_capable), | ||
98 | AML_OFFSET(irq.flags), | ||
99 | 5} | ||
96 | }; | 100 | }; |
97 | 101 | ||
98 | /******************************************************************************* | 102 | /******************************************************************************* |
@@ -101,7 +105,7 @@ struct acpi_rsconvert_info acpi_rs_get_irq[8] = { | |||
101 | * | 105 | * |
102 | ******************************************************************************/ | 106 | ******************************************************************************/ |
103 | 107 | ||
104 | struct acpi_rsconvert_info acpi_rs_set_irq[13] = { | 108 | struct acpi_rsconvert_info acpi_rs_set_irq[14] = { |
105 | /* Start with a default descriptor of length 3 */ | 109 | /* Start with a default descriptor of length 3 */ |
106 | 110 | ||
107 | {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_IRQ, | 111 | {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_IRQ, |
@@ -114,7 +118,7 @@ struct acpi_rsconvert_info acpi_rs_set_irq[13] = { | |||
114 | AML_OFFSET(irq.irq_mask), | 118 | AML_OFFSET(irq.irq_mask), |
115 | ACPI_RS_OFFSET(data.irq.interrupt_count)}, | 119 | ACPI_RS_OFFSET(data.irq.interrupt_count)}, |
116 | 120 | ||
117 | /* Set flags: Triggering[0], Polarity[3], sharing_and_wake[4:5] */ | 121 | /* Set flags: Triggering[0], Polarity[3], Sharing[4], Wake[5] */ |
118 | 122 | ||
119 | {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.irq.triggering), | 123 | {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.irq.triggering), |
120 | AML_OFFSET(irq.flags), | 124 | AML_OFFSET(irq.flags), |
@@ -124,10 +128,14 @@ struct acpi_rsconvert_info acpi_rs_set_irq[13] = { | |||
124 | AML_OFFSET(irq.flags), | 128 | AML_OFFSET(irq.flags), |
125 | 3}, | 129 | 3}, |
126 | 130 | ||
127 | {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET(data.irq.sharable), | 131 | {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.irq.sharable), |
128 | AML_OFFSET(irq.flags), | 132 | AML_OFFSET(irq.flags), |
129 | 4}, | 133 | 4}, |
130 | 134 | ||
135 | {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.irq.wake_capable), | ||
136 | AML_OFFSET(irq.flags), | ||
137 | 5}, | ||
138 | |||
131 | /* | 139 | /* |
132 | * All done if the output descriptor length is required to be 3 | 140 | * All done if the output descriptor length is required to be 3 |
133 | * (i.e., optimization to 2 bytes cannot be attempted) | 141 | * (i.e., optimization to 2 bytes cannot be attempted) |
@@ -181,7 +189,7 @@ struct acpi_rsconvert_info acpi_rs_set_irq[13] = { | |||
181 | * | 189 | * |
182 | ******************************************************************************/ | 190 | ******************************************************************************/ |
183 | 191 | ||
184 | struct acpi_rsconvert_info acpi_rs_convert_ext_irq[9] = { | 192 | struct acpi_rsconvert_info acpi_rs_convert_ext_irq[10] = { |
185 | {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_EXTENDED_IRQ, | 193 | {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_EXTENDED_IRQ, |
186 | ACPI_RS_SIZE(struct acpi_resource_extended_irq), | 194 | ACPI_RS_SIZE(struct acpi_resource_extended_irq), |
187 | ACPI_RSC_TABLE_SIZE(acpi_rs_convert_ext_irq)}, | 195 | ACPI_RSC_TABLE_SIZE(acpi_rs_convert_ext_irq)}, |
@@ -192,7 +200,7 @@ struct acpi_rsconvert_info acpi_rs_convert_ext_irq[9] = { | |||
192 | 200 | ||
193 | /* | 201 | /* |
194 | * Flags: Producer/Consumer[0], Triggering[1], Polarity[2], | 202 | * Flags: Producer/Consumer[0], Triggering[1], Polarity[2], |
195 | * sharing_and_wake[3:4] | 203 | * Sharing[3], Wake[4] |
196 | */ | 204 | */ |
197 | {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.extended_irq.producer_consumer), | 205 | {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.extended_irq.producer_consumer), |
198 | AML_OFFSET(extended_irq.flags), | 206 | AML_OFFSET(extended_irq.flags), |
@@ -206,10 +214,14 @@ struct acpi_rsconvert_info acpi_rs_convert_ext_irq[9] = { | |||
206 | AML_OFFSET(extended_irq.flags), | 214 | AML_OFFSET(extended_irq.flags), |
207 | 2}, | 215 | 2}, |
208 | 216 | ||
209 | {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET(data.extended_irq.sharable), | 217 | {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.extended_irq.sharable), |
210 | AML_OFFSET(extended_irq.flags), | 218 | AML_OFFSET(extended_irq.flags), |
211 | 3}, | 219 | 3}, |
212 | 220 | ||
221 | {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.extended_irq.wake_capable), | ||
222 | AML_OFFSET(extended_irq.flags), | ||
223 | 4}, | ||
224 | |||
213 | /* IRQ Table length (Byte4) */ | 225 | /* IRQ Table length (Byte4) */ |
214 | 226 | ||
215 | {ACPI_RSC_COUNT, ACPI_RS_OFFSET(data.extended_irq.interrupt_count), | 227 | {ACPI_RSC_COUNT, ACPI_RS_OFFSET(data.extended_irq.interrupt_count), |