diff options
Diffstat (limited to 'include/acpi')
-rw-r--r-- | include/acpi/acconfig.h | 4 | ||||
-rw-r--r-- | include/acpi/acdisasm.h | 36 | ||||
-rw-r--r-- | include/acpi/aclocal.h | 23 | ||||
-rw-r--r-- | include/acpi/acresrc.h | 46 | ||||
-rw-r--r-- | include/acpi/actypes.h | 13 | ||||
-rw-r--r-- | include/acpi/amlresrc.h | 56 | ||||
-rw-r--r-- | include/acpi/platform/acenv.h | 1 |
7 files changed, 104 insertions, 75 deletions
diff --git a/include/acpi/acconfig.h b/include/acpi/acconfig.h index 427cff1a3f83..1427c5cf4304 100644 --- a/include/acpi/acconfig.h +++ b/include/acpi/acconfig.h | |||
@@ -61,9 +61,9 @@ | |||
61 | * | 61 | * |
62 | */ | 62 | */ |
63 | 63 | ||
64 | /* Version string */ | 64 | /* Current ACPICA subsystem version in YYYYMMDD format */ |
65 | 65 | ||
66 | #define ACPI_CA_VERSION 0x20050902 | 66 | #define ACPI_CA_VERSION 0x20050916 |
67 | 67 | ||
68 | /* | 68 | /* |
69 | * OS name, used for the _OS object. The _OS object is essentially obsolete, | 69 | * OS name, used for the _OS object. The _OS object is essentially obsolete, |
diff --git a/include/acpi/acdisasm.h b/include/acpi/acdisasm.h index 3d96dcb1bb4b..759b4cff4f88 100644 --- a/include/acpi/acdisasm.h +++ b/include/acpi/acdisasm.h | |||
@@ -187,73 +187,73 @@ void acpi_dm_decode_attribute(u8 attribute); | |||
187 | * dmresrcl | 187 | * dmresrcl |
188 | */ | 188 | */ |
189 | void | 189 | void |
190 | acpi_dm_word_descriptor(struct asl_word_address_desc *resource, | 190 | acpi_dm_word_descriptor(union asl_resource_desc *resource, |
191 | u32 length, u32 level); | 191 | u32 length, u32 level); |
192 | 192 | ||
193 | void | 193 | void |
194 | acpi_dm_dword_descriptor(struct asl_dword_address_desc *resource, | 194 | acpi_dm_dword_descriptor(union asl_resource_desc *resource, |
195 | u32 length, u32 level); | 195 | u32 length, u32 level); |
196 | 196 | ||
197 | void | 197 | void |
198 | acpi_dm_extended_descriptor(struct asl_extended_address_desc *resource, | 198 | acpi_dm_extended_descriptor(union asl_resource_desc *resource, |
199 | u32 length, u32 level); | 199 | u32 length, u32 level); |
200 | 200 | ||
201 | void | 201 | void |
202 | acpi_dm_qword_descriptor(struct asl_qword_address_desc *resource, | 202 | acpi_dm_qword_descriptor(union asl_resource_desc *resource, |
203 | u32 length, u32 level); | 203 | u32 length, u32 level); |
204 | 204 | ||
205 | void | 205 | void |
206 | acpi_dm_memory24_descriptor(struct asl_memory_24_desc *resource, | 206 | acpi_dm_memory24_descriptor(union asl_resource_desc *resource, |
207 | u32 length, u32 level); | 207 | u32 length, u32 level); |
208 | 208 | ||
209 | void | 209 | void |
210 | acpi_dm_memory32_descriptor(struct asl_memory_32_desc *resource, | 210 | acpi_dm_memory32_descriptor(union asl_resource_desc *resource, |
211 | u32 length, u32 level); | 211 | u32 length, u32 level); |
212 | 212 | ||
213 | void | 213 | void |
214 | acpi_dm_fixed_mem32_descriptor(struct asl_fixed_memory_32_desc *resource, | 214 | acpi_dm_fixed_memory32_descriptor(union asl_resource_desc *resource, |
215 | u32 length, u32 level); | 215 | u32 length, u32 level); |
216 | 216 | ||
217 | void | 217 | void |
218 | acpi_dm_generic_register_descriptor(struct asl_general_register_desc *resource, | 218 | acpi_dm_generic_register_descriptor(union asl_resource_desc *resource, |
219 | u32 length, u32 level); | 219 | u32 length, u32 level); |
220 | 220 | ||
221 | void | 221 | void |
222 | acpi_dm_interrupt_descriptor(struct asl_extended_xrupt_desc *resource, | 222 | acpi_dm_interrupt_descriptor(union asl_resource_desc *resource, |
223 | u32 length, u32 level); | 223 | u32 length, u32 level); |
224 | 224 | ||
225 | void | 225 | void |
226 | acpi_dm_vendor_large_descriptor(struct asl_large_vendor_desc *resource, | 226 | acpi_dm_vendor_large_descriptor(union asl_resource_desc *resource, |
227 | u32 length, u32 level); | 227 | u32 length, u32 level); |
228 | 228 | ||
229 | /* | 229 | /* |
230 | * dmresrcs | 230 | * dmresrcs |
231 | */ | 231 | */ |
232 | void | 232 | void |
233 | acpi_dm_irq_descriptor(struct asl_irq_format_desc *resource, | 233 | acpi_dm_irq_descriptor(union asl_resource_desc *resource, |
234 | u32 length, u32 level); | 234 | u32 length, u32 level); |
235 | 235 | ||
236 | void | 236 | void |
237 | acpi_dm_dma_descriptor(struct asl_dma_format_desc *resource, | 237 | acpi_dm_dma_descriptor(union asl_resource_desc *resource, |
238 | u32 length, u32 level); | 238 | u32 length, u32 level); |
239 | 239 | ||
240 | void | 240 | void |
241 | acpi_dm_io_descriptor(struct asl_io_port_desc *resource, u32 length, u32 level); | 241 | acpi_dm_io_descriptor(union asl_resource_desc *resource, u32 length, u32 level); |
242 | 242 | ||
243 | void | 243 | void |
244 | acpi_dm_fixed_io_descriptor(struct asl_fixed_io_port_desc *resource, | 244 | acpi_dm_fixed_io_descriptor(union asl_resource_desc *resource, |
245 | u32 length, u32 level); | 245 | u32 length, u32 level); |
246 | 246 | ||
247 | void | 247 | void |
248 | acpi_dm_start_dependent_descriptor(struct asl_start_dependent_desc *resource, | 248 | acpi_dm_start_dependent_descriptor(union asl_resource_desc *resource, |
249 | u32 length, u32 level); | 249 | u32 length, u32 level); |
250 | 250 | ||
251 | void | 251 | void |
252 | acpi_dm_end_dependent_descriptor(struct asl_start_dependent_desc *resource, | 252 | acpi_dm_end_dependent_descriptor(union asl_resource_desc *resource, |
253 | u32 length, u32 level); | 253 | u32 length, u32 level); |
254 | 254 | ||
255 | void | 255 | void |
256 | acpi_dm_vendor_small_descriptor(struct asl_small_vendor_desc *resource, | 256 | acpi_dm_vendor_small_descriptor(union asl_resource_desc *resource, |
257 | u32 length, u32 level); | 257 | u32 length, u32 level); |
258 | 258 | ||
259 | /* | 259 | /* |
diff --git a/include/acpi/aclocal.h b/include/acpi/aclocal.h index 9fba0fddda90..76ac1533c405 100644 --- a/include/acpi/aclocal.h +++ b/include/acpi/aclocal.h | |||
@@ -744,12 +744,13 @@ struct acpi_bit_register_info { | |||
744 | #define ACPI_RDESC_TYPE_LARGE 0x80 | 744 | #define ACPI_RDESC_TYPE_LARGE 0x80 |
745 | #define ACPI_RDESC_TYPE_SMALL 0x00 | 745 | #define ACPI_RDESC_TYPE_SMALL 0x00 |
746 | 746 | ||
747 | #define ACPI_RDESC_TYPE_MASK 0x80 | 747 | #define ACPI_RDESC_SMALL_MASK 0x78 /* Bits 6:3 contain the type */ |
748 | #define ACPI_RDESC_SMALL_MASK 0x78 /* Only bits 6:3 contain the type */ | 748 | #define ACPI_RDESC_SMALL_LENGTH_MASK 0x07 /* Bits 2:0 contain the length */ |
749 | #define ACPI_RDESC_LARGE_MASK 0x7F /* Bits 6:0 contain the type */ | ||
749 | 750 | ||
750 | /* | 751 | /* |
751 | * Small resource descriptor types | 752 | * Small resource descriptor types |
752 | * Note: The 3 length bits (2:0) must be zero | 753 | * Note: Bits 2:0 are used for the descriptor length |
753 | */ | 754 | */ |
754 | #define ACPI_RDESC_TYPE_IRQ_FORMAT 0x20 | 755 | #define ACPI_RDESC_TYPE_IRQ_FORMAT 0x20 |
755 | #define ACPI_RDESC_TYPE_DMA_FORMAT 0x28 | 756 | #define ACPI_RDESC_TYPE_DMA_FORMAT 0x28 |
@@ -757,6 +758,10 @@ struct acpi_bit_register_info { | |||
757 | #define ACPI_RDESC_TYPE_END_DEPENDENT 0x38 | 758 | #define ACPI_RDESC_TYPE_END_DEPENDENT 0x38 |
758 | #define ACPI_RDESC_TYPE_IO_PORT 0x40 | 759 | #define ACPI_RDESC_TYPE_IO_PORT 0x40 |
759 | #define ACPI_RDESC_TYPE_FIXED_IO_PORT 0x48 | 760 | #define ACPI_RDESC_TYPE_FIXED_IO_PORT 0x48 |
761 | #define ACPI_RDESC_TYPE_RESERVED_S1 0x50 | ||
762 | #define ACPI_RDESC_TYPE_RESERVED_S2 0x58 | ||
763 | #define ACPI_RDESC_TYPE_RESERVED_S3 0x60 | ||
764 | #define ACPI_RDESC_TYPE_RESERVED_S4 0x68 | ||
760 | #define ACPI_RDESC_TYPE_SMALL_VENDOR 0x70 | 765 | #define ACPI_RDESC_TYPE_SMALL_VENDOR 0x70 |
761 | #define ACPI_RDESC_TYPE_END_TAG 0x78 | 766 | #define ACPI_RDESC_TYPE_END_TAG 0x78 |
762 | 767 | ||
@@ -764,7 +769,8 @@ struct acpi_bit_register_info { | |||
764 | * Large resource descriptor types | 769 | * Large resource descriptor types |
765 | */ | 770 | */ |
766 | #define ACPI_RDESC_TYPE_MEMORY_24 0x81 | 771 | #define ACPI_RDESC_TYPE_MEMORY_24 0x81 |
767 | #define ACPI_RDESC_TYPE_GENERAL_REGISTER 0x82 | 772 | #define ACPI_RDESC_TYPE_GENERIC_REGISTER 0x82 |
773 | #define ACPI_RDESC_TYPE_RESERVED_L1 0x83 | ||
768 | #define ACPI_RDESC_TYPE_LARGE_VENDOR 0x84 | 774 | #define ACPI_RDESC_TYPE_LARGE_VENDOR 0x84 |
769 | #define ACPI_RDESC_TYPE_MEMORY_32 0x85 | 775 | #define ACPI_RDESC_TYPE_MEMORY_32 0x85 |
770 | #define ACPI_RDESC_TYPE_FIXED_MEMORY_32 0x86 | 776 | #define ACPI_RDESC_TYPE_FIXED_MEMORY_32 0x86 |
@@ -773,6 +779,15 @@ struct acpi_bit_register_info { | |||
773 | #define ACPI_RDESC_TYPE_EXTENDED_XRUPT 0x89 | 779 | #define ACPI_RDESC_TYPE_EXTENDED_XRUPT 0x89 |
774 | #define ACPI_RDESC_TYPE_QWORD_ADDRESS_SPACE 0x8A | 780 | #define ACPI_RDESC_TYPE_QWORD_ADDRESS_SPACE 0x8A |
775 | #define ACPI_RDESC_TYPE_EXTENDED_ADDRESS_SPACE 0x8B | 781 | #define ACPI_RDESC_TYPE_EXTENDED_ADDRESS_SPACE 0x8B |
782 | #define ACPI_RDESC_LARGE_MAX 0x8B | ||
783 | |||
784 | /* | ||
785 | * Minimum lengths for descriptors with optional fields | ||
786 | */ | ||
787 | #define ACPI_RDESC_QWORD_MIN 43 | ||
788 | #define ACPI_RDESC_DWORD_MIN 23 | ||
789 | #define ACPI_RDESC_WORD_MIN 13 | ||
790 | #define ACPI_RDESC_EXT_XRUPT_MIN 6 | ||
776 | 791 | ||
777 | /***************************************************************************** | 792 | /***************************************************************************** |
778 | * | 793 | * |
diff --git a/include/acpi/acresrc.h b/include/acpi/acresrc.h index 38e798b05d08..ce2cf72fd4c8 100644 --- a/include/acpi/acresrc.h +++ b/include/acpi/acresrc.h | |||
@@ -110,7 +110,7 @@ acpi_rs_byte_stream_to_list(u8 * byte_stream_buffer, | |||
110 | u32 byte_stream_buffer_length, u8 * output_buffer); | 110 | u32 byte_stream_buffer_length, u8 * output_buffer); |
111 | 111 | ||
112 | acpi_status | 112 | acpi_status |
113 | acpi_rs_list_to_byte_stream(struct acpi_resource *linked_list, | 113 | acpi_rs_list_to_byte_stream(struct acpi_resource *resource, |
114 | acpi_size byte_stream_size_needed, | 114 | acpi_size byte_stream_size_needed, |
115 | u8 * output_buffer); | 115 | u8 * output_buffer); |
116 | 116 | ||
@@ -125,11 +125,11 @@ acpi_rs_fixed_io_resource(u8 * byte_stream_buffer, | |||
125 | u8 ** output_buffer, acpi_size * structure_size); | 125 | u8 ** output_buffer, acpi_size * structure_size); |
126 | 126 | ||
127 | acpi_status | 127 | acpi_status |
128 | acpi_rs_io_stream(struct acpi_resource *linked_list, | 128 | acpi_rs_io_stream(struct acpi_resource *resource, |
129 | u8 ** output_buffer, acpi_size * bytes_consumed); | 129 | u8 ** output_buffer, acpi_size * bytes_consumed); |
130 | 130 | ||
131 | acpi_status | 131 | acpi_status |
132 | acpi_rs_fixed_io_stream(struct acpi_resource *linked_list, | 132 | acpi_rs_fixed_io_stream(struct acpi_resource *resource, |
133 | u8 ** output_buffer, acpi_size * bytes_consumed); | 133 | u8 ** output_buffer, acpi_size * bytes_consumed); |
134 | 134 | ||
135 | acpi_status | 135 | acpi_status |
@@ -138,7 +138,7 @@ acpi_rs_irq_resource(u8 * byte_stream_buffer, | |||
138 | u8 ** output_buffer, acpi_size * structure_size); | 138 | u8 ** output_buffer, acpi_size * structure_size); |
139 | 139 | ||
140 | acpi_status | 140 | acpi_status |
141 | acpi_rs_irq_stream(struct acpi_resource *linked_list, | 141 | acpi_rs_irq_stream(struct acpi_resource *resource, |
142 | u8 ** output_buffer, acpi_size * bytes_consumed); | 142 | u8 ** output_buffer, acpi_size * bytes_consumed); |
143 | 143 | ||
144 | acpi_status | 144 | acpi_status |
@@ -147,7 +147,7 @@ acpi_rs_dma_resource(u8 * byte_stream_buffer, | |||
147 | u8 ** output_buffer, acpi_size * structure_size); | 147 | u8 ** output_buffer, acpi_size * structure_size); |
148 | 148 | ||
149 | acpi_status | 149 | acpi_status |
150 | acpi_rs_dma_stream(struct acpi_resource *linked_list, | 150 | acpi_rs_dma_stream(struct acpi_resource *resource, |
151 | u8 ** output_buffer, acpi_size * bytes_consumed); | 151 | u8 ** output_buffer, acpi_size * bytes_consumed); |
152 | 152 | ||
153 | acpi_status | 153 | acpi_status |
@@ -156,7 +156,7 @@ acpi_rs_address16_resource(u8 * byte_stream_buffer, | |||
156 | u8 ** output_buffer, acpi_size * structure_size); | 156 | u8 ** output_buffer, acpi_size * structure_size); |
157 | 157 | ||
158 | acpi_status | 158 | acpi_status |
159 | acpi_rs_address16_stream(struct acpi_resource *linked_list, | 159 | acpi_rs_address16_stream(struct acpi_resource *resource, |
160 | u8 ** output_buffer, acpi_size * bytes_consumed); | 160 | u8 ** output_buffer, acpi_size * bytes_consumed); |
161 | 161 | ||
162 | acpi_status | 162 | acpi_status |
@@ -165,7 +165,7 @@ acpi_rs_address32_resource(u8 * byte_stream_buffer, | |||
165 | u8 ** output_buffer, acpi_size * structure_size); | 165 | u8 ** output_buffer, acpi_size * structure_size); |
166 | 166 | ||
167 | acpi_status | 167 | acpi_status |
168 | acpi_rs_address32_stream(struct acpi_resource *linked_list, | 168 | acpi_rs_address32_stream(struct acpi_resource *resource, |
169 | u8 ** output_buffer, acpi_size * bytes_consumed); | 169 | u8 ** output_buffer, acpi_size * bytes_consumed); |
170 | 170 | ||
171 | acpi_status | 171 | acpi_status |
@@ -174,7 +174,7 @@ acpi_rs_address64_resource(u8 * byte_stream_buffer, | |||
174 | u8 ** output_buffer, acpi_size * structure_size); | 174 | u8 ** output_buffer, acpi_size * structure_size); |
175 | 175 | ||
176 | acpi_status | 176 | acpi_status |
177 | acpi_rs_address64_stream(struct acpi_resource *linked_list, | 177 | acpi_rs_address64_stream(struct acpi_resource *resource, |
178 | u8 ** output_buffer, acpi_size * bytes_consumed); | 178 | u8 ** output_buffer, acpi_size * bytes_consumed); |
179 | 179 | ||
180 | acpi_status | 180 | acpi_status |
@@ -190,12 +190,12 @@ acpi_rs_end_depend_fns_resource(u8 * byte_stream_buffer, | |||
190 | acpi_size * structure_size); | 190 | acpi_size * structure_size); |
191 | 191 | ||
192 | acpi_status | 192 | acpi_status |
193 | acpi_rs_start_depend_fns_stream(struct acpi_resource *linked_list, | 193 | acpi_rs_start_depend_fns_stream(struct acpi_resource *resource, |
194 | u8 ** output_buffer, | 194 | u8 ** output_buffer, |
195 | acpi_size * bytes_consumed); | 195 | acpi_size * bytes_consumed); |
196 | 196 | ||
197 | acpi_status | 197 | acpi_status |
198 | acpi_rs_end_depend_fns_stream(struct acpi_resource *linked_list, | 198 | acpi_rs_end_depend_fns_stream(struct acpi_resource *resource, |
199 | u8 ** output_buffer, acpi_size * bytes_consumed); | 199 | u8 ** output_buffer, acpi_size * bytes_consumed); |
200 | 200 | ||
201 | acpi_status | 201 | acpi_status |
@@ -204,7 +204,7 @@ acpi_rs_memory24_resource(u8 * byte_stream_buffer, | |||
204 | u8 ** output_buffer, acpi_size * structure_size); | 204 | u8 ** output_buffer, acpi_size * structure_size); |
205 | 205 | ||
206 | acpi_status | 206 | acpi_status |
207 | acpi_rs_memory24_stream(struct acpi_resource *linked_list, | 207 | acpi_rs_memory24_stream(struct acpi_resource *resource, |
208 | u8 ** output_buffer, acpi_size * bytes_consumed); | 208 | u8 ** output_buffer, acpi_size * bytes_consumed); |
209 | 209 | ||
210 | acpi_status | 210 | acpi_status |
@@ -220,11 +220,11 @@ acpi_rs_fixed_memory32_resource(u8 * byte_stream_buffer, | |||
220 | acpi_size * structure_size); | 220 | acpi_size * structure_size); |
221 | 221 | ||
222 | acpi_status | 222 | acpi_status |
223 | acpi_rs_memory32_range_stream(struct acpi_resource *linked_list, | 223 | acpi_rs_memory32_range_stream(struct acpi_resource *resource, |
224 | u8 ** output_buffer, acpi_size * bytes_consumed); | 224 | u8 ** output_buffer, acpi_size * bytes_consumed); |
225 | 225 | ||
226 | acpi_status | 226 | acpi_status |
227 | acpi_rs_fixed_memory32_stream(struct acpi_resource *linked_list, | 227 | acpi_rs_fixed_memory32_stream(struct acpi_resource *resource, |
228 | u8 ** output_buffer, acpi_size * bytes_consumed); | 228 | u8 ** output_buffer, acpi_size * bytes_consumed); |
229 | 229 | ||
230 | acpi_status | 230 | acpi_status |
@@ -233,7 +233,7 @@ acpi_rs_extended_irq_resource(u8 * byte_stream_buffer, | |||
233 | u8 ** output_buffer, acpi_size * structure_size); | 233 | u8 ** output_buffer, acpi_size * structure_size); |
234 | 234 | ||
235 | acpi_status | 235 | acpi_status |
236 | acpi_rs_extended_irq_stream(struct acpi_resource *linked_list, | 236 | acpi_rs_extended_irq_stream(struct acpi_resource *resource, |
237 | u8 ** output_buffer, acpi_size * bytes_consumed); | 237 | u8 ** output_buffer, acpi_size * bytes_consumed); |
238 | 238 | ||
239 | acpi_status | 239 | acpi_status |
@@ -242,7 +242,7 @@ acpi_rs_end_tag_resource(u8 * byte_stream_buffer, | |||
242 | u8 ** output_buffer, acpi_size * structure_size); | 242 | u8 ** output_buffer, acpi_size * structure_size); |
243 | 243 | ||
244 | acpi_status | 244 | acpi_status |
245 | acpi_rs_end_tag_stream(struct acpi_resource *linked_list, | 245 | acpi_rs_end_tag_stream(struct acpi_resource *resource, |
246 | u8 ** output_buffer, acpi_size * bytes_consumed); | 246 | u8 ** output_buffer, acpi_size * bytes_consumed); |
247 | 247 | ||
248 | acpi_status | 248 | acpi_status |
@@ -251,9 +251,23 @@ acpi_rs_vendor_resource(u8 * byte_stream_buffer, | |||
251 | u8 ** output_buffer, acpi_size * structure_size); | 251 | u8 ** output_buffer, acpi_size * structure_size); |
252 | 252 | ||
253 | acpi_status | 253 | acpi_status |
254 | acpi_rs_vendor_stream(struct acpi_resource *linked_list, | 254 | acpi_rs_vendor_stream(struct acpi_resource *resource, |
255 | u8 ** output_buffer, acpi_size * bytes_consumed); | 255 | u8 ** output_buffer, acpi_size * bytes_consumed); |
256 | 256 | ||
257 | u8 acpi_rs_get_resource_type(u8 resource_start_byte); | 257 | u8 acpi_rs_get_resource_type(u8 resource_start_byte); |
258 | 258 | ||
259 | /* | ||
260 | * rsmisc | ||
261 | */ | ||
262 | acpi_status | ||
263 | acpi_rs_generic_register_resource(u8 * byte_stream_buffer, | ||
264 | acpi_size * bytes_consumed, | ||
265 | u8 ** output_buffer, | ||
266 | acpi_size * structure_size); | ||
267 | |||
268 | acpi_status | ||
269 | acpi_rs_generic_register_stream(struct acpi_resource *resource, | ||
270 | u8 ** output_buffer, | ||
271 | acpi_size * bytes_consumed); | ||
272 | |||
259 | #endif /* __ACRESRC_H__ */ | 273 | #endif /* __ACRESRC_H__ */ |
diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h index 6213b27516e8..1dfa64fae4ec 100644 --- a/include/acpi/actypes.h +++ b/include/acpi/actypes.h | |||
@@ -1125,6 +1125,14 @@ struct acpi_resource_ext_irq { | |||
1125 | u32 interrupts[1]; | 1125 | u32 interrupts[1]; |
1126 | }; | 1126 | }; |
1127 | 1127 | ||
1128 | struct acpi_resource_generic_reg { | ||
1129 | u32 space_id; | ||
1130 | u32 bit_width; | ||
1131 | u32 bit_offset; | ||
1132 | u32 address_size; | ||
1133 | u64 address; | ||
1134 | }; | ||
1135 | |||
1128 | /* ACPI_RESOURCE_TYPEs */ | 1136 | /* ACPI_RESOURCE_TYPEs */ |
1129 | 1137 | ||
1130 | #define ACPI_RSTYPE_IRQ 0 | 1138 | #define ACPI_RSTYPE_IRQ 0 |
@@ -1142,6 +1150,8 @@ struct acpi_resource_ext_irq { | |||
1142 | #define ACPI_RSTYPE_ADDRESS32 12 | 1150 | #define ACPI_RSTYPE_ADDRESS32 12 |
1143 | #define ACPI_RSTYPE_ADDRESS64 13 | 1151 | #define ACPI_RSTYPE_ADDRESS64 13 |
1144 | #define ACPI_RSTYPE_EXT_IRQ 14 | 1152 | #define ACPI_RSTYPE_EXT_IRQ 14 |
1153 | #define ACPI_RSTYPE_GENERIC_REG 15 | ||
1154 | #define ACPI_RSTYPE_MAX 15 | ||
1145 | 1155 | ||
1146 | typedef u32 acpi_resource_type; | 1156 | typedef u32 acpi_resource_type; |
1147 | 1157 | ||
@@ -1161,10 +1171,11 @@ union acpi_resource_data { | |||
1161 | struct acpi_resource_address32 address32; | 1171 | struct acpi_resource_address32 address32; |
1162 | struct acpi_resource_address64 address64; | 1172 | struct acpi_resource_address64 address64; |
1163 | struct acpi_resource_ext_irq extended_irq; | 1173 | struct acpi_resource_ext_irq extended_irq; |
1174 | struct acpi_resource_generic_reg generic_reg; | ||
1164 | }; | 1175 | }; |
1165 | 1176 | ||
1166 | struct acpi_resource { | 1177 | struct acpi_resource { |
1167 | acpi_resource_type id; | 1178 | acpi_resource_type type; |
1168 | u32 length; | 1179 | u32 length; |
1169 | union acpi_resource_data data; | 1180 | union acpi_resource_data data; |
1170 | }; | 1181 | }; |
diff --git a/include/acpi/amlresrc.h b/include/acpi/amlresrc.h index 051786e4b210..a3c46ba6358d 100644 --- a/include/acpi/amlresrc.h +++ b/include/acpi/amlresrc.h | |||
@@ -157,10 +157,15 @@ struct asl_end_tag_desc { | |||
157 | 157 | ||
158 | /* LARGE descriptors */ | 158 | /* LARGE descriptors */ |
159 | 159 | ||
160 | #define ASL_LARGE_HEADER_COMMON \ | ||
161 | u8 descriptor_type;\ | ||
162 | u16 length; | ||
163 | |||
164 | struct asl_large_header { | ||
165 | ASL_LARGE_HEADER_COMMON}; | ||
166 | |||
160 | struct asl_memory_24_desc { | 167 | struct asl_memory_24_desc { |
161 | u8 descriptor_type; | 168 | ASL_LARGE_HEADER_COMMON u8 information; |
162 | u16 length; | ||
163 | u8 information; | ||
164 | u16 address_min; | 169 | u16 address_min; |
165 | u16 address_max; | 170 | u16 address_max; |
166 | u16 alignment; | 171 | u16 alignment; |
@@ -168,15 +173,11 @@ struct asl_memory_24_desc { | |||
168 | }; | 173 | }; |
169 | 174 | ||
170 | struct asl_large_vendor_desc { | 175 | struct asl_large_vendor_desc { |
171 | u8 descriptor_type; | 176 | ASL_LARGE_HEADER_COMMON u8 vendor_defined[1]; |
172 | u16 length; | ||
173 | u8 vendor_defined[1]; | ||
174 | }; | 177 | }; |
175 | 178 | ||
176 | struct asl_memory_32_desc { | 179 | struct asl_memory_32_desc { |
177 | u8 descriptor_type; | 180 | ASL_LARGE_HEADER_COMMON u8 information; |
178 | u16 length; | ||
179 | u8 information; | ||
180 | u32 address_min; | 181 | u32 address_min; |
181 | u32 address_max; | 182 | u32 address_max; |
182 | u32 alignment; | 183 | u32 alignment; |
@@ -184,17 +185,13 @@ struct asl_memory_32_desc { | |||
184 | }; | 185 | }; |
185 | 186 | ||
186 | struct asl_fixed_memory_32_desc { | 187 | struct asl_fixed_memory_32_desc { |
187 | u8 descriptor_type; | 188 | ASL_LARGE_HEADER_COMMON u8 information; |
188 | u16 length; | ||
189 | u8 information; | ||
190 | u32 base_address; | 189 | u32 base_address; |
191 | u32 range_length; | 190 | u32 range_length; |
192 | }; | 191 | }; |
193 | 192 | ||
194 | struct asl_extended_address_desc { | 193 | struct asl_extended_address_desc { |
195 | u8 descriptor_type; | 194 | ASL_LARGE_HEADER_COMMON u8 resource_type; |
196 | u16 length; | ||
197 | u8 resource_type; | ||
198 | u8 flags; | 195 | u8 flags; |
199 | u8 specific_flags; | 196 | u8 specific_flags; |
200 | u8 revision_iD; | 197 | u8 revision_iD; |
@@ -211,9 +208,7 @@ struct asl_extended_address_desc { | |||
211 | #define ASL_EXTENDED_ADDRESS_DESC_REVISION 1 /* ACPI 3.0 */ | 208 | #define ASL_EXTENDED_ADDRESS_DESC_REVISION 1 /* ACPI 3.0 */ |
212 | 209 | ||
213 | struct asl_qword_address_desc { | 210 | struct asl_qword_address_desc { |
214 | u8 descriptor_type; | 211 | ASL_LARGE_HEADER_COMMON u8 resource_type; |
215 | u16 length; | ||
216 | u8 resource_type; | ||
217 | u8 flags; | 212 | u8 flags; |
218 | u8 specific_flags; | 213 | u8 specific_flags; |
219 | u64 granularity; | 214 | u64 granularity; |
@@ -225,9 +220,7 @@ struct asl_qword_address_desc { | |||
225 | }; | 220 | }; |
226 | 221 | ||
227 | struct asl_dword_address_desc { | 222 | struct asl_dword_address_desc { |
228 | u8 descriptor_type; | 223 | ASL_LARGE_HEADER_COMMON u8 resource_type; |
229 | u16 length; | ||
230 | u8 resource_type; | ||
231 | u8 flags; | 224 | u8 flags; |
232 | u8 specific_flags; | 225 | u8 specific_flags; |
233 | u32 granularity; | 226 | u32 granularity; |
@@ -239,9 +232,7 @@ struct asl_dword_address_desc { | |||
239 | }; | 232 | }; |
240 | 233 | ||
241 | struct asl_word_address_desc { | 234 | struct asl_word_address_desc { |
242 | u8 descriptor_type; | 235 | ASL_LARGE_HEADER_COMMON u8 resource_type; |
243 | u16 length; | ||
244 | u8 resource_type; | ||
245 | u8 flags; | 236 | u8 flags; |
246 | u8 specific_flags; | 237 | u8 specific_flags; |
247 | u16 granularity; | 238 | u16 granularity; |
@@ -253,18 +244,14 @@ struct asl_word_address_desc { | |||
253 | }; | 244 | }; |
254 | 245 | ||
255 | struct asl_extended_xrupt_desc { | 246 | struct asl_extended_xrupt_desc { |
256 | u8 descriptor_type; | 247 | ASL_LARGE_HEADER_COMMON u8 flags; |
257 | u16 length; | ||
258 | u8 flags; | ||
259 | u8 table_length; | 248 | u8 table_length; |
260 | u32 interrupt_number[1]; | 249 | u32 interrupt_number[1]; |
261 | /* res_source_index, res_source optional fields follow */ | 250 | /* res_source_index, res_source optional fields follow */ |
262 | }; | 251 | }; |
263 | 252 | ||
264 | struct asl_general_register_desc { | 253 | struct asl_generic_register_desc { |
265 | u8 descriptor_type; | 254 | ASL_LARGE_HEADER_COMMON u8 address_space_id; |
266 | u16 length; | ||
267 | u8 address_space_id; | ||
268 | u8 bit_width; | 255 | u8 bit_width; |
269 | u8 bit_offset; | 256 | u8 bit_offset; |
270 | u8 access_size; /* ACPI 3.0, was Reserved */ | 257 | u8 access_size; /* ACPI 3.0, was Reserved */ |
@@ -280,13 +267,14 @@ struct asl_general_register_desc { | |||
280 | union asl_resource_desc { | 267 | union asl_resource_desc { |
281 | struct asl_irq_format_desc irq; | 268 | struct asl_irq_format_desc irq; |
282 | struct asl_dma_format_desc dma; | 269 | struct asl_dma_format_desc dma; |
283 | struct asl_start_dependent_desc std; | ||
284 | struct asl_end_dependent_desc end; | ||
285 | struct asl_io_port_desc iop; | 270 | struct asl_io_port_desc iop; |
286 | struct asl_fixed_io_port_desc fio; | 271 | struct asl_fixed_io_port_desc fio; |
272 | struct asl_start_dependent_desc std; | ||
273 | struct asl_end_dependent_desc end; | ||
287 | struct asl_small_vendor_desc smv; | 274 | struct asl_small_vendor_desc smv; |
288 | struct asl_end_tag_desc et; | 275 | struct asl_end_tag_desc et; |
289 | 276 | ||
277 | struct asl_large_header lhd; | ||
290 | struct asl_memory_24_desc M24; | 278 | struct asl_memory_24_desc M24; |
291 | struct asl_large_vendor_desc lgv; | 279 | struct asl_large_vendor_desc lgv; |
292 | struct asl_memory_32_desc M32; | 280 | struct asl_memory_32_desc M32; |
@@ -296,7 +284,7 @@ union asl_resource_desc { | |||
296 | struct asl_word_address_desc was; | 284 | struct asl_word_address_desc was; |
297 | struct asl_extended_address_desc eas; | 285 | struct asl_extended_address_desc eas; |
298 | struct asl_extended_xrupt_desc exx; | 286 | struct asl_extended_xrupt_desc exx; |
299 | struct asl_general_register_desc grg; | 287 | struct asl_generic_register_desc grg; |
300 | u32 u32_item; | 288 | u32 u32_item; |
301 | u16 u16_item; | 289 | u16 u16_item; |
302 | u8 U8item; | 290 | u8 U8item; |
diff --git a/include/acpi/platform/acenv.h b/include/acpi/platform/acenv.h index 16609c1ab2eb..08539125696a 100644 --- a/include/acpi/platform/acenv.h +++ b/include/acpi/platform/acenv.h | |||
@@ -68,6 +68,7 @@ | |||
68 | #define ACPI_APPLICATION | 68 | #define ACPI_APPLICATION |
69 | #define ACPI_DEBUGGER | 69 | #define ACPI_DEBUGGER |
70 | #define ACPI_DISASSEMBLER | 70 | #define ACPI_DISASSEMBLER |
71 | #define ACPI_MUTEX_DEBUG | ||
71 | #endif | 72 | #endif |
72 | 73 | ||
73 | #ifdef ACPI_ASL_COMPILER | 74 | #ifdef ACPI_ASL_COMPILER |