diff options
Diffstat (limited to 'drivers/acpi/acpica/rsirq.c')
-rw-r--r-- | drivers/acpi/acpica/rsirq.c | 40 |
1 files changed, 25 insertions, 15 deletions
diff --git a/drivers/acpi/acpica/rsirq.c b/drivers/acpi/acpica/rsirq.c index e23a9ec248cb..364decc1028a 100644 --- a/drivers/acpi/acpica/rsirq.c +++ b/drivers/acpi/acpica/rsirq.c | |||
@@ -5,7 +5,7 @@ | |||
5 | ******************************************************************************/ | 5 | ******************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2012, Intel Corp. | 8 | * Copyright (C) 2000 - 2013, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
@@ -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[4] */ | 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), |
@@ -92,7 +92,11 @@ struct acpi_rsconvert_info acpi_rs_get_irq[8] = { | |||
92 | 92 | ||
93 | {ACPI_RSC_1BITFLAG, 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 the flags byte */ | 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), |
@@ -128,6 +132,10 @@ struct acpi_rsconvert_info acpi_rs_set_irq[13] = { | |||
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)}, |
@@ -190,8 +198,10 @@ struct acpi_rsconvert_info acpi_rs_convert_ext_irq[9] = { | |||
190 | sizeof(struct aml_resource_extended_irq), | 198 | sizeof(struct aml_resource_extended_irq), |
191 | 0}, | 199 | 0}, |
192 | 200 | ||
193 | /* Flag bits */ | 201 | /* |
194 | 202 | * Flags: Producer/Consumer[0], Triggering[1], Polarity[2], | |
203 | * Sharing[3], Wake[4] | ||
204 | */ | ||
195 | {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.extended_irq.producer_consumer), | 205 | {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.extended_irq.producer_consumer), |
196 | AML_OFFSET(extended_irq.flags), | 206 | AML_OFFSET(extended_irq.flags), |
197 | 0}, | 207 | 0}, |
@@ -208,19 +218,21 @@ struct acpi_rsconvert_info acpi_rs_convert_ext_irq[9] = { | |||
208 | AML_OFFSET(extended_irq.flags), | 218 | AML_OFFSET(extended_irq.flags), |
209 | 3}, | 219 | 3}, |
210 | 220 | ||
221 | {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.extended_irq.wake_capable), | ||
222 | AML_OFFSET(extended_irq.flags), | ||
223 | 4}, | ||
224 | |||
211 | /* IRQ Table length (Byte4) */ | 225 | /* IRQ Table length (Byte4) */ |
212 | 226 | ||
213 | {ACPI_RSC_COUNT, ACPI_RS_OFFSET(data.extended_irq.interrupt_count), | 227 | {ACPI_RSC_COUNT, ACPI_RS_OFFSET(data.extended_irq.interrupt_count), |
214 | AML_OFFSET(extended_irq.interrupt_count), | 228 | AML_OFFSET(extended_irq.interrupt_count), |
215 | sizeof(u32)} | 229 | sizeof(u32)}, |
216 | , | ||
217 | 230 | ||
218 | /* Copy every IRQ in the table, each is 32 bits */ | 231 | /* Copy every IRQ in the table, each is 32 bits */ |
219 | 232 | ||
220 | {ACPI_RSC_MOVE32, ACPI_RS_OFFSET(data.extended_irq.interrupts[0]), | 233 | {ACPI_RSC_MOVE32, ACPI_RS_OFFSET(data.extended_irq.interrupts[0]), |
221 | AML_OFFSET(extended_irq.interrupts[0]), | 234 | AML_OFFSET(extended_irq.interrupts[0]), |
222 | 0} | 235 | 0}, |
223 | , | ||
224 | 236 | ||
225 | /* Optional resource_source (Index and String) */ | 237 | /* Optional resource_source (Index and String) */ |
226 | 238 | ||
@@ -285,7 +297,6 @@ struct acpi_rsconvert_info acpi_rs_convert_fixed_dma[4] = { | |||
285 | * request_lines | 297 | * request_lines |
286 | * Channels | 298 | * Channels |
287 | */ | 299 | */ |
288 | |||
289 | {ACPI_RSC_MOVE16, ACPI_RS_OFFSET(data.fixed_dma.request_lines), | 300 | {ACPI_RSC_MOVE16, ACPI_RS_OFFSET(data.fixed_dma.request_lines), |
290 | AML_OFFSET(fixed_dma.request_lines), | 301 | AML_OFFSET(fixed_dma.request_lines), |
291 | 2}, | 302 | 2}, |
@@ -293,5 +304,4 @@ struct acpi_rsconvert_info acpi_rs_convert_fixed_dma[4] = { | |||
293 | {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.fixed_dma.width), | 304 | {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.fixed_dma.width), |
294 | AML_OFFSET(fixed_dma.width), | 305 | AML_OFFSET(fixed_dma.width), |
295 | 1}, | 306 | 1}, |
296 | |||
297 | }; | 307 | }; |