aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorRobert Moore <Robert.Moore@intel.com>2005-09-16 16:51:15 -0400
committerLen Brown <len.brown@intel.com>2005-09-21 23:51:39 -0400
commitbda663d36b94c723153246a4231bbc0f1cd1836e (patch)
treecc9f75c1d010d1b99d29f13acd600b21eda5eec5 /include
parentefb0372bbaf5b829ff8c39db372779928af542a7 (diff)
[ACPI] ACPICA 20050916
Fixed a problem within the Resource Manager where support for the Generic Register descriptor was not fully implemented. This descriptor is now fully recognized, parsed, disassembled, and displayed. Restructured the Resource Manager code to utilize table-driven dispatch and lookup, eliminating many of the large switch() statements. This reduces overall subsystem code size and code complexity. Affects the resource parsing and construction, disassembly, and debug dump output. Cleaned up and restructured the debug dump output for all resource descriptors. Improved readability of the output and reduced code size. Fixed a problem where changes to internal data structures caused the optional ACPI_MUTEX_DEBUG code to fail compilation if specified. Signed-off-by: Robert Moore <Robert.Moore@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'include')
-rw-r--r--include/acpi/acconfig.h4
-rw-r--r--include/acpi/acdisasm.h36
-rw-r--r--include/acpi/aclocal.h23
-rw-r--r--include/acpi/acresrc.h46
-rw-r--r--include/acpi/actypes.h13
-rw-r--r--include/acpi/amlresrc.h56
-rw-r--r--include/acpi/platform/acenv.h1
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 */
189void 189void
190acpi_dm_word_descriptor(struct asl_word_address_desc *resource, 190acpi_dm_word_descriptor(union asl_resource_desc *resource,
191 u32 length, u32 level); 191 u32 length, u32 level);
192 192
193void 193void
194acpi_dm_dword_descriptor(struct asl_dword_address_desc *resource, 194acpi_dm_dword_descriptor(union asl_resource_desc *resource,
195 u32 length, u32 level); 195 u32 length, u32 level);
196 196
197void 197void
198acpi_dm_extended_descriptor(struct asl_extended_address_desc *resource, 198acpi_dm_extended_descriptor(union asl_resource_desc *resource,
199 u32 length, u32 level); 199 u32 length, u32 level);
200 200
201void 201void
202acpi_dm_qword_descriptor(struct asl_qword_address_desc *resource, 202acpi_dm_qword_descriptor(union asl_resource_desc *resource,
203 u32 length, u32 level); 203 u32 length, u32 level);
204 204
205void 205void
206acpi_dm_memory24_descriptor(struct asl_memory_24_desc *resource, 206acpi_dm_memory24_descriptor(union asl_resource_desc *resource,
207 u32 length, u32 level); 207 u32 length, u32 level);
208 208
209void 209void
210acpi_dm_memory32_descriptor(struct asl_memory_32_desc *resource, 210acpi_dm_memory32_descriptor(union asl_resource_desc *resource,
211 u32 length, u32 level); 211 u32 length, u32 level);
212 212
213void 213void
214acpi_dm_fixed_mem32_descriptor(struct asl_fixed_memory_32_desc *resource, 214acpi_dm_fixed_memory32_descriptor(union asl_resource_desc *resource,
215 u32 length, u32 level); 215 u32 length, u32 level);
216 216
217void 217void
218acpi_dm_generic_register_descriptor(struct asl_general_register_desc *resource, 218acpi_dm_generic_register_descriptor(union asl_resource_desc *resource,
219 u32 length, u32 level); 219 u32 length, u32 level);
220 220
221void 221void
222acpi_dm_interrupt_descriptor(struct asl_extended_xrupt_desc *resource, 222acpi_dm_interrupt_descriptor(union asl_resource_desc *resource,
223 u32 length, u32 level); 223 u32 length, u32 level);
224 224
225void 225void
226acpi_dm_vendor_large_descriptor(struct asl_large_vendor_desc *resource, 226acpi_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 */
232void 232void
233acpi_dm_irq_descriptor(struct asl_irq_format_desc *resource, 233acpi_dm_irq_descriptor(union asl_resource_desc *resource,
234 u32 length, u32 level); 234 u32 length, u32 level);
235 235
236void 236void
237acpi_dm_dma_descriptor(struct asl_dma_format_desc *resource, 237acpi_dm_dma_descriptor(union asl_resource_desc *resource,
238 u32 length, u32 level); 238 u32 length, u32 level);
239 239
240void 240void
241acpi_dm_io_descriptor(struct asl_io_port_desc *resource, u32 length, u32 level); 241acpi_dm_io_descriptor(union asl_resource_desc *resource, u32 length, u32 level);
242 242
243void 243void
244acpi_dm_fixed_io_descriptor(struct asl_fixed_io_port_desc *resource, 244acpi_dm_fixed_io_descriptor(union asl_resource_desc *resource,
245 u32 length, u32 level); 245 u32 length, u32 level);
246 246
247void 247void
248acpi_dm_start_dependent_descriptor(struct asl_start_dependent_desc *resource, 248acpi_dm_start_dependent_descriptor(union asl_resource_desc *resource,
249 u32 length, u32 level); 249 u32 length, u32 level);
250 250
251void 251void
252acpi_dm_end_dependent_descriptor(struct asl_start_dependent_desc *resource, 252acpi_dm_end_dependent_descriptor(union asl_resource_desc *resource,
253 u32 length, u32 level); 253 u32 length, u32 level);
254 254
255void 255void
256acpi_dm_vendor_small_descriptor(struct asl_small_vendor_desc *resource, 256acpi_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
112acpi_status 112acpi_status
113acpi_rs_list_to_byte_stream(struct acpi_resource *linked_list, 113acpi_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
127acpi_status 127acpi_status
128acpi_rs_io_stream(struct acpi_resource *linked_list, 128acpi_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
131acpi_status 131acpi_status
132acpi_rs_fixed_io_stream(struct acpi_resource *linked_list, 132acpi_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
135acpi_status 135acpi_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
140acpi_status 140acpi_status
141acpi_rs_irq_stream(struct acpi_resource *linked_list, 141acpi_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
144acpi_status 144acpi_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
149acpi_status 149acpi_status
150acpi_rs_dma_stream(struct acpi_resource *linked_list, 150acpi_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
153acpi_status 153acpi_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
158acpi_status 158acpi_status
159acpi_rs_address16_stream(struct acpi_resource *linked_list, 159acpi_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
162acpi_status 162acpi_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
167acpi_status 167acpi_status
168acpi_rs_address32_stream(struct acpi_resource *linked_list, 168acpi_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
171acpi_status 171acpi_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
176acpi_status 176acpi_status
177acpi_rs_address64_stream(struct acpi_resource *linked_list, 177acpi_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
180acpi_status 180acpi_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
192acpi_status 192acpi_status
193acpi_rs_start_depend_fns_stream(struct acpi_resource *linked_list, 193acpi_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
197acpi_status 197acpi_status
198acpi_rs_end_depend_fns_stream(struct acpi_resource *linked_list, 198acpi_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
201acpi_status 201acpi_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
206acpi_status 206acpi_status
207acpi_rs_memory24_stream(struct acpi_resource *linked_list, 207acpi_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
210acpi_status 210acpi_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
222acpi_status 222acpi_status
223acpi_rs_memory32_range_stream(struct acpi_resource *linked_list, 223acpi_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
226acpi_status 226acpi_status
227acpi_rs_fixed_memory32_stream(struct acpi_resource *linked_list, 227acpi_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
230acpi_status 230acpi_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
235acpi_status 235acpi_status
236acpi_rs_extended_irq_stream(struct acpi_resource *linked_list, 236acpi_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
239acpi_status 239acpi_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
244acpi_status 244acpi_status
245acpi_rs_end_tag_stream(struct acpi_resource *linked_list, 245acpi_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
248acpi_status 248acpi_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
253acpi_status 253acpi_status
254acpi_rs_vendor_stream(struct acpi_resource *linked_list, 254acpi_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
257u8 acpi_rs_get_resource_type(u8 resource_start_byte); 257u8 acpi_rs_get_resource_type(u8 resource_start_byte);
258 258
259/*
260 * rsmisc
261 */
262acpi_status
263acpi_rs_generic_register_resource(u8 * byte_stream_buffer,
264 acpi_size * bytes_consumed,
265 u8 ** output_buffer,
266 acpi_size * structure_size);
267
268acpi_status
269acpi_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
1128struct 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
1146typedef u32 acpi_resource_type; 1156typedef 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
1166struct acpi_resource { 1177struct 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
164struct asl_large_header {
165ASL_LARGE_HEADER_COMMON};
166
160struct asl_memory_24_desc { 167struct 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
170struct asl_large_vendor_desc { 175struct 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
176struct asl_memory_32_desc { 179struct 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
186struct asl_fixed_memory_32_desc { 187struct 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
194struct asl_extended_address_desc { 193struct 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
213struct asl_qword_address_desc { 210struct 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
227struct asl_dword_address_desc { 222struct 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
241struct asl_word_address_desc { 234struct 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
255struct asl_extended_xrupt_desc { 246struct 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
264struct asl_general_register_desc { 253struct 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 {
280union asl_resource_desc { 267union 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