diff options
author | Bob Moore <robert.moore@intel.com> | 2005-11-02 00:00:00 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2005-12-10 00:26:05 -0500 |
commit | 96db255c8f014ae3497507104e8df809785a619f (patch) | |
tree | 79d2c506644370fd6c10d94bd40c419cd3bad148 /drivers/acpi/resources/rsinfo.c | |
parent | 0897831bb54eb36fd9e2a22da7f0f64be1b20d09 (diff) |
[ACPI] ACPICA 20051102
Modified the subsystem initialization sequence to improve
GPE support. The GPE initialization has been split into
two parts in order to defer execution of the _PRW methods
(Power Resources for Wake) until after the hardware is
fully initialized and the SCI handler is installed. This
allows the _PRW methods to access fields protected by the
Global Lock. This will fix systems where a NO_GLOBAL_LOCK
exception has been seen during initialization.
Fixed a regression with the ConcatenateResTemplate()
ASL operator introduced in the 20051021 release.
Implemented support for "local" internal ACPI object
types within the debugger "Object" command and the
acpi_walk_namespace() external interfaces. These local
types include RegionFields, BankFields, IndexFields, Alias,
and reference objects.
Moved common AML resource handling code into a new file,
"utresrc.c". This code is shared by both the Resource
Manager and the AML Debugger.
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/resources/rsinfo.c')
-rw-r--r-- | drivers/acpi/resources/rsinfo.c | 97 |
1 files changed, 37 insertions, 60 deletions
diff --git a/drivers/acpi/resources/rsinfo.c b/drivers/acpi/resources/rsinfo.c index 973fc2834cbb..623b06689336 100644 --- a/drivers/acpi/resources/rsinfo.c +++ b/drivers/acpi/resources/rsinfo.c | |||
@@ -80,7 +80,9 @@ struct acpi_rsconvert_info *acpi_gbl_set_resource_dispatch[] = { | |||
80 | 80 | ||
81 | /* Dispatch tables for AML-to-resource (Get Resource) conversion functions */ | 81 | /* Dispatch tables for AML-to-resource (Get Resource) conversion functions */ |
82 | 82 | ||
83 | struct acpi_rsconvert_info *acpi_gbl_sm_get_resource_dispatch[] = { | 83 | struct acpi_rsconvert_info *acpi_gbl_get_resource_dispatch[] = { |
84 | /* Small descriptors */ | ||
85 | |||
84 | NULL, /* 0x00, Reserved */ | 86 | NULL, /* 0x00, Reserved */ |
85 | NULL, /* 0x01, Reserved */ | 87 | NULL, /* 0x01, Reserved */ |
86 | NULL, /* 0x02, Reserved */ | 88 | NULL, /* 0x02, Reserved */ |
@@ -96,10 +98,10 @@ struct acpi_rsconvert_info *acpi_gbl_sm_get_resource_dispatch[] = { | |||
96 | NULL, /* 0x0C, Reserved */ | 98 | NULL, /* 0x0C, Reserved */ |
97 | NULL, /* 0x0D, Reserved */ | 99 | NULL, /* 0x0D, Reserved */ |
98 | acpi_rs_get_vendor_small, /* 0x0E, ACPI_RESOURCE_NAME_VENDOR_SMALL */ | 100 | acpi_rs_get_vendor_small, /* 0x0E, ACPI_RESOURCE_NAME_VENDOR_SMALL */ |
99 | acpi_rs_convert_end_tag /* 0x0F, ACPI_RESOURCE_NAME_END_TAG */ | 101 | acpi_rs_convert_end_tag, /* 0x0F, ACPI_RESOURCE_NAME_END_TAG */ |
100 | }; | 102 | |
103 | /* Large descriptors */ | ||
101 | 104 | ||
102 | struct acpi_rsconvert_info *acpi_gbl_lg_get_resource_dispatch[] = { | ||
103 | NULL, /* 0x00, Reserved */ | 105 | NULL, /* 0x00, Reserved */ |
104 | acpi_rs_convert_memory24, /* 0x01, ACPI_RESOURCE_NAME_MEMORY24 */ | 106 | acpi_rs_convert_memory24, /* 0x01, ACPI_RESOURCE_NAME_MEMORY24 */ |
105 | acpi_rs_convert_generic_reg, /* 0x02, ACPI_RESOURCE_NAME_GENERIC_REGISTER */ | 107 | acpi_rs_convert_generic_reg, /* 0x02, ACPI_RESOURCE_NAME_GENERIC_REGISTER */ |
@@ -138,7 +140,6 @@ struct acpi_rsdump_info *acpi_gbl_dump_resource_dispatch[] = { | |||
138 | acpi_rs_dump_ext_irq, /* ACPI_RESOURCE_TYPE_EXTENDED_IRQ */ | 140 | acpi_rs_dump_ext_irq, /* ACPI_RESOURCE_TYPE_EXTENDED_IRQ */ |
139 | acpi_rs_dump_generic_reg, /* ACPI_RESOURCE_TYPE_GENERIC_REGISTER */ | 141 | acpi_rs_dump_generic_reg, /* ACPI_RESOURCE_TYPE_GENERIC_REGISTER */ |
140 | }; | 142 | }; |
141 | |||
142 | #endif | 143 | #endif |
143 | #endif /* ACPI_FUTURE_USAGE */ | 144 | #endif /* ACPI_FUTURE_USAGE */ |
144 | /* | 145 | /* |
@@ -166,62 +167,38 @@ const u8 acpi_gbl_aml_resource_sizes[] = { | |||
166 | sizeof(struct aml_resource_generic_register) /* ACPI_RESOURCE_TYPE_GENERIC_REGISTER */ | 167 | sizeof(struct aml_resource_generic_register) /* ACPI_RESOURCE_TYPE_GENERIC_REGISTER */ |
167 | }; | 168 | }; |
168 | 169 | ||
169 | /* Macros used in the tables below */ | 170 | const u8 acpi_gbl_resource_struct_sizes[] = { |
171 | /* Small descriptors */ | ||
170 | 172 | ||
171 | #define ACPI_RLARGE(r) (sizeof (r) - sizeof (struct aml_resource_large_header)) | 173 | 0, |
172 | #define ACPI_RSMALL(r) (sizeof (r) - sizeof (struct aml_resource_small_header)) | 174 | 0, |
175 | 0, | ||
176 | 0, | ||
177 | ACPI_RS_SIZE(struct acpi_resource_irq), | ||
178 | ACPI_RS_SIZE(struct acpi_resource_dma), | ||
179 | ACPI_RS_SIZE(struct acpi_resource_start_dependent), | ||
180 | ACPI_RS_SIZE_MIN, | ||
181 | ACPI_RS_SIZE(struct acpi_resource_io), | ||
182 | ACPI_RS_SIZE(struct acpi_resource_fixed_io), | ||
183 | 0, | ||
184 | 0, | ||
185 | 0, | ||
186 | 0, | ||
187 | ACPI_RS_SIZE(struct acpi_resource_vendor), | ||
188 | ACPI_RS_SIZE_MIN, | ||
173 | 189 | ||
174 | /* | 190 | /* Large descriptors */ |
175 | * Base sizes of resource descriptors, both the AML stream resource length | ||
176 | * (minus size of header and length fields),and the size of the internal | ||
177 | * struct representation. | ||
178 | */ | ||
179 | struct acpi_resource_info acpi_gbl_sm_resource_info[] = { | ||
180 | {0, 0, 0}, | ||
181 | {0, 0, 0}, | ||
182 | {0, 0, 0}, | ||
183 | {0, 0, 0}, | ||
184 | {2, ACPI_RSMALL(struct aml_resource_irq), | ||
185 | ACPI_RS_SIZE(struct acpi_resource_irq)}, | ||
186 | {0, ACPI_RSMALL(struct aml_resource_dma), | ||
187 | ACPI_RS_SIZE(struct acpi_resource_dma)}, | ||
188 | {2, ACPI_RSMALL(struct aml_resource_start_dependent), | ||
189 | ACPI_RS_SIZE(struct acpi_resource_start_dependent)}, | ||
190 | {0, ACPI_RSMALL(struct aml_resource_end_dependent), ACPI_RS_SIZE_MIN}, | ||
191 | {0, ACPI_RSMALL(struct aml_resource_io), | ||
192 | ACPI_RS_SIZE(struct acpi_resource_io)}, | ||
193 | {0, ACPI_RSMALL(struct aml_resource_fixed_io), | ||
194 | ACPI_RS_SIZE(struct acpi_resource_fixed_io)}, | ||
195 | {0, 0, 0}, | ||
196 | {0, 0, 0}, | ||
197 | {0, 0, 0}, | ||
198 | {0, 0, 0}, | ||
199 | {1, ACPI_RSMALL(struct aml_resource_vendor_small), | ||
200 | ACPI_RS_SIZE(struct acpi_resource_vendor)}, | ||
201 | {0, ACPI_RSMALL(struct aml_resource_end_tag), ACPI_RS_SIZE_MIN} | ||
202 | }; | ||
203 | 191 | ||
204 | struct acpi_resource_info acpi_gbl_lg_resource_info[] = { | 192 | 0, |
205 | {0, 0, 0}, | 193 | ACPI_RS_SIZE(struct acpi_resource_memory24), |
206 | {0, ACPI_RLARGE(struct aml_resource_memory24), | 194 | ACPI_RS_SIZE(struct acpi_resource_generic_register), |
207 | ACPI_RS_SIZE(struct acpi_resource_memory24)}, | 195 | 0, |
208 | {0, ACPI_RLARGE(struct aml_resource_generic_register), | 196 | ACPI_RS_SIZE(struct acpi_resource_vendor), |
209 | ACPI_RS_SIZE(struct acpi_resource_generic_register)}, | 197 | ACPI_RS_SIZE(struct acpi_resource_memory32), |
210 | {0, 0, 0}, | 198 | ACPI_RS_SIZE(struct acpi_resource_fixed_memory32), |
211 | {1, ACPI_RLARGE(struct aml_resource_vendor_large), | 199 | ACPI_RS_SIZE(struct acpi_resource_address32), |
212 | ACPI_RS_SIZE(struct acpi_resource_vendor)}, | 200 | ACPI_RS_SIZE(struct acpi_resource_address16), |
213 | {0, ACPI_RLARGE(struct aml_resource_memory32), | 201 | ACPI_RS_SIZE(struct acpi_resource_extended_irq), |
214 | ACPI_RS_SIZE(struct acpi_resource_memory32)}, | 202 | ACPI_RS_SIZE(struct acpi_resource_address64), |
215 | {0, ACPI_RLARGE(struct aml_resource_fixed_memory32), | 203 | ACPI_RS_SIZE(struct acpi_resource_extended_address64) |
216 | ACPI_RS_SIZE(struct acpi_resource_fixed_memory32)}, | ||
217 | {1, ACPI_RLARGE(struct aml_resource_address32), | ||
218 | ACPI_RS_SIZE(struct acpi_resource_address32)}, | ||
219 | {1, ACPI_RLARGE(struct aml_resource_address16), | ||
220 | ACPI_RS_SIZE(struct acpi_resource_address16)}, | ||
221 | {1, ACPI_RLARGE(struct aml_resource_extended_irq), | ||
222 | ACPI_RS_SIZE(struct acpi_resource_extended_irq)}, | ||
223 | {1, ACPI_RLARGE(struct aml_resource_address64), | ||
224 | ACPI_RS_SIZE(struct acpi_resource_address64)}, | ||
225 | {0, ACPI_RLARGE(struct aml_resource_extended_address64), | ||
226 | ACPI_RS_SIZE(struct acpi_resource_extended_address64)} | ||
227 | }; | 204 | }; |