diff options
Diffstat (limited to 'drivers/acpi/tables')
-rw-r--r-- | drivers/acpi/tables/tbconvrt.c | 402 | ||||
-rw-r--r-- | drivers/acpi/tables/tbget.c | 275 | ||||
-rw-r--r-- | drivers/acpi/tables/tbgetall.c | 189 | ||||
-rw-r--r-- | drivers/acpi/tables/tbinstal.c | 256 | ||||
-rw-r--r-- | drivers/acpi/tables/tbrsdt.c | 190 | ||||
-rw-r--r-- | drivers/acpi/tables/tbutils.c | 147 | ||||
-rw-r--r-- | drivers/acpi/tables/tbxface.c | 246 | ||||
-rw-r--r-- | drivers/acpi/tables/tbxfroot.c | 431 |
8 files changed, 968 insertions, 1168 deletions
diff --git a/drivers/acpi/tables/tbconvrt.c b/drivers/acpi/tables/tbconvrt.c index d4ff71f5fe5d..a03939399fa9 100644 --- a/drivers/acpi/tables/tbconvrt.c +++ b/drivers/acpi/tables/tbconvrt.c | |||
@@ -46,28 +46,22 @@ | |||
46 | #include <acpi/acpi.h> | 46 | #include <acpi/acpi.h> |
47 | #include <acpi/actables.h> | 47 | #include <acpi/actables.h> |
48 | 48 | ||
49 | |||
50 | #define _COMPONENT ACPI_TABLES | 49 | #define _COMPONENT ACPI_TABLES |
51 | ACPI_MODULE_NAME ("tbconvrt") | 50 | ACPI_MODULE_NAME("tbconvrt") |
52 | 51 | ||
53 | /* Local prototypes */ | 52 | /* Local prototypes */ |
54 | |||
55 | static void | 53 | static void |
56 | acpi_tb_init_generic_address ( | 54 | acpi_tb_init_generic_address(struct acpi_generic_address *new_gas_struct, |
57 | struct acpi_generic_address *new_gas_struct, | 55 | u8 register_bit_width, |
58 | u8 register_bit_width, | 56 | acpi_physical_address address); |
59 | acpi_physical_address address); | ||
60 | 57 | ||
61 | static void | 58 | static void |
62 | acpi_tb_convert_fadt1 ( | 59 | acpi_tb_convert_fadt1(struct fadt_descriptor_rev2 *local_fadt, |
63 | struct fadt_descriptor_rev2 *local_fadt, | 60 | struct fadt_descriptor_rev1 *original_fadt); |
64 | struct fadt_descriptor_rev1 *original_fadt); | ||
65 | 61 | ||
66 | static void | 62 | static void |
67 | acpi_tb_convert_fadt2 ( | 63 | acpi_tb_convert_fadt2(struct fadt_descriptor_rev2 *local_fadt, |
68 | struct fadt_descriptor_rev2 *local_fadt, | 64 | struct fadt_descriptor_rev2 *original_fadt); |
69 | struct fadt_descriptor_rev2 *original_fadt); | ||
70 | |||
71 | 65 | ||
72 | u8 acpi_fadt_is_v1; | 66 | u8 acpi_fadt_is_v1; |
73 | EXPORT_SYMBOL(acpi_fadt_is_v1); | 67 | EXPORT_SYMBOL(acpi_fadt_is_v1); |
@@ -87,23 +81,19 @@ EXPORT_SYMBOL(acpi_fadt_is_v1); | |||
87 | ******************************************************************************/ | 81 | ******************************************************************************/ |
88 | 82 | ||
89 | u32 | 83 | u32 |
90 | acpi_tb_get_table_count ( | 84 | acpi_tb_get_table_count(struct rsdp_descriptor *RSDP, |
91 | struct rsdp_descriptor *RSDP, | 85 | struct acpi_table_header *RSDT) |
92 | struct acpi_table_header *RSDT) | ||
93 | { | 86 | { |
94 | u32 pointer_size; | 87 | u32 pointer_size; |
95 | |||
96 | |||
97 | ACPI_FUNCTION_ENTRY (); | ||
98 | 88 | ||
89 | ACPI_FUNCTION_ENTRY(); | ||
99 | 90 | ||
100 | /* RSDT pointers are 32 bits, XSDT pointers are 64 bits */ | 91 | /* RSDT pointers are 32 bits, XSDT pointers are 64 bits */ |
101 | 92 | ||
102 | if (acpi_gbl_root_table_type == ACPI_TABLE_TYPE_RSDT) { | 93 | if (acpi_gbl_root_table_type == ACPI_TABLE_TYPE_RSDT) { |
103 | pointer_size = sizeof (u32); | 94 | pointer_size = sizeof(u32); |
104 | } | 95 | } else { |
105 | else { | 96 | pointer_size = sizeof(u64); |
106 | pointer_size = sizeof (u64); | ||
107 | } | 97 | } |
108 | 98 | ||
109 | /* | 99 | /* |
@@ -112,10 +102,10 @@ acpi_tb_get_table_count ( | |||
112 | * pointers contained within the RSDT/XSDT. The size of the pointers | 102 | * pointers contained within the RSDT/XSDT. The size of the pointers |
113 | * is architecture-dependent. | 103 | * is architecture-dependent. |
114 | */ | 104 | */ |
115 | return ((RSDT->length - sizeof (struct acpi_table_header)) / pointer_size); | 105 | return ((RSDT->length - |
106 | sizeof(struct acpi_table_header)) / pointer_size); | ||
116 | } | 107 | } |
117 | 108 | ||
118 | |||
119 | /******************************************************************************* | 109 | /******************************************************************************* |
120 | * | 110 | * |
121 | * FUNCTION: acpi_tb_convert_to_xsdt | 111 | * FUNCTION: acpi_tb_convert_to_xsdt |
@@ -128,33 +118,30 @@ acpi_tb_get_table_count ( | |||
128 | * | 118 | * |
129 | ******************************************************************************/ | 119 | ******************************************************************************/ |
130 | 120 | ||
131 | acpi_status | 121 | acpi_status acpi_tb_convert_to_xsdt(struct acpi_table_desc *table_info) |
132 | acpi_tb_convert_to_xsdt ( | ||
133 | struct acpi_table_desc *table_info) | ||
134 | { | 122 | { |
135 | acpi_size table_size; | 123 | acpi_size table_size; |
136 | u32 i; | 124 | u32 i; |
137 | XSDT_DESCRIPTOR *new_table; | 125 | XSDT_DESCRIPTOR *new_table; |
138 | |||
139 | |||
140 | ACPI_FUNCTION_ENTRY (); | ||
141 | 126 | ||
127 | ACPI_FUNCTION_ENTRY(); | ||
142 | 128 | ||
143 | /* Compute size of the converted XSDT */ | 129 | /* Compute size of the converted XSDT */ |
144 | 130 | ||
145 | table_size = ((acpi_size) acpi_gbl_rsdt_table_count * sizeof (u64)) + | 131 | table_size = ((acpi_size) acpi_gbl_rsdt_table_count * sizeof(u64)) + |
146 | sizeof (struct acpi_table_header); | 132 | sizeof(struct acpi_table_header); |
147 | 133 | ||
148 | /* Allocate an XSDT */ | 134 | /* Allocate an XSDT */ |
149 | 135 | ||
150 | new_table = ACPI_MEM_CALLOCATE (table_size); | 136 | new_table = ACPI_MEM_CALLOCATE(table_size); |
151 | if (!new_table) { | 137 | if (!new_table) { |
152 | return (AE_NO_MEMORY); | 138 | return (AE_NO_MEMORY); |
153 | } | 139 | } |
154 | 140 | ||
155 | /* Copy the header and set the length */ | 141 | /* Copy the header and set the length */ |
156 | 142 | ||
157 | ACPI_MEMCPY (new_table, table_info->pointer, sizeof (struct acpi_table_header)); | 143 | ACPI_MEMCPY(new_table, table_info->pointer, |
144 | sizeof(struct acpi_table_header)); | ||
158 | new_table->length = (u32) table_size; | 145 | new_table->length = (u32) table_size; |
159 | 146 | ||
160 | /* Copy the table pointers */ | 147 | /* Copy the table pointers */ |
@@ -163,31 +150,33 @@ acpi_tb_convert_to_xsdt ( | |||
163 | /* RSDT pointers are 32 bits, XSDT pointers are 64 bits */ | 150 | /* RSDT pointers are 32 bits, XSDT pointers are 64 bits */ |
164 | 151 | ||
165 | if (acpi_gbl_root_table_type == ACPI_TABLE_TYPE_RSDT) { | 152 | if (acpi_gbl_root_table_type == ACPI_TABLE_TYPE_RSDT) { |
166 | ACPI_STORE_ADDRESS (new_table->table_offset_entry[i], | 153 | ACPI_STORE_ADDRESS(new_table->table_offset_entry[i], |
167 | (ACPI_CAST_PTR (struct rsdt_descriptor_rev1, | 154 | (ACPI_CAST_PTR |
168 | table_info->pointer))->table_offset_entry[i]); | 155 | (struct rsdt_descriptor_rev1, |
169 | } | 156 | table_info->pointer))-> |
170 | else { | 157 | table_offset_entry[i]); |
158 | } else { | ||
171 | new_table->table_offset_entry[i] = | 159 | new_table->table_offset_entry[i] = |
172 | (ACPI_CAST_PTR (XSDT_DESCRIPTOR, | 160 | (ACPI_CAST_PTR(XSDT_DESCRIPTOR, |
173 | table_info->pointer))->table_offset_entry[i]; | 161 | table_info->pointer))-> |
162 | table_offset_entry[i]; | ||
174 | } | 163 | } |
175 | } | 164 | } |
176 | 165 | ||
177 | /* Delete the original table (either mapped or in a buffer) */ | 166 | /* Delete the original table (either mapped or in a buffer) */ |
178 | 167 | ||
179 | acpi_tb_delete_single_table (table_info); | 168 | acpi_tb_delete_single_table(table_info); |
180 | 169 | ||
181 | /* Point the table descriptor to the new table */ | 170 | /* Point the table descriptor to the new table */ |
182 | 171 | ||
183 | table_info->pointer = ACPI_CAST_PTR (struct acpi_table_header, new_table); | 172 | table_info->pointer = |
184 | table_info->length = table_size; | 173 | ACPI_CAST_PTR(struct acpi_table_header, new_table); |
185 | table_info->allocation = ACPI_MEM_ALLOCATED; | 174 | table_info->length = table_size; |
175 | table_info->allocation = ACPI_MEM_ALLOCATED; | ||
186 | 176 | ||
187 | return (AE_OK); | 177 | return (AE_OK); |
188 | } | 178 | } |
189 | 179 | ||
190 | |||
191 | /******************************************************************************* | 180 | /******************************************************************************* |
192 | * | 181 | * |
193 | * FUNCTION: acpi_tb_init_generic_address | 182 | * FUNCTION: acpi_tb_init_generic_address |
@@ -203,21 +192,19 @@ acpi_tb_convert_to_xsdt ( | |||
203 | ******************************************************************************/ | 192 | ******************************************************************************/ |
204 | 193 | ||
205 | static void | 194 | static void |
206 | acpi_tb_init_generic_address ( | 195 | acpi_tb_init_generic_address(struct acpi_generic_address *new_gas_struct, |
207 | struct acpi_generic_address *new_gas_struct, | 196 | u8 register_bit_width, |
208 | u8 register_bit_width, | 197 | acpi_physical_address address) |
209 | acpi_physical_address address) | ||
210 | { | 198 | { |
211 | 199 | ||
212 | ACPI_STORE_ADDRESS (new_gas_struct->address, address); | 200 | ACPI_STORE_ADDRESS(new_gas_struct->address, address); |
213 | 201 | ||
214 | new_gas_struct->address_space_id = ACPI_ADR_SPACE_SYSTEM_IO; | 202 | new_gas_struct->address_space_id = ACPI_ADR_SPACE_SYSTEM_IO; |
215 | new_gas_struct->register_bit_width = register_bit_width; | 203 | new_gas_struct->register_bit_width = register_bit_width; |
216 | new_gas_struct->register_bit_offset = 0; | 204 | new_gas_struct->register_bit_offset = 0; |
217 | new_gas_struct->access_width = 0; | 205 | new_gas_struct->access_width = 0; |
218 | } | 206 | } |
219 | 207 | ||
220 | |||
221 | /******************************************************************************* | 208 | /******************************************************************************* |
222 | * | 209 | * |
223 | * FUNCTION: acpi_tb_convert_fadt1 | 210 | * FUNCTION: acpi_tb_convert_fadt1 |
@@ -232,9 +219,8 @@ acpi_tb_init_generic_address ( | |||
232 | ******************************************************************************/ | 219 | ******************************************************************************/ |
233 | 220 | ||
234 | static void | 221 | static void |
235 | acpi_tb_convert_fadt1 ( | 222 | acpi_tb_convert_fadt1(struct fadt_descriptor_rev2 *local_fadt, |
236 | struct fadt_descriptor_rev2 *local_fadt, | 223 | struct fadt_descriptor_rev1 *original_fadt) |
237 | struct fadt_descriptor_rev1 *original_fadt) | ||
238 | { | 224 | { |
239 | 225 | ||
240 | /* ACPI 1.0 FACS */ | 226 | /* ACPI 1.0 FACS */ |
@@ -247,12 +233,14 @@ acpi_tb_convert_fadt1 ( | |||
247 | * The 2.0 table is an extension of the 1.0 table, so the entire 1.0 | 233 | * The 2.0 table is an extension of the 1.0 table, so the entire 1.0 |
248 | * table can be copied first, then expand some fields to 64 bits. | 234 | * table can be copied first, then expand some fields to 64 bits. |
249 | */ | 235 | */ |
250 | ACPI_MEMCPY (local_fadt, original_fadt, sizeof (struct fadt_descriptor_rev1)); | 236 | ACPI_MEMCPY(local_fadt, original_fadt, |
237 | sizeof(struct fadt_descriptor_rev1)); | ||
251 | 238 | ||
252 | /* Convert table pointers to 64-bit fields */ | 239 | /* Convert table pointers to 64-bit fields */ |
253 | 240 | ||
254 | ACPI_STORE_ADDRESS (local_fadt->xfirmware_ctrl, local_fadt->V1_firmware_ctrl); | 241 | ACPI_STORE_ADDRESS(local_fadt->xfirmware_ctrl, |
255 | ACPI_STORE_ADDRESS (local_fadt->Xdsdt, local_fadt->V1_dsdt); | 242 | local_fadt->V1_firmware_ctrl); |
243 | ACPI_STORE_ADDRESS(local_fadt->Xdsdt, local_fadt->V1_dsdt); | ||
256 | 244 | ||
257 | /* | 245 | /* |
258 | * System Interrupt Model isn't used in ACPI 2.0 | 246 | * System Interrupt Model isn't used in ACPI 2.0 |
@@ -287,17 +275,17 @@ acpi_tb_convert_fadt1 ( | |||
287 | * It primarily adds the FADT reset mechanism. | 275 | * It primarily adds the FADT reset mechanism. |
288 | */ | 276 | */ |
289 | if ((original_fadt->revision == 2) && | 277 | if ((original_fadt->revision == 2) && |
290 | (original_fadt->length == sizeof (struct fadt_descriptor_rev2_minus))) { | 278 | (original_fadt->length == |
279 | sizeof(struct fadt_descriptor_rev2_minus))) { | ||
291 | /* | 280 | /* |
292 | * Grab the entire generic address struct, plus the 1-byte reset value | 281 | * Grab the entire generic address struct, plus the 1-byte reset value |
293 | * that immediately follows. | 282 | * that immediately follows. |
294 | */ | 283 | */ |
295 | ACPI_MEMCPY (&local_fadt->reset_register, | 284 | ACPI_MEMCPY(&local_fadt->reset_register, |
296 | &(ACPI_CAST_PTR (struct fadt_descriptor_rev2_minus, | 285 | &(ACPI_CAST_PTR(struct fadt_descriptor_rev2_minus, |
297 | original_fadt))->reset_register, | 286 | original_fadt))->reset_register, |
298 | sizeof (struct acpi_generic_address) + 1); | 287 | sizeof(struct acpi_generic_address) + 1); |
299 | } | 288 | } else { |
300 | else { | ||
301 | /* | 289 | /* |
302 | * Since there isn't any equivalence in 1.0 and since it is highly | 290 | * Since there isn't any equivalence in 1.0 and since it is highly |
303 | * likely that a 1.0 system has legacy support. | 291 | * likely that a 1.0 system has legacy support. |
@@ -308,43 +296,60 @@ acpi_tb_convert_fadt1 ( | |||
308 | /* | 296 | /* |
309 | * Convert the V1.0 block addresses to V2.0 GAS structures | 297 | * Convert the V1.0 block addresses to V2.0 GAS structures |
310 | */ | 298 | */ |
311 | acpi_tb_init_generic_address (&local_fadt->xpm1a_evt_blk, local_fadt->pm1_evt_len, | 299 | acpi_tb_init_generic_address(&local_fadt->xpm1a_evt_blk, |
312 | (acpi_physical_address) local_fadt->V1_pm1a_evt_blk); | 300 | local_fadt->pm1_evt_len, |
313 | acpi_tb_init_generic_address (&local_fadt->xpm1b_evt_blk, local_fadt->pm1_evt_len, | 301 | (acpi_physical_address) local_fadt-> |
314 | (acpi_physical_address) local_fadt->V1_pm1b_evt_blk); | 302 | V1_pm1a_evt_blk); |
315 | acpi_tb_init_generic_address (&local_fadt->xpm1a_cnt_blk, local_fadt->pm1_cnt_len, | 303 | acpi_tb_init_generic_address(&local_fadt->xpm1b_evt_blk, |
316 | (acpi_physical_address) local_fadt->V1_pm1a_cnt_blk); | 304 | local_fadt->pm1_evt_len, |
317 | acpi_tb_init_generic_address (&local_fadt->xpm1b_cnt_blk, local_fadt->pm1_cnt_len, | 305 | (acpi_physical_address) local_fadt-> |
318 | (acpi_physical_address) local_fadt->V1_pm1b_cnt_blk); | 306 | V1_pm1b_evt_blk); |
319 | acpi_tb_init_generic_address (&local_fadt->xpm2_cnt_blk, local_fadt->pm2_cnt_len, | 307 | acpi_tb_init_generic_address(&local_fadt->xpm1a_cnt_blk, |
320 | (acpi_physical_address) local_fadt->V1_pm2_cnt_blk); | 308 | local_fadt->pm1_cnt_len, |
321 | acpi_tb_init_generic_address (&local_fadt->xpm_tmr_blk, local_fadt->pm_tm_len, | 309 | (acpi_physical_address) local_fadt-> |
322 | (acpi_physical_address) local_fadt->V1_pm_tmr_blk); | 310 | V1_pm1a_cnt_blk); |
323 | acpi_tb_init_generic_address (&local_fadt->xgpe0_blk, 0, | 311 | acpi_tb_init_generic_address(&local_fadt->xpm1b_cnt_blk, |
324 | (acpi_physical_address) local_fadt->V1_gpe0_blk); | 312 | local_fadt->pm1_cnt_len, |
325 | acpi_tb_init_generic_address (&local_fadt->xgpe1_blk, 0, | 313 | (acpi_physical_address) local_fadt-> |
326 | (acpi_physical_address) local_fadt->V1_gpe1_blk); | 314 | V1_pm1b_cnt_blk); |
315 | acpi_tb_init_generic_address(&local_fadt->xpm2_cnt_blk, | ||
316 | local_fadt->pm2_cnt_len, | ||
317 | (acpi_physical_address) local_fadt-> | ||
318 | V1_pm2_cnt_blk); | ||
319 | acpi_tb_init_generic_address(&local_fadt->xpm_tmr_blk, | ||
320 | local_fadt->pm_tm_len, | ||
321 | (acpi_physical_address) local_fadt-> | ||
322 | V1_pm_tmr_blk); | ||
323 | acpi_tb_init_generic_address(&local_fadt->xgpe0_blk, 0, | ||
324 | (acpi_physical_address) local_fadt-> | ||
325 | V1_gpe0_blk); | ||
326 | acpi_tb_init_generic_address(&local_fadt->xgpe1_blk, 0, | ||
327 | (acpi_physical_address) local_fadt-> | ||
328 | V1_gpe1_blk); | ||
327 | 329 | ||
328 | /* Create separate GAS structs for the PM1 Enable registers */ | 330 | /* Create separate GAS structs for the PM1 Enable registers */ |
329 | 331 | ||
330 | acpi_tb_init_generic_address (&acpi_gbl_xpm1a_enable, | 332 | acpi_tb_init_generic_address(&acpi_gbl_xpm1a_enable, |
331 | (u8) ACPI_DIV_2 (acpi_gbl_FADT->pm1_evt_len), | 333 | (u8) ACPI_DIV_2(acpi_gbl_FADT-> |
332 | (acpi_physical_address) | 334 | pm1_evt_len), |
333 | (local_fadt->xpm1a_evt_blk.address + | 335 | (acpi_physical_address) |
334 | ACPI_DIV_2 (acpi_gbl_FADT->pm1_evt_len))); | 336 | (local_fadt->xpm1a_evt_blk.address + |
337 | ACPI_DIV_2(acpi_gbl_FADT->pm1_evt_len))); | ||
335 | 338 | ||
336 | /* PM1B is optional; leave null if not present */ | 339 | /* PM1B is optional; leave null if not present */ |
337 | 340 | ||
338 | if (local_fadt->xpm1b_evt_blk.address) { | 341 | if (local_fadt->xpm1b_evt_blk.address) { |
339 | acpi_tb_init_generic_address (&acpi_gbl_xpm1b_enable, | 342 | acpi_tb_init_generic_address(&acpi_gbl_xpm1b_enable, |
340 | (u8) ACPI_DIV_2 (acpi_gbl_FADT->pm1_evt_len), | 343 | (u8) ACPI_DIV_2(acpi_gbl_FADT-> |
341 | (acpi_physical_address) | 344 | pm1_evt_len), |
342 | (local_fadt->xpm1b_evt_blk.address + | 345 | (acpi_physical_address) |
343 | ACPI_DIV_2 (acpi_gbl_FADT->pm1_evt_len))); | 346 | (local_fadt->xpm1b_evt_blk. |
347 | address + | ||
348 | ACPI_DIV_2(acpi_gbl_FADT-> | ||
349 | pm1_evt_len))); | ||
344 | } | 350 | } |
345 | } | 351 | } |
346 | 352 | ||
347 | |||
348 | /******************************************************************************* | 353 | /******************************************************************************* |
349 | * | 354 | * |
350 | * FUNCTION: acpi_tb_convert_fadt2 | 355 | * FUNCTION: acpi_tb_convert_fadt2 |
@@ -360,14 +365,14 @@ acpi_tb_convert_fadt1 ( | |||
360 | ******************************************************************************/ | 365 | ******************************************************************************/ |
361 | 366 | ||
362 | static void | 367 | static void |
363 | acpi_tb_convert_fadt2 ( | 368 | acpi_tb_convert_fadt2(struct fadt_descriptor_rev2 *local_fadt, |
364 | struct fadt_descriptor_rev2 *local_fadt, | 369 | struct fadt_descriptor_rev2 *original_fadt) |
365 | struct fadt_descriptor_rev2 *original_fadt) | ||
366 | { | 370 | { |
367 | 371 | ||
368 | /* We have an ACPI 2.0 FADT but we must copy it to our local buffer */ | 372 | /* We have an ACPI 2.0 FADT but we must copy it to our local buffer */ |
369 | 373 | ||
370 | ACPI_MEMCPY (local_fadt, original_fadt, sizeof (struct fadt_descriptor_rev2)); | 374 | ACPI_MEMCPY(local_fadt, original_fadt, |
375 | sizeof(struct fadt_descriptor_rev2)); | ||
371 | 376 | ||
372 | /* | 377 | /* |
373 | * "X" fields are optional extensions to the original V1.0 fields, so | 378 | * "X" fields are optional extensions to the original V1.0 fields, so |
@@ -375,86 +380,99 @@ acpi_tb_convert_fadt2 ( | |||
375 | * is zero. | 380 | * is zero. |
376 | */ | 381 | */ |
377 | if (!(local_fadt->xfirmware_ctrl)) { | 382 | if (!(local_fadt->xfirmware_ctrl)) { |
378 | ACPI_STORE_ADDRESS (local_fadt->xfirmware_ctrl, | 383 | ACPI_STORE_ADDRESS(local_fadt->xfirmware_ctrl, |
379 | local_fadt->V1_firmware_ctrl); | 384 | local_fadt->V1_firmware_ctrl); |
380 | } | 385 | } |
381 | 386 | ||
382 | if (!(local_fadt->Xdsdt)) { | 387 | if (!(local_fadt->Xdsdt)) { |
383 | ACPI_STORE_ADDRESS (local_fadt->Xdsdt, local_fadt->V1_dsdt); | 388 | ACPI_STORE_ADDRESS(local_fadt->Xdsdt, local_fadt->V1_dsdt); |
384 | } | 389 | } |
385 | 390 | ||
386 | if (!(local_fadt->xpm1a_evt_blk.address)) { | 391 | if (!(local_fadt->xpm1a_evt_blk.address)) { |
387 | acpi_tb_init_generic_address (&local_fadt->xpm1a_evt_blk, | 392 | acpi_tb_init_generic_address(&local_fadt->xpm1a_evt_blk, |
388 | local_fadt->pm1_evt_len, | 393 | local_fadt->pm1_evt_len, |
389 | (acpi_physical_address) local_fadt->V1_pm1a_evt_blk); | 394 | (acpi_physical_address) |
395 | local_fadt->V1_pm1a_evt_blk); | ||
390 | } | 396 | } |
391 | 397 | ||
392 | if (!(local_fadt->xpm1b_evt_blk.address)) { | 398 | if (!(local_fadt->xpm1b_evt_blk.address)) { |
393 | acpi_tb_init_generic_address (&local_fadt->xpm1b_evt_blk, | 399 | acpi_tb_init_generic_address(&local_fadt->xpm1b_evt_blk, |
394 | local_fadt->pm1_evt_len, | 400 | local_fadt->pm1_evt_len, |
395 | (acpi_physical_address) local_fadt->V1_pm1b_evt_blk); | 401 | (acpi_physical_address) |
402 | local_fadt->V1_pm1b_evt_blk); | ||
396 | } | 403 | } |
397 | 404 | ||
398 | if (!(local_fadt->xpm1a_cnt_blk.address)) { | 405 | if (!(local_fadt->xpm1a_cnt_blk.address)) { |
399 | acpi_tb_init_generic_address (&local_fadt->xpm1a_cnt_blk, | 406 | acpi_tb_init_generic_address(&local_fadt->xpm1a_cnt_blk, |
400 | local_fadt->pm1_cnt_len, | 407 | local_fadt->pm1_cnt_len, |
401 | (acpi_physical_address) local_fadt->V1_pm1a_cnt_blk); | 408 | (acpi_physical_address) |
409 | local_fadt->V1_pm1a_cnt_blk); | ||
402 | } | 410 | } |
403 | 411 | ||
404 | if (!(local_fadt->xpm1b_cnt_blk.address)) { | 412 | if (!(local_fadt->xpm1b_cnt_blk.address)) { |
405 | acpi_tb_init_generic_address (&local_fadt->xpm1b_cnt_blk, | 413 | acpi_tb_init_generic_address(&local_fadt->xpm1b_cnt_blk, |
406 | local_fadt->pm1_cnt_len, | 414 | local_fadt->pm1_cnt_len, |
407 | (acpi_physical_address) local_fadt->V1_pm1b_cnt_blk); | 415 | (acpi_physical_address) |
416 | local_fadt->V1_pm1b_cnt_blk); | ||
408 | } | 417 | } |
409 | 418 | ||
410 | if (!(local_fadt->xpm2_cnt_blk.address)) { | 419 | if (!(local_fadt->xpm2_cnt_blk.address)) { |
411 | acpi_tb_init_generic_address (&local_fadt->xpm2_cnt_blk, | 420 | acpi_tb_init_generic_address(&local_fadt->xpm2_cnt_blk, |
412 | local_fadt->pm2_cnt_len, | 421 | local_fadt->pm2_cnt_len, |
413 | (acpi_physical_address) local_fadt->V1_pm2_cnt_blk); | 422 | (acpi_physical_address) |
423 | local_fadt->V1_pm2_cnt_blk); | ||
414 | } | 424 | } |
415 | 425 | ||
416 | if (!(local_fadt->xpm_tmr_blk.address)) { | 426 | if (!(local_fadt->xpm_tmr_blk.address)) { |
417 | acpi_tb_init_generic_address (&local_fadt->xpm_tmr_blk, | 427 | acpi_tb_init_generic_address(&local_fadt->xpm_tmr_blk, |
418 | local_fadt->pm_tm_len, | 428 | local_fadt->pm_tm_len, |
419 | (acpi_physical_address) local_fadt->V1_pm_tmr_blk); | 429 | (acpi_physical_address) |
430 | local_fadt->V1_pm_tmr_blk); | ||
420 | } | 431 | } |
421 | 432 | ||
422 | if (!(local_fadt->xgpe0_blk.address)) { | 433 | if (!(local_fadt->xgpe0_blk.address)) { |
423 | acpi_tb_init_generic_address (&local_fadt->xgpe0_blk, | 434 | acpi_tb_init_generic_address(&local_fadt->xgpe0_blk, |
424 | 0, (acpi_physical_address) local_fadt->V1_gpe0_blk); | 435 | 0, |
436 | (acpi_physical_address) | ||
437 | local_fadt->V1_gpe0_blk); | ||
425 | } | 438 | } |
426 | 439 | ||
427 | if (!(local_fadt->xgpe1_blk.address)) { | 440 | if (!(local_fadt->xgpe1_blk.address)) { |
428 | acpi_tb_init_generic_address (&local_fadt->xgpe1_blk, | 441 | acpi_tb_init_generic_address(&local_fadt->xgpe1_blk, |
429 | 0, (acpi_physical_address) local_fadt->V1_gpe1_blk); | 442 | 0, |
443 | (acpi_physical_address) | ||
444 | local_fadt->V1_gpe1_blk); | ||
430 | } | 445 | } |
431 | 446 | ||
432 | /* Create separate GAS structs for the PM1 Enable registers */ | 447 | /* Create separate GAS structs for the PM1 Enable registers */ |
433 | 448 | ||
434 | acpi_tb_init_generic_address (&acpi_gbl_xpm1a_enable, | 449 | acpi_tb_init_generic_address(&acpi_gbl_xpm1a_enable, |
435 | (u8) ACPI_DIV_2 (acpi_gbl_FADT->pm1_evt_len), | 450 | (u8) ACPI_DIV_2(acpi_gbl_FADT-> |
436 | (acpi_physical_address) | 451 | pm1_evt_len), |
437 | (local_fadt->xpm1a_evt_blk.address + | 452 | (acpi_physical_address) |
438 | ACPI_DIV_2 (acpi_gbl_FADT->pm1_evt_len))); | 453 | (local_fadt->xpm1a_evt_blk.address + |
454 | ACPI_DIV_2(acpi_gbl_FADT->pm1_evt_len))); | ||
439 | 455 | ||
440 | acpi_gbl_xpm1a_enable.address_space_id = | 456 | acpi_gbl_xpm1a_enable.address_space_id = |
441 | local_fadt->xpm1a_evt_blk.address_space_id; | 457 | local_fadt->xpm1a_evt_blk.address_space_id; |
442 | 458 | ||
443 | /* PM1B is optional; leave null if not present */ | 459 | /* PM1B is optional; leave null if not present */ |
444 | 460 | ||
445 | if (local_fadt->xpm1b_evt_blk.address) { | 461 | if (local_fadt->xpm1b_evt_blk.address) { |
446 | acpi_tb_init_generic_address (&acpi_gbl_xpm1b_enable, | 462 | acpi_tb_init_generic_address(&acpi_gbl_xpm1b_enable, |
447 | (u8) ACPI_DIV_2 (acpi_gbl_FADT->pm1_evt_len), | 463 | (u8) ACPI_DIV_2(acpi_gbl_FADT-> |
448 | (acpi_physical_address) | 464 | pm1_evt_len), |
449 | (local_fadt->xpm1b_evt_blk.address + | 465 | (acpi_physical_address) |
450 | ACPI_DIV_2 (acpi_gbl_FADT->pm1_evt_len))); | 466 | (local_fadt->xpm1b_evt_blk. |
467 | address + | ||
468 | ACPI_DIV_2(acpi_gbl_FADT-> | ||
469 | pm1_evt_len))); | ||
451 | 470 | ||
452 | acpi_gbl_xpm1b_enable.address_space_id = | 471 | acpi_gbl_xpm1b_enable.address_space_id = |
453 | local_fadt->xpm1b_evt_blk.address_space_id; | 472 | local_fadt->xpm1b_evt_blk.address_space_id; |
454 | } | 473 | } |
455 | } | 474 | } |
456 | 475 | ||
457 | |||
458 | /******************************************************************************* | 476 | /******************************************************************************* |
459 | * | 477 | * |
460 | * FUNCTION: acpi_tb_convert_table_fadt | 478 | * FUNCTION: acpi_tb_convert_table_fadt |
@@ -471,83 +489,76 @@ acpi_tb_convert_fadt2 ( | |||
471 | * | 489 | * |
472 | ******************************************************************************/ | 490 | ******************************************************************************/ |
473 | 491 | ||
474 | acpi_status | 492 | acpi_status acpi_tb_convert_table_fadt(void) |
475 | acpi_tb_convert_table_fadt ( | ||
476 | void) | ||
477 | { | 493 | { |
478 | struct fadt_descriptor_rev2 *local_fadt; | 494 | struct fadt_descriptor_rev2 *local_fadt; |
479 | struct acpi_table_desc *table_desc; | 495 | struct acpi_table_desc *table_desc; |
480 | |||
481 | |||
482 | ACPI_FUNCTION_TRACE ("tb_convert_table_fadt"); | ||
483 | 496 | ||
497 | ACPI_FUNCTION_TRACE("tb_convert_table_fadt"); | ||
484 | 498 | ||
485 | /* | 499 | /* |
486 | * acpi_gbl_FADT is valid. Validate the FADT length. The table must be | 500 | * acpi_gbl_FADT is valid. Validate the FADT length. The table must be |
487 | * at least as long as the version 1.0 FADT | 501 | * at least as long as the version 1.0 FADT |
488 | */ | 502 | */ |
489 | if (acpi_gbl_FADT->length < sizeof (struct fadt_descriptor_rev1)) { | 503 | if (acpi_gbl_FADT->length < sizeof(struct fadt_descriptor_rev1)) { |
490 | ACPI_REPORT_ERROR (("FADT is invalid, too short: 0x%X\n", | 504 | ACPI_REPORT_ERROR(("FADT is invalid, too short: 0x%X\n", |
491 | acpi_gbl_FADT->length)); | 505 | acpi_gbl_FADT->length)); |
492 | return_ACPI_STATUS (AE_INVALID_TABLE_LENGTH); | 506 | return_ACPI_STATUS(AE_INVALID_TABLE_LENGTH); |
493 | } | 507 | } |
494 | 508 | ||
495 | /* Allocate buffer for the ACPI 2.0(+) FADT */ | 509 | /* Allocate buffer for the ACPI 2.0(+) FADT */ |
496 | 510 | ||
497 | local_fadt = ACPI_MEM_CALLOCATE (sizeof (struct fadt_descriptor_rev2)); | 511 | local_fadt = ACPI_MEM_CALLOCATE(sizeof(struct fadt_descriptor_rev2)); |
498 | if (!local_fadt) { | 512 | if (!local_fadt) { |
499 | return_ACPI_STATUS (AE_NO_MEMORY); | 513 | return_ACPI_STATUS(AE_NO_MEMORY); |
500 | } | 514 | } |
501 | 515 | ||
502 | if (acpi_gbl_FADT->revision >= FADT2_REVISION_ID) { | 516 | if (acpi_gbl_FADT->revision >= FADT2_REVISION_ID) { |
503 | if (acpi_gbl_FADT->length < sizeof (struct fadt_descriptor_rev2)) { | 517 | if (acpi_gbl_FADT->length < sizeof(struct fadt_descriptor_rev2)) { |
504 | /* Length is too short to be a V2.0 table */ | 518 | /* Length is too short to be a V2.0 table */ |
505 | 519 | ||
506 | ACPI_REPORT_WARNING (( | 520 | ACPI_REPORT_WARNING(("Inconsistent FADT length (0x%X) and revision (0x%X), using FADT V1.0 portion of table\n", acpi_gbl_FADT->length, acpi_gbl_FADT->revision)); |
507 | "Inconsistent FADT length (0x%X) and revision (0x%X), using FADT V1.0 portion of table\n", | ||
508 | acpi_gbl_FADT->length, acpi_gbl_FADT->revision)); | ||
509 | 521 | ||
510 | acpi_tb_convert_fadt1 (local_fadt, (void *) acpi_gbl_FADT); | 522 | acpi_tb_convert_fadt1(local_fadt, |
511 | } | 523 | (void *)acpi_gbl_FADT); |
512 | else { | 524 | } else { |
513 | /* Valid V2.0 table */ | 525 | /* Valid V2.0 table */ |
514 | 526 | ||
515 | acpi_tb_convert_fadt2 (local_fadt, acpi_gbl_FADT); | 527 | acpi_tb_convert_fadt2(local_fadt, acpi_gbl_FADT); |
516 | } | 528 | } |
517 | } | 529 | } else { |
518 | else { | ||
519 | /* Valid V1.0 table */ | 530 | /* Valid V1.0 table */ |
520 | 531 | ||
521 | acpi_tb_convert_fadt1 (local_fadt, (void *) acpi_gbl_FADT); | 532 | acpi_tb_convert_fadt1(local_fadt, (void *)acpi_gbl_FADT); |
522 | } | 533 | } |
523 | 534 | ||
524 | /* Global FADT pointer will point to the new common V2.0 FADT */ | 535 | /* Global FADT pointer will point to the new common V2.0 FADT */ |
525 | 536 | ||
526 | acpi_gbl_FADT = local_fadt; | 537 | acpi_gbl_FADT = local_fadt; |
527 | acpi_gbl_FADT->length = sizeof (FADT_DESCRIPTOR); | 538 | acpi_gbl_FADT->length = sizeof(FADT_DESCRIPTOR); |
528 | 539 | ||
529 | /* Free the original table */ | 540 | /* Free the original table */ |
530 | 541 | ||
531 | table_desc = acpi_gbl_table_lists[ACPI_TABLE_FADT].next; | 542 | table_desc = acpi_gbl_table_lists[ACPI_TABLE_FADT].next; |
532 | acpi_tb_delete_single_table (table_desc); | 543 | acpi_tb_delete_single_table(table_desc); |
533 | 544 | ||
534 | /* Install the new table */ | 545 | /* Install the new table */ |
535 | 546 | ||
536 | table_desc->pointer = ACPI_CAST_PTR (struct acpi_table_header, acpi_gbl_FADT); | 547 | table_desc->pointer = |
537 | table_desc->allocation = ACPI_MEM_ALLOCATED; | 548 | ACPI_CAST_PTR(struct acpi_table_header, acpi_gbl_FADT); |
538 | table_desc->length = sizeof (struct fadt_descriptor_rev2); | 549 | table_desc->allocation = ACPI_MEM_ALLOCATED; |
550 | table_desc->length = sizeof(struct fadt_descriptor_rev2); | ||
539 | 551 | ||
540 | /* Dump the entire FADT */ | 552 | /* Dump the entire FADT */ |
541 | 553 | ||
542 | ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, | 554 | ACPI_DEBUG_PRINT((ACPI_DB_TABLES, |
543 | "Hex dump of common internal FADT, size %d (%X)\n", | 555 | "Hex dump of common internal FADT, size %d (%X)\n", |
544 | acpi_gbl_FADT->length, acpi_gbl_FADT->length)); | 556 | acpi_gbl_FADT->length, acpi_gbl_FADT->length)); |
545 | ACPI_DUMP_BUFFER ((u8 *) (acpi_gbl_FADT), acpi_gbl_FADT->length); | 557 | ACPI_DUMP_BUFFER((u8 *) (acpi_gbl_FADT), acpi_gbl_FADT->length); |
546 | 558 | ||
547 | return_ACPI_STATUS (AE_OK); | 559 | return_ACPI_STATUS(AE_OK); |
548 | } | 560 | } |
549 | 561 | ||
550 | |||
551 | /******************************************************************************* | 562 | /******************************************************************************* |
552 | * | 563 | * |
553 | * FUNCTION: acpi_tb_build_common_facs | 564 | * FUNCTION: acpi_tb_build_common_facs |
@@ -561,26 +572,21 @@ acpi_tb_convert_table_fadt ( | |||
561 | * | 572 | * |
562 | ******************************************************************************/ | 573 | ******************************************************************************/ |
563 | 574 | ||
564 | acpi_status | 575 | acpi_status acpi_tb_build_common_facs(struct acpi_table_desc *table_info) |
565 | acpi_tb_build_common_facs ( | ||
566 | struct acpi_table_desc *table_info) | ||
567 | { | 576 | { |
568 | 577 | ||
569 | ACPI_FUNCTION_TRACE ("tb_build_common_facs"); | 578 | ACPI_FUNCTION_TRACE("tb_build_common_facs"); |
570 | |||
571 | 579 | ||
572 | /* Absolute minimum length is 24, but the ACPI spec says 64 */ | 580 | /* Absolute minimum length is 24, but the ACPI spec says 64 */ |
573 | 581 | ||
574 | if (acpi_gbl_FACS->length < 24) { | 582 | if (acpi_gbl_FACS->length < 24) { |
575 | ACPI_REPORT_ERROR (("Invalid FACS table length: 0x%X\n", | 583 | ACPI_REPORT_ERROR(("Invalid FACS table length: 0x%X\n", |
576 | acpi_gbl_FACS->length)); | 584 | acpi_gbl_FACS->length)); |
577 | return_ACPI_STATUS (AE_INVALID_TABLE_LENGTH); | 585 | return_ACPI_STATUS(AE_INVALID_TABLE_LENGTH); |
578 | } | 586 | } |
579 | 587 | ||
580 | if (acpi_gbl_FACS->length < 64) { | 588 | if (acpi_gbl_FACS->length < 64) { |
581 | ACPI_REPORT_WARNING (( | 589 | ACPI_REPORT_WARNING(("FACS is shorter than the ACPI specification allows: 0x%X, using anyway\n", acpi_gbl_FACS->length)); |
582 | "FACS is shorter than the ACPI specification allows: 0x%X, using anyway\n", | ||
583 | acpi_gbl_FACS->length)); | ||
584 | } | 590 | } |
585 | 591 | ||
586 | /* Copy fields to the new FACS */ | 592 | /* Copy fields to the new FACS */ |
@@ -588,22 +594,22 @@ acpi_tb_build_common_facs ( | |||
588 | acpi_gbl_common_fACS.global_lock = &(acpi_gbl_FACS->global_lock); | 594 | acpi_gbl_common_fACS.global_lock = &(acpi_gbl_FACS->global_lock); |
589 | 595 | ||
590 | if ((acpi_gbl_RSDP->revision < 2) || | 596 | if ((acpi_gbl_RSDP->revision < 2) || |
591 | (acpi_gbl_FACS->length < 32) || | 597 | (acpi_gbl_FACS->length < 32) || |
592 | (!(acpi_gbl_FACS->xfirmware_waking_vector))) { | 598 | (!(acpi_gbl_FACS->xfirmware_waking_vector))) { |
593 | /* ACPI 1.0 FACS or short table or optional X_ field is zero */ | 599 | /* ACPI 1.0 FACS or short table or optional X_ field is zero */ |
594 | 600 | ||
595 | acpi_gbl_common_fACS.firmware_waking_vector = ACPI_CAST_PTR (u64, | 601 | acpi_gbl_common_fACS.firmware_waking_vector = ACPI_CAST_PTR(u64, |
596 | &(acpi_gbl_FACS->firmware_waking_vector)); | 602 | & |
603 | (acpi_gbl_FACS-> | ||
604 | firmware_waking_vector)); | ||
597 | acpi_gbl_common_fACS.vector_width = 32; | 605 | acpi_gbl_common_fACS.vector_width = 32; |
598 | } | 606 | } else { |
599 | else { | ||
600 | /* ACPI 2.0 FACS with valid X_ field */ | 607 | /* ACPI 2.0 FACS with valid X_ field */ |
601 | 608 | ||
602 | acpi_gbl_common_fACS.firmware_waking_vector = &acpi_gbl_FACS->xfirmware_waking_vector; | 609 | acpi_gbl_common_fACS.firmware_waking_vector = |
610 | &acpi_gbl_FACS->xfirmware_waking_vector; | ||
603 | acpi_gbl_common_fACS.vector_width = 64; | 611 | acpi_gbl_common_fACS.vector_width = 64; |
604 | } | 612 | } |
605 | 613 | ||
606 | return_ACPI_STATUS (AE_OK); | 614 | return_ACPI_STATUS(AE_OK); |
607 | } | 615 | } |
608 | |||
609 | |||
diff --git a/drivers/acpi/tables/tbget.c b/drivers/acpi/tables/tbget.c index 4ab2aadc6133..6acd5aeb093e 100644 --- a/drivers/acpi/tables/tbget.c +++ b/drivers/acpi/tables/tbget.c | |||
@@ -41,27 +41,21 @@ | |||
41 | * POSSIBILITY OF SUCH DAMAGES. | 41 | * POSSIBILITY OF SUCH DAMAGES. |
42 | */ | 42 | */ |
43 | 43 | ||
44 | |||
45 | #include <acpi/acpi.h> | 44 | #include <acpi/acpi.h> |
46 | #include <acpi/actables.h> | 45 | #include <acpi/actables.h> |
47 | 46 | ||
48 | |||
49 | #define _COMPONENT ACPI_TABLES | 47 | #define _COMPONENT ACPI_TABLES |
50 | ACPI_MODULE_NAME ("tbget") | 48 | ACPI_MODULE_NAME("tbget") |
51 | 49 | ||
52 | /* Local prototypes */ | 50 | /* Local prototypes */ |
53 | |||
54 | static acpi_status | 51 | static acpi_status |
55 | acpi_tb_get_this_table ( | 52 | acpi_tb_get_this_table(struct acpi_pointer *address, |
56 | struct acpi_pointer *address, | 53 | struct acpi_table_header *header, |
57 | struct acpi_table_header *header, | 54 | struct acpi_table_desc *table_info); |
58 | struct acpi_table_desc *table_info); | ||
59 | 55 | ||
60 | static acpi_status | 56 | static acpi_status |
61 | acpi_tb_table_override ( | 57 | acpi_tb_table_override(struct acpi_table_header *header, |
62 | struct acpi_table_header *header, | 58 | struct acpi_table_desc *table_info); |
63 | struct acpi_table_desc *table_info); | ||
64 | |||
65 | 59 | ||
66 | /******************************************************************************* | 60 | /******************************************************************************* |
67 | * | 61 | * |
@@ -78,37 +72,34 @@ acpi_tb_table_override ( | |||
78 | ******************************************************************************/ | 72 | ******************************************************************************/ |
79 | 73 | ||
80 | acpi_status | 74 | acpi_status |
81 | acpi_tb_get_table ( | 75 | acpi_tb_get_table(struct acpi_pointer *address, |
82 | struct acpi_pointer *address, | 76 | struct acpi_table_desc *table_info) |
83 | struct acpi_table_desc *table_info) | ||
84 | { | 77 | { |
85 | acpi_status status; | 78 | acpi_status status; |
86 | struct acpi_table_header header; | 79 | struct acpi_table_header header; |
87 | |||
88 | |||
89 | ACPI_FUNCTION_TRACE ("tb_get_table"); | ||
90 | 80 | ||
81 | ACPI_FUNCTION_TRACE("tb_get_table"); | ||
91 | 82 | ||
92 | /* Get the header in order to get signature and table size */ | 83 | /* Get the header in order to get signature and table size */ |
93 | 84 | ||
94 | status = acpi_tb_get_table_header (address, &header); | 85 | status = acpi_tb_get_table_header(address, &header); |
95 | if (ACPI_FAILURE (status)) { | 86 | if (ACPI_FAILURE(status)) { |
96 | return_ACPI_STATUS (status); | 87 | return_ACPI_STATUS(status); |
97 | } | 88 | } |
98 | 89 | ||
99 | /* Get the entire table */ | 90 | /* Get the entire table */ |
100 | 91 | ||
101 | status = acpi_tb_get_table_body (address, &header, table_info); | 92 | status = acpi_tb_get_table_body(address, &header, table_info); |
102 | if (ACPI_FAILURE (status)) { | 93 | if (ACPI_FAILURE(status)) { |
103 | ACPI_REPORT_ERROR (("Could not get ACPI table (size %X), %s\n", | 94 | ACPI_REPORT_ERROR(("Could not get ACPI table (size %X), %s\n", |
104 | header.length, acpi_format_exception (status))); | 95 | header.length, |
105 | return_ACPI_STATUS (status); | 96 | acpi_format_exception(status))); |
97 | return_ACPI_STATUS(status); | ||
106 | } | 98 | } |
107 | 99 | ||
108 | return_ACPI_STATUS (AE_OK); | 100 | return_ACPI_STATUS(AE_OK); |
109 | } | 101 | } |
110 | 102 | ||
111 | |||
112 | /******************************************************************************* | 103 | /******************************************************************************* |
113 | * | 104 | * |
114 | * FUNCTION: acpi_tb_get_table_header | 105 | * FUNCTION: acpi_tb_get_table_header |
@@ -127,16 +118,13 @@ acpi_tb_get_table ( | |||
127 | ******************************************************************************/ | 118 | ******************************************************************************/ |
128 | 119 | ||
129 | acpi_status | 120 | acpi_status |
130 | acpi_tb_get_table_header ( | 121 | acpi_tb_get_table_header(struct acpi_pointer *address, |
131 | struct acpi_pointer *address, | 122 | struct acpi_table_header *return_header) |
132 | struct acpi_table_header *return_header) | ||
133 | { | 123 | { |
134 | acpi_status status = AE_OK; | 124 | acpi_status status = AE_OK; |
135 | struct acpi_table_header *header = NULL; | 125 | struct acpi_table_header *header = NULL; |
136 | |||
137 | |||
138 | ACPI_FUNCTION_TRACE ("tb_get_table_header"); | ||
139 | 126 | ||
127 | ACPI_FUNCTION_TRACE("tb_get_table_header"); | ||
140 | 128 | ||
141 | /* | 129 | /* |
142 | * Flags contains the current processor mode (Virtual or Physical | 130 | * Flags contains the current processor mode (Virtual or Physical |
@@ -148,46 +136,42 @@ acpi_tb_get_table_header ( | |||
148 | 136 | ||
149 | /* Pointer matches processor mode, copy the header */ | 137 | /* Pointer matches processor mode, copy the header */ |
150 | 138 | ||
151 | ACPI_MEMCPY (return_header, address->pointer.logical, | 139 | ACPI_MEMCPY(return_header, address->pointer.logical, |
152 | sizeof (struct acpi_table_header)); | 140 | sizeof(struct acpi_table_header)); |
153 | break; | 141 | break; |
154 | 142 | ||
155 | |||
156 | case ACPI_LOGMODE_PHYSPTR: | 143 | case ACPI_LOGMODE_PHYSPTR: |
157 | 144 | ||
158 | /* Create a logical address for the physical pointer*/ | 145 | /* Create a logical address for the physical pointer */ |
159 | 146 | ||
160 | status = acpi_os_map_memory (address->pointer.physical, | 147 | status = acpi_os_map_memory(address->pointer.physical, |
161 | sizeof (struct acpi_table_header), (void *) &header); | 148 | sizeof(struct acpi_table_header), |
162 | if (ACPI_FAILURE (status)) { | 149 | (void *)&header); |
163 | ACPI_REPORT_ERROR (( | 150 | if (ACPI_FAILURE(status)) { |
164 | "Could not map memory at %8.8X%8.8X for length %X\n", | 151 | ACPI_REPORT_ERROR(("Could not map memory at %8.8X%8.8X for length %X\n", ACPI_FORMAT_UINT64(address->pointer.physical), sizeof(struct acpi_table_header))); |
165 | ACPI_FORMAT_UINT64 (address->pointer.physical), | 152 | return_ACPI_STATUS(status); |
166 | sizeof (struct acpi_table_header))); | ||
167 | return_ACPI_STATUS (status); | ||
168 | } | 153 | } |
169 | 154 | ||
170 | /* Copy header and delete mapping */ | 155 | /* Copy header and delete mapping */ |
171 | 156 | ||
172 | ACPI_MEMCPY (return_header, header, sizeof (struct acpi_table_header)); | 157 | ACPI_MEMCPY(return_header, header, |
173 | acpi_os_unmap_memory (header, sizeof (struct acpi_table_header)); | 158 | sizeof(struct acpi_table_header)); |
159 | acpi_os_unmap_memory(header, sizeof(struct acpi_table_header)); | ||
174 | break; | 160 | break; |
175 | 161 | ||
176 | |||
177 | default: | 162 | default: |
178 | 163 | ||
179 | ACPI_REPORT_ERROR (("Invalid address flags %X\n", | 164 | ACPI_REPORT_ERROR(("Invalid address flags %X\n", |
180 | address->pointer_type)); | 165 | address->pointer_type)); |
181 | return_ACPI_STATUS (AE_BAD_PARAMETER); | 166 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
182 | } | 167 | } |
183 | 168 | ||
184 | ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "Table Signature: [%4.4s]\n", | 169 | ACPI_DEBUG_PRINT((ACPI_DB_TABLES, "Table Signature: [%4.4s]\n", |
185 | return_header->signature)); | 170 | return_header->signature)); |
186 | 171 | ||
187 | return_ACPI_STATUS (AE_OK); | 172 | return_ACPI_STATUS(AE_OK); |
188 | } | 173 | } |
189 | 174 | ||
190 | |||
191 | /******************************************************************************* | 175 | /******************************************************************************* |
192 | * | 176 | * |
193 | * FUNCTION: acpi_tb_get_table_body | 177 | * FUNCTION: acpi_tb_get_table_body |
@@ -209,37 +193,33 @@ acpi_tb_get_table_header ( | |||
209 | ******************************************************************************/ | 193 | ******************************************************************************/ |
210 | 194 | ||
211 | acpi_status | 195 | acpi_status |
212 | acpi_tb_get_table_body ( | 196 | acpi_tb_get_table_body(struct acpi_pointer *address, |
213 | struct acpi_pointer *address, | 197 | struct acpi_table_header *header, |
214 | struct acpi_table_header *header, | 198 | struct acpi_table_desc *table_info) |
215 | struct acpi_table_desc *table_info) | ||
216 | { | 199 | { |
217 | acpi_status status; | 200 | acpi_status status; |
218 | |||
219 | |||
220 | ACPI_FUNCTION_TRACE ("tb_get_table_body"); | ||
221 | 201 | ||
202 | ACPI_FUNCTION_TRACE("tb_get_table_body"); | ||
222 | 203 | ||
223 | if (!table_info || !address) { | 204 | if (!table_info || !address) { |
224 | return_ACPI_STATUS (AE_BAD_PARAMETER); | 205 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
225 | } | 206 | } |
226 | 207 | ||
227 | /* Attempt table override. */ | 208 | /* Attempt table override. */ |
228 | 209 | ||
229 | status = acpi_tb_table_override (header, table_info); | 210 | status = acpi_tb_table_override(header, table_info); |
230 | if (ACPI_SUCCESS (status)) { | 211 | if (ACPI_SUCCESS(status)) { |
231 | /* Table was overridden by the host OS */ | 212 | /* Table was overridden by the host OS */ |
232 | 213 | ||
233 | return_ACPI_STATUS (status); | 214 | return_ACPI_STATUS(status); |
234 | } | 215 | } |
235 | 216 | ||
236 | /* No override, get the original table */ | 217 | /* No override, get the original table */ |
237 | 218 | ||
238 | status = acpi_tb_get_this_table (address, header, table_info); | 219 | status = acpi_tb_get_this_table(address, header, table_info); |
239 | return_ACPI_STATUS (status); | 220 | return_ACPI_STATUS(status); |
240 | } | 221 | } |
241 | 222 | ||
242 | |||
243 | /******************************************************************************* | 223 | /******************************************************************************* |
244 | * | 224 | * |
245 | * FUNCTION: acpi_tb_table_override | 225 | * FUNCTION: acpi_tb_table_override |
@@ -255,61 +235,57 @@ acpi_tb_get_table_body ( | |||
255 | ******************************************************************************/ | 235 | ******************************************************************************/ |
256 | 236 | ||
257 | static acpi_status | 237 | static acpi_status |
258 | acpi_tb_table_override ( | 238 | acpi_tb_table_override(struct acpi_table_header *header, |
259 | struct acpi_table_header *header, | 239 | struct acpi_table_desc *table_info) |
260 | struct acpi_table_desc *table_info) | ||
261 | { | 240 | { |
262 | struct acpi_table_header *new_table; | 241 | struct acpi_table_header *new_table; |
263 | acpi_status status; | 242 | acpi_status status; |
264 | struct acpi_pointer address; | 243 | struct acpi_pointer address; |
265 | |||
266 | |||
267 | ACPI_FUNCTION_TRACE ("tb_table_override"); | ||
268 | 244 | ||
245 | ACPI_FUNCTION_TRACE("tb_table_override"); | ||
269 | 246 | ||
270 | /* | 247 | /* |
271 | * The OSL will examine the header and decide whether to override this | 248 | * The OSL will examine the header and decide whether to override this |
272 | * table. If it decides to override, a table will be returned in new_table, | 249 | * table. If it decides to override, a table will be returned in new_table, |
273 | * which we will then copy. | 250 | * which we will then copy. |
274 | */ | 251 | */ |
275 | status = acpi_os_table_override (header, &new_table); | 252 | status = acpi_os_table_override(header, &new_table); |
276 | if (ACPI_FAILURE (status)) { | 253 | if (ACPI_FAILURE(status)) { |
277 | /* Some severe error from the OSL, but we basically ignore it */ | 254 | /* Some severe error from the OSL, but we basically ignore it */ |
278 | 255 | ||
279 | ACPI_REPORT_ERROR (("Could not override ACPI table, %s\n", | 256 | ACPI_REPORT_ERROR(("Could not override ACPI table, %s\n", |
280 | acpi_format_exception (status))); | 257 | acpi_format_exception(status))); |
281 | return_ACPI_STATUS (status); | 258 | return_ACPI_STATUS(status); |
282 | } | 259 | } |
283 | 260 | ||
284 | if (!new_table) { | 261 | if (!new_table) { |
285 | /* No table override */ | 262 | /* No table override */ |
286 | 263 | ||
287 | return_ACPI_STATUS (AE_NO_ACPI_TABLES); | 264 | return_ACPI_STATUS(AE_NO_ACPI_TABLES); |
288 | } | 265 | } |
289 | 266 | ||
290 | /* | 267 | /* |
291 | * We have a new table to override the old one. Get a copy of | 268 | * We have a new table to override the old one. Get a copy of |
292 | * the new one. We know that the new table has a logical pointer. | 269 | * the new one. We know that the new table has a logical pointer. |
293 | */ | 270 | */ |
294 | address.pointer_type = ACPI_LOGICAL_POINTER | ACPI_LOGICAL_ADDRESSING; | 271 | address.pointer_type = ACPI_LOGICAL_POINTER | ACPI_LOGICAL_ADDRESSING; |
295 | address.pointer.logical = new_table; | 272 | address.pointer.logical = new_table; |
296 | 273 | ||
297 | status = acpi_tb_get_this_table (&address, new_table, table_info); | 274 | status = acpi_tb_get_this_table(&address, new_table, table_info); |
298 | if (ACPI_FAILURE (status)) { | 275 | if (ACPI_FAILURE(status)) { |
299 | ACPI_REPORT_ERROR (("Could not copy override ACPI table, %s\n", | 276 | ACPI_REPORT_ERROR(("Could not copy override ACPI table, %s\n", |
300 | acpi_format_exception (status))); | 277 | acpi_format_exception(status))); |
301 | return_ACPI_STATUS (status); | 278 | return_ACPI_STATUS(status); |
302 | } | 279 | } |
303 | 280 | ||
304 | /* Copy the table info */ | 281 | /* Copy the table info */ |
305 | 282 | ||
306 | ACPI_REPORT_INFO (("Table [%4.4s] replaced by host OS\n", | 283 | ACPI_REPORT_INFO(("Table [%4.4s] replaced by host OS\n", |
307 | table_info->pointer->signature)); | 284 | table_info->pointer->signature)); |
308 | 285 | ||
309 | return_ACPI_STATUS (AE_OK); | 286 | return_ACPI_STATUS(AE_OK); |
310 | } | 287 | } |
311 | 288 | ||
312 | |||
313 | /******************************************************************************* | 289 | /******************************************************************************* |
314 | * | 290 | * |
315 | * FUNCTION: acpi_tb_get_this_table | 291 | * FUNCTION: acpi_tb_get_this_table |
@@ -329,18 +305,15 @@ acpi_tb_table_override ( | |||
329 | ******************************************************************************/ | 305 | ******************************************************************************/ |
330 | 306 | ||
331 | static acpi_status | 307 | static acpi_status |
332 | acpi_tb_get_this_table ( | 308 | acpi_tb_get_this_table(struct acpi_pointer *address, |
333 | struct acpi_pointer *address, | 309 | struct acpi_table_header *header, |
334 | struct acpi_table_header *header, | 310 | struct acpi_table_desc *table_info) |
335 | struct acpi_table_desc *table_info) | ||
336 | { | 311 | { |
337 | struct acpi_table_header *full_table = NULL; | 312 | struct acpi_table_header *full_table = NULL; |
338 | u8 allocation; | 313 | u8 allocation; |
339 | acpi_status status = AE_OK; | 314 | acpi_status status = AE_OK; |
340 | |||
341 | |||
342 | ACPI_FUNCTION_TRACE ("tb_get_this_table"); | ||
343 | 315 | ||
316 | ACPI_FUNCTION_TRACE("tb_get_this_table"); | ||
344 | 317 | ||
345 | /* | 318 | /* |
346 | * Flags contains the current processor mode (Virtual or Physical | 319 | * Flags contains the current processor mode (Virtual or Physical |
@@ -352,38 +325,33 @@ acpi_tb_get_this_table ( | |||
352 | 325 | ||
353 | /* Pointer matches processor mode, copy the table to a new buffer */ | 326 | /* Pointer matches processor mode, copy the table to a new buffer */ |
354 | 327 | ||
355 | full_table = ACPI_MEM_ALLOCATE (header->length); | 328 | full_table = ACPI_MEM_ALLOCATE(header->length); |
356 | if (!full_table) { | 329 | if (!full_table) { |
357 | ACPI_REPORT_ERROR (( | 330 | ACPI_REPORT_ERROR(("Could not allocate table memory for [%4.4s] length %X\n", header->signature, header->length)); |
358 | "Could not allocate table memory for [%4.4s] length %X\n", | 331 | return_ACPI_STATUS(AE_NO_MEMORY); |
359 | header->signature, header->length)); | ||
360 | return_ACPI_STATUS (AE_NO_MEMORY); | ||
361 | } | 332 | } |
362 | 333 | ||
363 | /* Copy the entire table (including header) to the local buffer */ | 334 | /* Copy the entire table (including header) to the local buffer */ |
364 | 335 | ||
365 | ACPI_MEMCPY (full_table, address->pointer.logical, header->length); | 336 | ACPI_MEMCPY(full_table, address->pointer.logical, |
337 | header->length); | ||
366 | 338 | ||
367 | /* Save allocation type */ | 339 | /* Save allocation type */ |
368 | 340 | ||
369 | allocation = ACPI_MEM_ALLOCATED; | 341 | allocation = ACPI_MEM_ALLOCATED; |
370 | break; | 342 | break; |
371 | 343 | ||
372 | |||
373 | case ACPI_LOGMODE_PHYSPTR: | 344 | case ACPI_LOGMODE_PHYSPTR: |
374 | 345 | ||
375 | /* | 346 | /* |
376 | * Just map the table's physical memory | 347 | * Just map the table's physical memory |
377 | * into our address space. | 348 | * into our address space. |
378 | */ | 349 | */ |
379 | status = acpi_os_map_memory (address->pointer.physical, | 350 | status = acpi_os_map_memory(address->pointer.physical, |
380 | (acpi_size) header->length, (void *) &full_table); | 351 | (acpi_size) header->length, |
381 | if (ACPI_FAILURE (status)) { | 352 | (void *)&full_table); |
382 | ACPI_REPORT_ERROR (( | 353 | if (ACPI_FAILURE(status)) { |
383 | "Could not map memory for table [%4.4s] at %8.8X%8.8X for length %X\n", | 354 | ACPI_REPORT_ERROR(("Could not map memory for table [%4.4s] at %8.8X%8.8X for length %X\n", header->signature, ACPI_FORMAT_UINT64(address->pointer.physical), header->length)); |
384 | header->signature, | ||
385 | ACPI_FORMAT_UINT64 (address->pointer.physical), | ||
386 | header->length)); | ||
387 | return (status); | 355 | return (status); |
388 | } | 356 | } |
389 | 357 | ||
@@ -392,12 +360,11 @@ acpi_tb_get_this_table ( | |||
392 | allocation = ACPI_MEM_MAPPED; | 360 | allocation = ACPI_MEM_MAPPED; |
393 | break; | 361 | break; |
394 | 362 | ||
395 | |||
396 | default: | 363 | default: |
397 | 364 | ||
398 | ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Invalid address flags %X\n", | 365 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Invalid address flags %X\n", |
399 | address->pointer_type)); | 366 | address->pointer_type)); |
400 | return_ACPI_STATUS (AE_BAD_PARAMETER); | 367 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
401 | } | 368 | } |
402 | 369 | ||
403 | /* | 370 | /* |
@@ -405,10 +372,10 @@ acpi_tb_get_this_table ( | |||
405 | * even the ones whose signature we don't recognize | 372 | * even the ones whose signature we don't recognize |
406 | */ | 373 | */ |
407 | if (table_info->type != ACPI_TABLE_FACS) { | 374 | if (table_info->type != ACPI_TABLE_FACS) { |
408 | status = acpi_tb_verify_table_checksum (full_table); | 375 | status = acpi_tb_verify_table_checksum(full_table); |
409 | 376 | ||
410 | #if (!ACPI_CHECKSUM_ABORT) | 377 | #if (!ACPI_CHECKSUM_ABORT) |
411 | if (ACPI_FAILURE (status)) { | 378 | if (ACPI_FAILURE(status)) { |
412 | /* Ignore the error if configuration says so */ | 379 | /* Ignore the error if configuration says so */ |
413 | 380 | ||
414 | status = AE_OK; | 381 | status = AE_OK; |
@@ -418,19 +385,19 @@ acpi_tb_get_this_table ( | |||
418 | 385 | ||
419 | /* Return values */ | 386 | /* Return values */ |
420 | 387 | ||
421 | table_info->pointer = full_table; | 388 | table_info->pointer = full_table; |
422 | table_info->length = (acpi_size) header->length; | 389 | table_info->length = (acpi_size) header->length; |
423 | table_info->allocation = allocation; | 390 | table_info->allocation = allocation; |
424 | 391 | ||
425 | ACPI_DEBUG_PRINT ((ACPI_DB_INFO, | 392 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
426 | "Found table [%4.4s] at %8.8X%8.8X, mapped/copied to %p\n", | 393 | "Found table [%4.4s] at %8.8X%8.8X, mapped/copied to %p\n", |
427 | full_table->signature, | 394 | full_table->signature, |
428 | ACPI_FORMAT_UINT64 (address->pointer.physical), full_table)); | 395 | ACPI_FORMAT_UINT64(address->pointer.physical), |
396 | full_table)); | ||
429 | 397 | ||
430 | return_ACPI_STATUS (status); | 398 | return_ACPI_STATUS(status); |
431 | } | 399 | } |
432 | 400 | ||
433 | |||
434 | /******************************************************************************* | 401 | /******************************************************************************* |
435 | * | 402 | * |
436 | * FUNCTION: acpi_tb_get_table_ptr | 403 | * FUNCTION: acpi_tb_get_table_ptr |
@@ -447,24 +414,20 @@ acpi_tb_get_this_table ( | |||
447 | ******************************************************************************/ | 414 | ******************************************************************************/ |
448 | 415 | ||
449 | acpi_status | 416 | acpi_status |
450 | acpi_tb_get_table_ptr ( | 417 | acpi_tb_get_table_ptr(acpi_table_type table_type, |
451 | acpi_table_type table_type, | 418 | u32 instance, struct acpi_table_header **table_ptr_loc) |
452 | u32 instance, | ||
453 | struct acpi_table_header **table_ptr_loc) | ||
454 | { | 419 | { |
455 | struct acpi_table_desc *table_desc; | 420 | struct acpi_table_desc *table_desc; |
456 | u32 i; | 421 | u32 i; |
457 | |||
458 | |||
459 | ACPI_FUNCTION_TRACE ("tb_get_table_ptr"); | ||
460 | 422 | ||
423 | ACPI_FUNCTION_TRACE("tb_get_table_ptr"); | ||
461 | 424 | ||
462 | if (!acpi_gbl_DSDT) { | 425 | if (!acpi_gbl_DSDT) { |
463 | return_ACPI_STATUS (AE_NO_ACPI_TABLES); | 426 | return_ACPI_STATUS(AE_NO_ACPI_TABLES); |
464 | } | 427 | } |
465 | 428 | ||
466 | if (table_type > ACPI_TABLE_MAX) { | 429 | if (table_type > ACPI_TABLE_MAX) { |
467 | return_ACPI_STATUS (AE_BAD_PARAMETER); | 430 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
468 | } | 431 | } |
469 | 432 | ||
470 | /* | 433 | /* |
@@ -476,15 +439,16 @@ acpi_tb_get_table_ptr ( | |||
476 | 439 | ||
477 | *table_ptr_loc = NULL; | 440 | *table_ptr_loc = NULL; |
478 | if (acpi_gbl_table_lists[table_type].next) { | 441 | if (acpi_gbl_table_lists[table_type].next) { |
479 | *table_ptr_loc = acpi_gbl_table_lists[table_type].next->pointer; | 442 | *table_ptr_loc = |
443 | acpi_gbl_table_lists[table_type].next->pointer; | ||
480 | } | 444 | } |
481 | return_ACPI_STATUS (AE_OK); | 445 | return_ACPI_STATUS(AE_OK); |
482 | } | 446 | } |
483 | 447 | ||
484 | /* Check for instance out of range */ | 448 | /* Check for instance out of range */ |
485 | 449 | ||
486 | if (instance > acpi_gbl_table_lists[table_type].count) { | 450 | if (instance > acpi_gbl_table_lists[table_type].count) { |
487 | return_ACPI_STATUS (AE_NOT_EXIST); | 451 | return_ACPI_STATUS(AE_NOT_EXIST); |
488 | } | 452 | } |
489 | 453 | ||
490 | /* Walk the list to get the desired table | 454 | /* Walk the list to get the desired table |
@@ -503,6 +467,5 @@ acpi_tb_get_table_ptr ( | |||
503 | 467 | ||
504 | *table_ptr_loc = table_desc->pointer; | 468 | *table_ptr_loc = table_desc->pointer; |
505 | 469 | ||
506 | return_ACPI_STATUS (AE_OK); | 470 | return_ACPI_STATUS(AE_OK); |
507 | } | 471 | } |
508 | |||
diff --git a/drivers/acpi/tables/tbgetall.c b/drivers/acpi/tables/tbgetall.c index eea5b8cb5ebb..8d72343537e7 100644 --- a/drivers/acpi/tables/tbgetall.c +++ b/drivers/acpi/tables/tbgetall.c | |||
@@ -41,27 +41,21 @@ | |||
41 | * POSSIBILITY OF SUCH DAMAGES. | 41 | * POSSIBILITY OF SUCH DAMAGES. |
42 | */ | 42 | */ |
43 | 43 | ||
44 | |||
45 | #include <acpi/acpi.h> | 44 | #include <acpi/acpi.h> |
46 | #include <acpi/actables.h> | 45 | #include <acpi/actables.h> |
47 | 46 | ||
48 | |||
49 | #define _COMPONENT ACPI_TABLES | 47 | #define _COMPONENT ACPI_TABLES |
50 | ACPI_MODULE_NAME ("tbgetall") | 48 | ACPI_MODULE_NAME("tbgetall") |
51 | 49 | ||
52 | /* Local prototypes */ | 50 | /* Local prototypes */ |
53 | |||
54 | static acpi_status | 51 | static acpi_status |
55 | acpi_tb_get_primary_table ( | 52 | acpi_tb_get_primary_table(struct acpi_pointer *address, |
56 | struct acpi_pointer *address, | 53 | struct acpi_table_desc *table_info); |
57 | struct acpi_table_desc *table_info); | ||
58 | 54 | ||
59 | static acpi_status | 55 | static acpi_status |
60 | acpi_tb_get_secondary_table ( | 56 | acpi_tb_get_secondary_table(struct acpi_pointer *address, |
61 | struct acpi_pointer *address, | 57 | acpi_string signature, |
62 | acpi_string signature, | 58 | struct acpi_table_desc *table_info); |
63 | struct acpi_table_desc *table_info); | ||
64 | |||
65 | 59 | ||
66 | /******************************************************************************* | 60 | /******************************************************************************* |
67 | * | 61 | * |
@@ -77,58 +71,54 @@ acpi_tb_get_secondary_table ( | |||
77 | ******************************************************************************/ | 71 | ******************************************************************************/ |
78 | 72 | ||
79 | static acpi_status | 73 | static acpi_status |
80 | acpi_tb_get_primary_table ( | 74 | acpi_tb_get_primary_table(struct acpi_pointer *address, |
81 | struct acpi_pointer *address, | 75 | struct acpi_table_desc *table_info) |
82 | struct acpi_table_desc *table_info) | ||
83 | { | 76 | { |
84 | acpi_status status; | 77 | acpi_status status; |
85 | struct acpi_table_header header; | 78 | struct acpi_table_header header; |
86 | |||
87 | |||
88 | ACPI_FUNCTION_TRACE ("tb_get_primary_table"); | ||
89 | 79 | ||
80 | ACPI_FUNCTION_TRACE("tb_get_primary_table"); | ||
90 | 81 | ||
91 | /* Ignore a NULL address in the RSDT */ | 82 | /* Ignore a NULL address in the RSDT */ |
92 | 83 | ||
93 | if (!address->pointer.value) { | 84 | if (!address->pointer.value) { |
94 | return_ACPI_STATUS (AE_OK); | 85 | return_ACPI_STATUS(AE_OK); |
95 | } | 86 | } |
96 | 87 | ||
97 | /* Get the header in order to get signature and table size */ | 88 | /* Get the header in order to get signature and table size */ |
98 | 89 | ||
99 | status = acpi_tb_get_table_header (address, &header); | 90 | status = acpi_tb_get_table_header(address, &header); |
100 | if (ACPI_FAILURE (status)) { | 91 | if (ACPI_FAILURE(status)) { |
101 | return_ACPI_STATUS (status); | 92 | return_ACPI_STATUS(status); |
102 | } | 93 | } |
103 | 94 | ||
104 | /* Clear the table_info */ | 95 | /* Clear the table_info */ |
105 | 96 | ||
106 | ACPI_MEMSET (table_info, 0, sizeof (struct acpi_table_desc)); | 97 | ACPI_MEMSET(table_info, 0, sizeof(struct acpi_table_desc)); |
107 | 98 | ||
108 | /* | 99 | /* |
109 | * Check the table signature and make sure it is recognized. | 100 | * Check the table signature and make sure it is recognized. |
110 | * Also checks the header checksum | 101 | * Also checks the header checksum |
111 | */ | 102 | */ |
112 | table_info->pointer = &header; | 103 | table_info->pointer = &header; |
113 | status = acpi_tb_recognize_table (table_info, ACPI_TABLE_PRIMARY); | 104 | status = acpi_tb_recognize_table(table_info, ACPI_TABLE_PRIMARY); |
114 | if (ACPI_FAILURE (status)) { | 105 | if (ACPI_FAILURE(status)) { |
115 | return_ACPI_STATUS (status); | 106 | return_ACPI_STATUS(status); |
116 | } | 107 | } |
117 | 108 | ||
118 | /* Get the entire table */ | 109 | /* Get the entire table */ |
119 | 110 | ||
120 | status = acpi_tb_get_table_body (address, &header, table_info); | 111 | status = acpi_tb_get_table_body(address, &header, table_info); |
121 | if (ACPI_FAILURE (status)) { | 112 | if (ACPI_FAILURE(status)) { |
122 | return_ACPI_STATUS (status); | 113 | return_ACPI_STATUS(status); |
123 | } | 114 | } |
124 | 115 | ||
125 | /* Install the table */ | 116 | /* Install the table */ |
126 | 117 | ||
127 | status = acpi_tb_install_table (table_info); | 118 | status = acpi_tb_install_table(table_info); |
128 | return_ACPI_STATUS (status); | 119 | return_ACPI_STATUS(status); |
129 | } | 120 | } |
130 | 121 | ||
131 | |||
132 | /******************************************************************************* | 122 | /******************************************************************************* |
133 | * | 123 | * |
134 | * FUNCTION: acpi_tb_get_secondary_table | 124 | * FUNCTION: acpi_tb_get_secondary_table |
@@ -143,32 +133,27 @@ acpi_tb_get_primary_table ( | |||
143 | ******************************************************************************/ | 133 | ******************************************************************************/ |
144 | 134 | ||
145 | static acpi_status | 135 | static acpi_status |
146 | acpi_tb_get_secondary_table ( | 136 | acpi_tb_get_secondary_table(struct acpi_pointer *address, |
147 | struct acpi_pointer *address, | 137 | acpi_string signature, |
148 | acpi_string signature, | 138 | struct acpi_table_desc *table_info) |
149 | struct acpi_table_desc *table_info) | ||
150 | { | 139 | { |
151 | acpi_status status; | 140 | acpi_status status; |
152 | struct acpi_table_header header; | 141 | struct acpi_table_header header; |
153 | |||
154 | |||
155 | ACPI_FUNCTION_TRACE_STR ("tb_get_secondary_table", signature); | ||
156 | 142 | ||
143 | ACPI_FUNCTION_TRACE_STR("tb_get_secondary_table", signature); | ||
157 | 144 | ||
158 | /* Get the header in order to match the signature */ | 145 | /* Get the header in order to match the signature */ |
159 | 146 | ||
160 | status = acpi_tb_get_table_header (address, &header); | 147 | status = acpi_tb_get_table_header(address, &header); |
161 | if (ACPI_FAILURE (status)) { | 148 | if (ACPI_FAILURE(status)) { |
162 | return_ACPI_STATUS (status); | 149 | return_ACPI_STATUS(status); |
163 | } | 150 | } |
164 | 151 | ||
165 | /* Signature must match request */ | 152 | /* Signature must match request */ |
166 | 153 | ||
167 | if (ACPI_STRNCMP (header.signature, signature, ACPI_NAME_SIZE)) { | 154 | if (ACPI_STRNCMP(header.signature, signature, ACPI_NAME_SIZE)) { |
168 | ACPI_REPORT_ERROR (( | 155 | ACPI_REPORT_ERROR(("Incorrect table signature - wanted [%s] found [%4.4s]\n", signature, header.signature)); |
169 | "Incorrect table signature - wanted [%s] found [%4.4s]\n", | 156 | return_ACPI_STATUS(AE_BAD_SIGNATURE); |
170 | signature, header.signature)); | ||
171 | return_ACPI_STATUS (AE_BAD_SIGNATURE); | ||
172 | } | 157 | } |
173 | 158 | ||
174 | /* | 159 | /* |
@@ -176,25 +161,24 @@ acpi_tb_get_secondary_table ( | |||
176 | * Also checks the header checksum | 161 | * Also checks the header checksum |
177 | */ | 162 | */ |
178 | table_info->pointer = &header; | 163 | table_info->pointer = &header; |
179 | status = acpi_tb_recognize_table (table_info, ACPI_TABLE_SECONDARY); | 164 | status = acpi_tb_recognize_table(table_info, ACPI_TABLE_SECONDARY); |
180 | if (ACPI_FAILURE (status)) { | 165 | if (ACPI_FAILURE(status)) { |
181 | return_ACPI_STATUS (status); | 166 | return_ACPI_STATUS(status); |
182 | } | 167 | } |
183 | 168 | ||
184 | /* Get the entire table */ | 169 | /* Get the entire table */ |
185 | 170 | ||
186 | status = acpi_tb_get_table_body (address, &header, table_info); | 171 | status = acpi_tb_get_table_body(address, &header, table_info); |
187 | if (ACPI_FAILURE (status)) { | 172 | if (ACPI_FAILURE(status)) { |
188 | return_ACPI_STATUS (status); | 173 | return_ACPI_STATUS(status); |
189 | } | 174 | } |
190 | 175 | ||
191 | /* Install the table */ | 176 | /* Install the table */ |
192 | 177 | ||
193 | status = acpi_tb_install_table (table_info); | 178 | status = acpi_tb_install_table(table_info); |
194 | return_ACPI_STATUS (status); | 179 | return_ACPI_STATUS(status); |
195 | } | 180 | } |
196 | 181 | ||
197 | |||
198 | /******************************************************************************* | 182 | /******************************************************************************* |
199 | * | 183 | * |
200 | * FUNCTION: acpi_tb_get_required_tables | 184 | * FUNCTION: acpi_tb_get_required_tables |
@@ -214,23 +198,19 @@ acpi_tb_get_secondary_table ( | |||
214 | * | 198 | * |
215 | ******************************************************************************/ | 199 | ******************************************************************************/ |
216 | 200 | ||
217 | acpi_status | 201 | acpi_status acpi_tb_get_required_tables(void) |
218 | acpi_tb_get_required_tables ( | ||
219 | void) | ||
220 | { | 202 | { |
221 | acpi_status status = AE_OK; | 203 | acpi_status status = AE_OK; |
222 | u32 i; | 204 | u32 i; |
223 | struct acpi_table_desc table_info; | 205 | struct acpi_table_desc table_info; |
224 | struct acpi_pointer address; | 206 | struct acpi_pointer address; |
225 | |||
226 | 207 | ||
227 | ACPI_FUNCTION_TRACE ("tb_get_required_tables"); | 208 | ACPI_FUNCTION_TRACE("tb_get_required_tables"); |
228 | 209 | ||
229 | ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "%d ACPI tables in RSDT\n", | 210 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, "%d ACPI tables in RSDT\n", |
230 | acpi_gbl_rsdt_table_count)); | 211 | acpi_gbl_rsdt_table_count)); |
231 | 212 | ||
232 | 213 | address.pointer_type = acpi_gbl_table_flags | ACPI_LOGICAL_ADDRESSING; | |
233 | address.pointer_type = acpi_gbl_table_flags | ACPI_LOGICAL_ADDRESSING; | ||
234 | 214 | ||
235 | /* | 215 | /* |
236 | * Loop through all table pointers found in RSDT. | 216 | * Loop through all table pointers found in RSDT. |
@@ -243,84 +223,79 @@ acpi_tb_get_required_tables ( | |||
243 | for (i = 0; i < acpi_gbl_rsdt_table_count; i++) { | 223 | for (i = 0; i < acpi_gbl_rsdt_table_count; i++) { |
244 | /* Get the table address from the common internal XSDT */ | 224 | /* Get the table address from the common internal XSDT */ |
245 | 225 | ||
246 | address.pointer.value = | 226 | address.pointer.value = acpi_gbl_XSDT->table_offset_entry[i]; |
247 | acpi_gbl_XSDT->table_offset_entry[i]; | ||
248 | 227 | ||
249 | /* | 228 | /* |
250 | * Get the tables needed by this subsystem (FADT and any SSDTs). | 229 | * Get the tables needed by this subsystem (FADT and any SSDTs). |
251 | * NOTE: All other tables are completely ignored at this time. | 230 | * NOTE: All other tables are completely ignored at this time. |
252 | */ | 231 | */ |
253 | status = acpi_tb_get_primary_table (&address, &table_info); | 232 | status = acpi_tb_get_primary_table(&address, &table_info); |
254 | if ((status != AE_OK) && (status != AE_TABLE_NOT_SUPPORTED)) { | 233 | if ((status != AE_OK) && (status != AE_TABLE_NOT_SUPPORTED)) { |
255 | ACPI_REPORT_WARNING (("%s, while getting table at %8.8X%8.8X\n", | 234 | ACPI_REPORT_WARNING(("%s, while getting table at %8.8X%8.8X\n", acpi_format_exception(status), ACPI_FORMAT_UINT64(address.pointer.value))); |
256 | acpi_format_exception (status), | ||
257 | ACPI_FORMAT_UINT64 (address.pointer.value))); | ||
258 | } | 235 | } |
259 | } | 236 | } |
260 | 237 | ||
261 | /* We must have a FADT to continue */ | 238 | /* We must have a FADT to continue */ |
262 | 239 | ||
263 | if (!acpi_gbl_FADT) { | 240 | if (!acpi_gbl_FADT) { |
264 | ACPI_REPORT_ERROR (("No FADT present in RSDT/XSDT\n")); | 241 | ACPI_REPORT_ERROR(("No FADT present in RSDT/XSDT\n")); |
265 | return_ACPI_STATUS (AE_NO_ACPI_TABLES); | 242 | return_ACPI_STATUS(AE_NO_ACPI_TABLES); |
266 | } | 243 | } |
267 | 244 | ||
268 | /* | 245 | /* |
269 | * Convert the FADT to a common format. This allows earlier revisions of | 246 | * Convert the FADT to a common format. This allows earlier revisions of |
270 | * the table to coexist with newer versions, using common access code. | 247 | * the table to coexist with newer versions, using common access code. |
271 | */ | 248 | */ |
272 | status = acpi_tb_convert_table_fadt (); | 249 | status = acpi_tb_convert_table_fadt(); |
273 | if (ACPI_FAILURE (status)) { | 250 | if (ACPI_FAILURE(status)) { |
274 | ACPI_REPORT_ERROR (( | 251 | ACPI_REPORT_ERROR(("Could not convert FADT to internal common format\n")); |
275 | "Could not convert FADT to internal common format\n")); | 252 | return_ACPI_STATUS(status); |
276 | return_ACPI_STATUS (status); | ||
277 | } | 253 | } |
278 | 254 | ||
279 | /* Get the FACS (Pointed to by the FADT) */ | 255 | /* Get the FACS (Pointed to by the FADT) */ |
280 | 256 | ||
281 | address.pointer.value = acpi_gbl_FADT->xfirmware_ctrl; | 257 | address.pointer.value = acpi_gbl_FADT->xfirmware_ctrl; |
282 | 258 | ||
283 | status = acpi_tb_get_secondary_table (&address, FACS_SIG, &table_info); | 259 | status = acpi_tb_get_secondary_table(&address, FACS_SIG, &table_info); |
284 | if (ACPI_FAILURE (status)) { | 260 | if (ACPI_FAILURE(status)) { |
285 | ACPI_REPORT_ERROR (("Could not get/install the FACS, %s\n", | 261 | ACPI_REPORT_ERROR(("Could not get/install the FACS, %s\n", |
286 | acpi_format_exception (status))); | 262 | acpi_format_exception(status))); |
287 | return_ACPI_STATUS (status); | 263 | return_ACPI_STATUS(status); |
288 | } | 264 | } |
289 | 265 | ||
290 | /* | 266 | /* |
291 | * Create the common FACS pointer table | 267 | * Create the common FACS pointer table |
292 | * (Contains pointers to the original table) | 268 | * (Contains pointers to the original table) |
293 | */ | 269 | */ |
294 | status = acpi_tb_build_common_facs (&table_info); | 270 | status = acpi_tb_build_common_facs(&table_info); |
295 | if (ACPI_FAILURE (status)) { | 271 | if (ACPI_FAILURE(status)) { |
296 | return_ACPI_STATUS (status); | 272 | return_ACPI_STATUS(status); |
297 | } | 273 | } |
298 | 274 | ||
299 | /* Get/install the DSDT (Pointed to by the FADT) */ | 275 | /* Get/install the DSDT (Pointed to by the FADT) */ |
300 | 276 | ||
301 | address.pointer.value = acpi_gbl_FADT->Xdsdt; | 277 | address.pointer.value = acpi_gbl_FADT->Xdsdt; |
302 | 278 | ||
303 | status = acpi_tb_get_secondary_table (&address, DSDT_SIG, &table_info); | 279 | status = acpi_tb_get_secondary_table(&address, DSDT_SIG, &table_info); |
304 | if (ACPI_FAILURE (status)) { | 280 | if (ACPI_FAILURE(status)) { |
305 | ACPI_REPORT_ERROR (("Could not get/install the DSDT\n")); | 281 | ACPI_REPORT_ERROR(("Could not get/install the DSDT\n")); |
306 | return_ACPI_STATUS (status); | 282 | return_ACPI_STATUS(status); |
307 | } | 283 | } |
308 | 284 | ||
309 | /* Set Integer Width (32/64) based upon DSDT revision */ | 285 | /* Set Integer Width (32/64) based upon DSDT revision */ |
310 | 286 | ||
311 | acpi_ut_set_integer_width (acpi_gbl_DSDT->revision); | 287 | acpi_ut_set_integer_width(acpi_gbl_DSDT->revision); |
312 | 288 | ||
313 | /* Dump the entire DSDT */ | 289 | /* Dump the entire DSDT */ |
314 | 290 | ||
315 | ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, | 291 | ACPI_DEBUG_PRINT((ACPI_DB_TABLES, |
316 | "Hex dump of entire DSDT, size %d (0x%X), Integer width = %d\n", | 292 | "Hex dump of entire DSDT, size %d (0x%X), Integer width = %d\n", |
317 | acpi_gbl_DSDT->length, acpi_gbl_DSDT->length, acpi_gbl_integer_bit_width)); | 293 | acpi_gbl_DSDT->length, acpi_gbl_DSDT->length, |
318 | ACPI_DUMP_BUFFER ((u8 *) acpi_gbl_DSDT, acpi_gbl_DSDT->length); | 294 | acpi_gbl_integer_bit_width)); |
295 | ACPI_DUMP_BUFFER((u8 *) acpi_gbl_DSDT, acpi_gbl_DSDT->length); | ||
319 | 296 | ||
320 | /* Always delete the RSDP mapping, we are done with it */ | 297 | /* Always delete the RSDP mapping, we are done with it */ |
321 | 298 | ||
322 | acpi_tb_delete_tables_by_type (ACPI_TABLE_RSDP); | 299 | acpi_tb_delete_tables_by_type(ACPI_TABLE_RSDP); |
323 | return_ACPI_STATUS (status); | 300 | return_ACPI_STATUS(status); |
324 | } | 301 | } |
325 | |||
326 | |||
diff --git a/drivers/acpi/tables/tbinstal.c b/drivers/acpi/tables/tbinstal.c index 698799901f55..10db8484e462 100644 --- a/drivers/acpi/tables/tbinstal.c +++ b/drivers/acpi/tables/tbinstal.c | |||
@@ -41,22 +41,16 @@ | |||
41 | * POSSIBILITY OF SUCH DAMAGES. | 41 | * POSSIBILITY OF SUCH DAMAGES. |
42 | */ | 42 | */ |
43 | 43 | ||
44 | |||
45 | #include <acpi/acpi.h> | 44 | #include <acpi/acpi.h> |
46 | #include <acpi/actables.h> | 45 | #include <acpi/actables.h> |
47 | 46 | ||
48 | |||
49 | #define _COMPONENT ACPI_TABLES | 47 | #define _COMPONENT ACPI_TABLES |
50 | ACPI_MODULE_NAME ("tbinstal") | 48 | ACPI_MODULE_NAME("tbinstal") |
51 | 49 | ||
52 | /* Local prototypes */ | 50 | /* Local prototypes */ |
53 | |||
54 | static acpi_status | 51 | static acpi_status |
55 | acpi_tb_match_signature ( | 52 | acpi_tb_match_signature(char *signature, |
56 | char *signature, | 53 | struct acpi_table_desc *table_info, u8 search_type); |
57 | struct acpi_table_desc *table_info, | ||
58 | u8 search_type); | ||
59 | |||
60 | 54 | ||
61 | /******************************************************************************* | 55 | /******************************************************************************* |
62 | * | 56 | * |
@@ -74,16 +68,12 @@ acpi_tb_match_signature ( | |||
74 | ******************************************************************************/ | 68 | ******************************************************************************/ |
75 | 69 | ||
76 | static acpi_status | 70 | static acpi_status |
77 | acpi_tb_match_signature ( | 71 | acpi_tb_match_signature(char *signature, |
78 | char *signature, | 72 | struct acpi_table_desc *table_info, u8 search_type) |
79 | struct acpi_table_desc *table_info, | ||
80 | u8 search_type) | ||
81 | { | 73 | { |
82 | acpi_native_uint i; | 74 | acpi_native_uint i; |
83 | |||
84 | |||
85 | ACPI_FUNCTION_TRACE ("tb_match_signature"); | ||
86 | 75 | ||
76 | ACPI_FUNCTION_TRACE("tb_match_signature"); | ||
87 | 77 | ||
88 | /* Search for a signature match among the known table types */ | 78 | /* Search for a signature match among the known table types */ |
89 | 79 | ||
@@ -92,30 +82,30 @@ acpi_tb_match_signature ( | |||
92 | continue; | 82 | continue; |
93 | } | 83 | } |
94 | 84 | ||
95 | if (!ACPI_STRNCMP (signature, acpi_gbl_table_data[i].signature, | 85 | if (!ACPI_STRNCMP(signature, acpi_gbl_table_data[i].signature, |
96 | acpi_gbl_table_data[i].sig_length)) { | 86 | acpi_gbl_table_data[i].sig_length)) { |
97 | /* Found a signature match, return index if requested */ | 87 | /* Found a signature match, return index if requested */ |
98 | 88 | ||
99 | if (table_info) { | 89 | if (table_info) { |
100 | table_info->type = (u8) i; | 90 | table_info->type = (u8) i; |
101 | } | 91 | } |
102 | 92 | ||
103 | ACPI_DEBUG_PRINT ((ACPI_DB_INFO, | 93 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
104 | "Table [%4.4s] is an ACPI table consumed by the core subsystem\n", | 94 | "Table [%4.4s] is an ACPI table consumed by the core subsystem\n", |
105 | (char *) acpi_gbl_table_data[i].signature)); | 95 | (char *)acpi_gbl_table_data[i]. |
96 | signature)); | ||
106 | 97 | ||
107 | return_ACPI_STATUS (AE_OK); | 98 | return_ACPI_STATUS(AE_OK); |
108 | } | 99 | } |
109 | } | 100 | } |
110 | 101 | ||
111 | ACPI_DEBUG_PRINT ((ACPI_DB_INFO, | 102 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
112 | "Table [%4.4s] is not an ACPI table consumed by the core subsystem - ignored\n", | 103 | "Table [%4.4s] is not an ACPI table consumed by the core subsystem - ignored\n", |
113 | (char *) signature)); | 104 | (char *)signature)); |
114 | 105 | ||
115 | return_ACPI_STATUS (AE_TABLE_NOT_SUPPORTED); | 106 | return_ACPI_STATUS(AE_TABLE_NOT_SUPPORTED); |
116 | } | 107 | } |
117 | 108 | ||
118 | |||
119 | /******************************************************************************* | 109 | /******************************************************************************* |
120 | * | 110 | * |
121 | * FUNCTION: acpi_tb_install_table | 111 | * FUNCTION: acpi_tb_install_table |
@@ -128,52 +118,48 @@ acpi_tb_match_signature ( | |||
128 | * | 118 | * |
129 | ******************************************************************************/ | 119 | ******************************************************************************/ |
130 | 120 | ||
131 | acpi_status | 121 | acpi_status acpi_tb_install_table(struct acpi_table_desc *table_info) |
132 | acpi_tb_install_table ( | ||
133 | struct acpi_table_desc *table_info) | ||
134 | { | 122 | { |
135 | acpi_status status; | 123 | acpi_status status; |
136 | |||
137 | |||
138 | ACPI_FUNCTION_TRACE ("tb_install_table"); | ||
139 | 124 | ||
125 | ACPI_FUNCTION_TRACE("tb_install_table"); | ||
140 | 126 | ||
141 | /* Lock tables while installing */ | 127 | /* Lock tables while installing */ |
142 | 128 | ||
143 | status = acpi_ut_acquire_mutex (ACPI_MTX_TABLES); | 129 | status = acpi_ut_acquire_mutex(ACPI_MTX_TABLES); |
144 | if (ACPI_FAILURE (status)) { | 130 | if (ACPI_FAILURE(status)) { |
145 | ACPI_REPORT_ERROR (("Could not acquire table mutex, %s\n", | 131 | ACPI_REPORT_ERROR(("Could not acquire table mutex, %s\n", |
146 | acpi_format_exception (status))); | 132 | acpi_format_exception(status))); |
147 | return_ACPI_STATUS (status); | 133 | return_ACPI_STATUS(status); |
148 | } | 134 | } |
149 | 135 | ||
150 | /* | 136 | /* |
151 | * Ignore a table that is already installed. For example, some BIOS | 137 | * Ignore a table that is already installed. For example, some BIOS |
152 | * ASL code will repeatedly attempt to load the same SSDT. | 138 | * ASL code will repeatedly attempt to load the same SSDT. |
153 | */ | 139 | */ |
154 | status = acpi_tb_is_table_installed (table_info); | 140 | status = acpi_tb_is_table_installed(table_info); |
155 | if (ACPI_FAILURE (status)) { | 141 | if (ACPI_FAILURE(status)) { |
156 | goto unlock_and_exit; | 142 | goto unlock_and_exit; |
157 | } | 143 | } |
158 | 144 | ||
159 | /* Install the table into the global data structure */ | 145 | /* Install the table into the global data structure */ |
160 | 146 | ||
161 | status = acpi_tb_init_table_descriptor (table_info->type, table_info); | 147 | status = acpi_tb_init_table_descriptor(table_info->type, table_info); |
162 | if (ACPI_FAILURE (status)) { | 148 | if (ACPI_FAILURE(status)) { |
163 | ACPI_REPORT_ERROR (("Could not install table [%4.4s], %s\n", | 149 | ACPI_REPORT_ERROR(("Could not install table [%4.4s], %s\n", |
164 | table_info->pointer->signature, acpi_format_exception (status))); | 150 | table_info->pointer->signature, |
151 | acpi_format_exception(status))); | ||
165 | } | 152 | } |
166 | 153 | ||
167 | ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "%s located at %p\n", | 154 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, "%s located at %p\n", |
168 | acpi_gbl_table_data[table_info->type].name, table_info->pointer)); | 155 | acpi_gbl_table_data[table_info->type].name, |
156 | table_info->pointer)); | ||
169 | 157 | ||
170 | 158 | unlock_and_exit: | |
171 | unlock_and_exit: | 159 | (void)acpi_ut_release_mutex(ACPI_MTX_TABLES); |
172 | (void) acpi_ut_release_mutex (ACPI_MTX_TABLES); | 160 | return_ACPI_STATUS(status); |
173 | return_ACPI_STATUS (status); | ||
174 | } | 161 | } |
175 | 162 | ||
176 | |||
177 | /******************************************************************************* | 163 | /******************************************************************************* |
178 | * | 164 | * |
179 | * FUNCTION: acpi_tb_recognize_table | 165 | * FUNCTION: acpi_tb_recognize_table |
@@ -196,22 +182,18 @@ unlock_and_exit: | |||
196 | ******************************************************************************/ | 182 | ******************************************************************************/ |
197 | 183 | ||
198 | acpi_status | 184 | acpi_status |
199 | acpi_tb_recognize_table ( | 185 | acpi_tb_recognize_table(struct acpi_table_desc *table_info, u8 search_type) |
200 | struct acpi_table_desc *table_info, | ||
201 | u8 search_type) | ||
202 | { | 186 | { |
203 | struct acpi_table_header *table_header; | 187 | struct acpi_table_header *table_header; |
204 | acpi_status status; | 188 | acpi_status status; |
205 | |||
206 | |||
207 | ACPI_FUNCTION_TRACE ("tb_recognize_table"); | ||
208 | 189 | ||
190 | ACPI_FUNCTION_TRACE("tb_recognize_table"); | ||
209 | 191 | ||
210 | /* Ensure that we have a valid table pointer */ | 192 | /* Ensure that we have a valid table pointer */ |
211 | 193 | ||
212 | table_header = (struct acpi_table_header *) table_info->pointer; | 194 | table_header = (struct acpi_table_header *)table_info->pointer; |
213 | if (!table_header) { | 195 | if (!table_header) { |
214 | return_ACPI_STATUS (AE_BAD_PARAMETER); | 196 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
215 | } | 197 | } |
216 | 198 | ||
217 | /* | 199 | /* |
@@ -222,25 +204,24 @@ acpi_tb_recognize_table ( | |||
222 | * This can be any one of many valid ACPI tables, it just isn't one of | 204 | * This can be any one of many valid ACPI tables, it just isn't one of |
223 | * the tables that is consumed by the core subsystem | 205 | * the tables that is consumed by the core subsystem |
224 | */ | 206 | */ |
225 | status = acpi_tb_match_signature (table_header->signature, | 207 | status = acpi_tb_match_signature(table_header->signature, |
226 | table_info, search_type); | 208 | table_info, search_type); |
227 | if (ACPI_FAILURE (status)) { | 209 | if (ACPI_FAILURE(status)) { |
228 | return_ACPI_STATUS (status); | 210 | return_ACPI_STATUS(status); |
229 | } | 211 | } |
230 | 212 | ||
231 | status = acpi_tb_validate_table_header (table_header); | 213 | status = acpi_tb_validate_table_header(table_header); |
232 | if (ACPI_FAILURE (status)) { | 214 | if (ACPI_FAILURE(status)) { |
233 | return_ACPI_STATUS (status); | 215 | return_ACPI_STATUS(status); |
234 | } | 216 | } |
235 | 217 | ||
236 | /* Return the table type and length via the info struct */ | 218 | /* Return the table type and length via the info struct */ |
237 | 219 | ||
238 | table_info->length = (acpi_size) table_header->length; | 220 | table_info->length = (acpi_size) table_header->length; |
239 | 221 | ||
240 | return_ACPI_STATUS (status); | 222 | return_ACPI_STATUS(status); |
241 | } | 223 | } |
242 | 224 | ||
243 | |||
244 | /******************************************************************************* | 225 | /******************************************************************************* |
245 | * | 226 | * |
246 | * FUNCTION: acpi_tb_init_table_descriptor | 227 | * FUNCTION: acpi_tb_init_table_descriptor |
@@ -255,30 +236,27 @@ acpi_tb_recognize_table ( | |||
255 | ******************************************************************************/ | 236 | ******************************************************************************/ |
256 | 237 | ||
257 | acpi_status | 238 | acpi_status |
258 | acpi_tb_init_table_descriptor ( | 239 | acpi_tb_init_table_descriptor(acpi_table_type table_type, |
259 | acpi_table_type table_type, | 240 | struct acpi_table_desc *table_info) |
260 | struct acpi_table_desc *table_info) | ||
261 | { | 241 | { |
262 | struct acpi_table_list *list_head; | 242 | struct acpi_table_list *list_head; |
263 | struct acpi_table_desc *table_desc; | 243 | struct acpi_table_desc *table_desc; |
264 | acpi_status status; | 244 | acpi_status status; |
265 | |||
266 | |||
267 | ACPI_FUNCTION_TRACE_U32 ("tb_init_table_descriptor", table_type); | ||
268 | 245 | ||
246 | ACPI_FUNCTION_TRACE_U32("tb_init_table_descriptor", table_type); | ||
269 | 247 | ||
270 | /* Allocate a descriptor for this table */ | 248 | /* Allocate a descriptor for this table */ |
271 | 249 | ||
272 | table_desc = ACPI_MEM_CALLOCATE (sizeof (struct acpi_table_desc)); | 250 | table_desc = ACPI_MEM_CALLOCATE(sizeof(struct acpi_table_desc)); |
273 | if (!table_desc) { | 251 | if (!table_desc) { |
274 | return_ACPI_STATUS (AE_NO_MEMORY); | 252 | return_ACPI_STATUS(AE_NO_MEMORY); |
275 | } | 253 | } |
276 | 254 | ||
277 | /* Get a new owner ID for the table */ | 255 | /* Get a new owner ID for the table */ |
278 | 256 | ||
279 | status = acpi_ut_allocate_owner_id (&table_desc->owner_id); | 257 | status = acpi_ut_allocate_owner_id(&table_desc->owner_id); |
280 | if (ACPI_FAILURE (status)) { | 258 | if (ACPI_FAILURE(status)) { |
281 | return_ACPI_STATUS (status); | 259 | return_ACPI_STATUS(status); |
282 | } | 260 | } |
283 | 261 | ||
284 | /* Install the table into the global data structure */ | 262 | /* Install the table into the global data structure */ |
@@ -290,14 +268,14 @@ acpi_tb_init_table_descriptor ( | |||
290 | * includes most ACPI tables such as the DSDT. 2) Multiple instances of | 268 | * includes most ACPI tables such as the DSDT. 2) Multiple instances of |
291 | * the table are allowed. This includes SSDT and PSDTs. | 269 | * the table are allowed. This includes SSDT and PSDTs. |
292 | */ | 270 | */ |
293 | if (ACPI_IS_SINGLE_TABLE (acpi_gbl_table_data[table_type].flags)) { | 271 | if (ACPI_IS_SINGLE_TABLE(acpi_gbl_table_data[table_type].flags)) { |
294 | /* | 272 | /* |
295 | * Only one table allowed, and a table has alread been installed | 273 | * Only one table allowed, and a table has alread been installed |
296 | * at this location, so return an error. | 274 | * at this location, so return an error. |
297 | */ | 275 | */ |
298 | if (list_head->next) { | 276 | if (list_head->next) { |
299 | ACPI_MEM_FREE (table_desc); | 277 | ACPI_MEM_FREE(table_desc); |
300 | return_ACPI_STATUS (AE_ALREADY_EXISTS); | 278 | return_ACPI_STATUS(AE_ALREADY_EXISTS); |
301 | } | 279 | } |
302 | 280 | ||
303 | table_desc->next = list_head->next; | 281 | table_desc->next = list_head->next; |
@@ -308,8 +286,7 @@ acpi_tb_init_table_descriptor ( | |||
308 | } | 286 | } |
309 | 287 | ||
310 | list_head->count++; | 288 | list_head->count++; |
311 | } | 289 | } else { |
312 | else { | ||
313 | /* | 290 | /* |
314 | * Link the new table in to the list of tables of this type. | 291 | * Link the new table in to the list of tables of this type. |
315 | * Insert at the end of the list, order IS IMPORTANT. | 292 | * Insert at the end of the list, order IS IMPORTANT. |
@@ -320,8 +297,7 @@ acpi_tb_init_table_descriptor ( | |||
320 | 297 | ||
321 | if (!list_head->next) { | 298 | if (!list_head->next) { |
322 | list_head->next = table_desc; | 299 | list_head->next = table_desc; |
323 | } | 300 | } else { |
324 | else { | ||
325 | table_desc->next = list_head->next; | 301 | table_desc->next = list_head->next; |
326 | 302 | ||
327 | while (table_desc->next->next) { | 303 | while (table_desc->next->next) { |
@@ -336,13 +312,14 @@ acpi_tb_init_table_descriptor ( | |||
336 | 312 | ||
337 | /* Finish initialization of the table descriptor */ | 313 | /* Finish initialization of the table descriptor */ |
338 | 314 | ||
339 | table_desc->type = (u8) table_type; | 315 | table_desc->type = (u8) table_type; |
340 | table_desc->pointer = table_info->pointer; | 316 | table_desc->pointer = table_info->pointer; |
341 | table_desc->length = table_info->length; | 317 | table_desc->length = table_info->length; |
342 | table_desc->allocation = table_info->allocation; | 318 | table_desc->allocation = table_info->allocation; |
343 | table_desc->aml_start = (u8 *) (table_desc->pointer + 1), | 319 | table_desc->aml_start = (u8 *) (table_desc->pointer + 1), |
344 | table_desc->aml_length = (u32) (table_desc->length - | 320 | table_desc->aml_length = (u32) (table_desc->length - |
345 | (u32) sizeof (struct acpi_table_header)); | 321 | (u32) sizeof(struct |
322 | acpi_table_header)); | ||
346 | table_desc->loaded_into_namespace = FALSE; | 323 | table_desc->loaded_into_namespace = FALSE; |
347 | 324 | ||
348 | /* | 325 | /* |
@@ -350,18 +327,18 @@ acpi_tb_init_table_descriptor ( | |||
350 | * newly installed table | 327 | * newly installed table |
351 | */ | 328 | */ |
352 | if (acpi_gbl_table_data[table_type].global_ptr) { | 329 | if (acpi_gbl_table_data[table_type].global_ptr) { |
353 | *(acpi_gbl_table_data[table_type].global_ptr) = table_info->pointer; | 330 | *(acpi_gbl_table_data[table_type].global_ptr) = |
331 | table_info->pointer; | ||
354 | } | 332 | } |
355 | 333 | ||
356 | /* Return Data */ | 334 | /* Return Data */ |
357 | 335 | ||
358 | table_info->owner_id = table_desc->owner_id; | 336 | table_info->owner_id = table_desc->owner_id; |
359 | table_info->installed_desc = table_desc; | 337 | table_info->installed_desc = table_desc; |
360 | 338 | ||
361 | return_ACPI_STATUS (AE_OK); | 339 | return_ACPI_STATUS(AE_OK); |
362 | } | 340 | } |
363 | 341 | ||
364 | |||
365 | /******************************************************************************* | 342 | /******************************************************************************* |
366 | * | 343 | * |
367 | * FUNCTION: acpi_tb_delete_all_tables | 344 | * FUNCTION: acpi_tb_delete_all_tables |
@@ -374,23 +351,19 @@ acpi_tb_init_table_descriptor ( | |||
374 | * | 351 | * |
375 | ******************************************************************************/ | 352 | ******************************************************************************/ |
376 | 353 | ||
377 | void | 354 | void acpi_tb_delete_all_tables(void) |
378 | acpi_tb_delete_all_tables ( | ||
379 | void) | ||
380 | { | 355 | { |
381 | acpi_table_type type; | 356 | acpi_table_type type; |
382 | |||
383 | 357 | ||
384 | /* | 358 | /* |
385 | * Free memory allocated for ACPI tables | 359 | * Free memory allocated for ACPI tables |
386 | * Memory can either be mapped or allocated | 360 | * Memory can either be mapped or allocated |
387 | */ | 361 | */ |
388 | for (type = 0; type < NUM_ACPI_TABLE_TYPES; type++) { | 362 | for (type = 0; type < NUM_ACPI_TABLE_TYPES; type++) { |
389 | acpi_tb_delete_tables_by_type (type); | 363 | acpi_tb_delete_tables_by_type(type); |
390 | } | 364 | } |
391 | } | 365 | } |
392 | 366 | ||
393 | |||
394 | /******************************************************************************* | 367 | /******************************************************************************* |
395 | * | 368 | * |
396 | * FUNCTION: acpi_tb_delete_tables_by_type | 369 | * FUNCTION: acpi_tb_delete_tables_by_type |
@@ -404,23 +377,19 @@ acpi_tb_delete_all_tables ( | |||
404 | * | 377 | * |
405 | ******************************************************************************/ | 378 | ******************************************************************************/ |
406 | 379 | ||
407 | void | 380 | void acpi_tb_delete_tables_by_type(acpi_table_type type) |
408 | acpi_tb_delete_tables_by_type ( | ||
409 | acpi_table_type type) | ||
410 | { | 381 | { |
411 | struct acpi_table_desc *table_desc; | 382 | struct acpi_table_desc *table_desc; |
412 | u32 count; | 383 | u32 count; |
413 | u32 i; | 384 | u32 i; |
414 | |||
415 | |||
416 | ACPI_FUNCTION_TRACE_U32 ("tb_delete_tables_by_type", type); | ||
417 | 385 | ||
386 | ACPI_FUNCTION_TRACE_U32("tb_delete_tables_by_type", type); | ||
418 | 387 | ||
419 | if (type > ACPI_TABLE_MAX) { | 388 | if (type > ACPI_TABLE_MAX) { |
420 | return_VOID; | 389 | return_VOID; |
421 | } | 390 | } |
422 | 391 | ||
423 | if (ACPI_FAILURE (acpi_ut_acquire_mutex (ACPI_MTX_TABLES))) { | 392 | if (ACPI_FAILURE(acpi_ut_acquire_mutex(ACPI_MTX_TABLES))) { |
424 | return; | 393 | return; |
425 | } | 394 | } |
426 | 395 | ||
@@ -458,21 +427,20 @@ acpi_tb_delete_tables_by_type ( | |||
458 | * 1) Get the head of the list | 427 | * 1) Get the head of the list |
459 | */ | 428 | */ |
460 | table_desc = acpi_gbl_table_lists[type].next; | 429 | table_desc = acpi_gbl_table_lists[type].next; |
461 | count = acpi_gbl_table_lists[type].count; | 430 | count = acpi_gbl_table_lists[type].count; |
462 | 431 | ||
463 | /* | 432 | /* |
464 | * 2) Walk the entire list, deleting both the allocated tables | 433 | * 2) Walk the entire list, deleting both the allocated tables |
465 | * and the table descriptors | 434 | * and the table descriptors |
466 | */ | 435 | */ |
467 | for (i = 0; i < count; i++) { | 436 | for (i = 0; i < count; i++) { |
468 | table_desc = acpi_tb_uninstall_table (table_desc); | 437 | table_desc = acpi_tb_uninstall_table(table_desc); |
469 | } | 438 | } |
470 | 439 | ||
471 | (void) acpi_ut_release_mutex (ACPI_MTX_TABLES); | 440 | (void)acpi_ut_release_mutex(ACPI_MTX_TABLES); |
472 | return_VOID; | 441 | return_VOID; |
473 | } | 442 | } |
474 | 443 | ||
475 | |||
476 | /******************************************************************************* | 444 | /******************************************************************************* |
477 | * | 445 | * |
478 | * FUNCTION: acpi_tb_delete_single_table | 446 | * FUNCTION: acpi_tb_delete_single_table |
@@ -486,15 +454,12 @@ acpi_tb_delete_tables_by_type ( | |||
486 | * | 454 | * |
487 | ******************************************************************************/ | 455 | ******************************************************************************/ |
488 | 456 | ||
489 | void | 457 | void acpi_tb_delete_single_table(struct acpi_table_desc *table_desc) |
490 | acpi_tb_delete_single_table ( | ||
491 | struct acpi_table_desc *table_desc) | ||
492 | { | 458 | { |
493 | 459 | ||
494 | /* Must have a valid table descriptor and pointer */ | 460 | /* Must have a valid table descriptor and pointer */ |
495 | 461 | ||
496 | if ((!table_desc) || | 462 | if ((!table_desc) || (!table_desc->pointer)) { |
497 | (!table_desc->pointer)) { | ||
498 | return; | 463 | return; |
499 | } | 464 | } |
500 | 465 | ||
@@ -506,12 +471,12 @@ acpi_tb_delete_single_table ( | |||
506 | 471 | ||
507 | case ACPI_MEM_ALLOCATED: | 472 | case ACPI_MEM_ALLOCATED: |
508 | 473 | ||
509 | ACPI_MEM_FREE (table_desc->pointer); | 474 | ACPI_MEM_FREE(table_desc->pointer); |
510 | break; | 475 | break; |
511 | 476 | ||
512 | case ACPI_MEM_MAPPED: | 477 | case ACPI_MEM_MAPPED: |
513 | 478 | ||
514 | acpi_os_unmap_memory (table_desc->pointer, table_desc->length); | 479 | acpi_os_unmap_memory(table_desc->pointer, table_desc->length); |
515 | break; | 480 | break; |
516 | 481 | ||
517 | default: | 482 | default: |
@@ -519,7 +484,6 @@ acpi_tb_delete_single_table ( | |||
519 | } | 484 | } |
520 | } | 485 | } |
521 | 486 | ||
522 | |||
523 | /******************************************************************************* | 487 | /******************************************************************************* |
524 | * | 488 | * |
525 | * FUNCTION: acpi_tb_uninstall_table | 489 | * FUNCTION: acpi_tb_uninstall_table |
@@ -534,26 +498,22 @@ acpi_tb_delete_single_table ( | |||
534 | * | 498 | * |
535 | ******************************************************************************/ | 499 | ******************************************************************************/ |
536 | 500 | ||
537 | struct acpi_table_desc * | 501 | struct acpi_table_desc *acpi_tb_uninstall_table(struct acpi_table_desc |
538 | acpi_tb_uninstall_table ( | 502 | *table_desc) |
539 | struct acpi_table_desc *table_desc) | ||
540 | { | 503 | { |
541 | struct acpi_table_desc *next_desc; | 504 | struct acpi_table_desc *next_desc; |
542 | |||
543 | |||
544 | ACPI_FUNCTION_TRACE_PTR ("tb_uninstall_table", table_desc); | ||
545 | 505 | ||
506 | ACPI_FUNCTION_TRACE_PTR("tb_uninstall_table", table_desc); | ||
546 | 507 | ||
547 | if (!table_desc) { | 508 | if (!table_desc) { |
548 | return_PTR (NULL); | 509 | return_PTR(NULL); |
549 | } | 510 | } |
550 | 511 | ||
551 | /* Unlink the descriptor from the doubly linked list */ | 512 | /* Unlink the descriptor from the doubly linked list */ |
552 | 513 | ||
553 | if (table_desc->prev) { | 514 | if (table_desc->prev) { |
554 | table_desc->prev->next = table_desc->next; | 515 | table_desc->prev->next = table_desc->next; |
555 | } | 516 | } else { |
556 | else { | ||
557 | /* Is first on list, update list head */ | 517 | /* Is first on list, update list head */ |
558 | 518 | ||
559 | acpi_gbl_table_lists[table_desc->type].next = table_desc->next; | 519 | acpi_gbl_table_lists[table_desc->type].next = table_desc->next; |
@@ -565,16 +525,14 @@ acpi_tb_uninstall_table ( | |||
565 | 525 | ||
566 | /* Free the memory allocated for the table itself */ | 526 | /* Free the memory allocated for the table itself */ |
567 | 527 | ||
568 | acpi_tb_delete_single_table (table_desc); | 528 | acpi_tb_delete_single_table(table_desc); |
569 | 529 | ||
570 | /* Free the table descriptor */ | 530 | /* Free the table descriptor */ |
571 | 531 | ||
572 | next_desc = table_desc->next; | 532 | next_desc = table_desc->next; |
573 | ACPI_MEM_FREE (table_desc); | 533 | ACPI_MEM_FREE(table_desc); |
574 | 534 | ||
575 | /* Return pointer to the next descriptor */ | 535 | /* Return pointer to the next descriptor */ |
576 | 536 | ||
577 | return_PTR (next_desc); | 537 | return_PTR(next_desc); |
578 | } | 538 | } |
579 | |||
580 | |||
diff --git a/drivers/acpi/tables/tbrsdt.c b/drivers/acpi/tables/tbrsdt.c index 069d498465d0..ad0252c2f7db 100644 --- a/drivers/acpi/tables/tbrsdt.c +++ b/drivers/acpi/tables/tbrsdt.c | |||
@@ -41,14 +41,11 @@ | |||
41 | * POSSIBILITY OF SUCH DAMAGES. | 41 | * POSSIBILITY OF SUCH DAMAGES. |
42 | */ | 42 | */ |
43 | 43 | ||
44 | |||
45 | #include <acpi/acpi.h> | 44 | #include <acpi/acpi.h> |
46 | #include <acpi/actables.h> | 45 | #include <acpi/actables.h> |
47 | 46 | ||
48 | |||
49 | #define _COMPONENT ACPI_TABLES | 47 | #define _COMPONENT ACPI_TABLES |
50 | ACPI_MODULE_NAME ("tbrsdt") | 48 | ACPI_MODULE_NAME("tbrsdt") |
51 | |||
52 | 49 | ||
53 | /******************************************************************************* | 50 | /******************************************************************************* |
54 | * | 51 | * |
@@ -61,18 +58,13 @@ | |||
61 | * DESCRIPTION: Load and validate the RSDP (ptr) and RSDT (table) | 58 | * DESCRIPTION: Load and validate the RSDP (ptr) and RSDT (table) |
62 | * | 59 | * |
63 | ******************************************************************************/ | 60 | ******************************************************************************/ |
64 | 61 | acpi_status acpi_tb_verify_rsdp(struct acpi_pointer *address) | |
65 | acpi_status | ||
66 | acpi_tb_verify_rsdp ( | ||
67 | struct acpi_pointer *address) | ||
68 | { | 62 | { |
69 | struct acpi_table_desc table_info; | 63 | struct acpi_table_desc table_info; |
70 | acpi_status status; | 64 | acpi_status status; |
71 | struct rsdp_descriptor *rsdp; | 65 | struct rsdp_descriptor *rsdp; |
72 | |||
73 | |||
74 | ACPI_FUNCTION_TRACE ("tb_verify_rsdp"); | ||
75 | 66 | ||
67 | ACPI_FUNCTION_TRACE("tb_verify_rsdp"); | ||
76 | 68 | ||
77 | switch (address->pointer_type) { | 69 | switch (address->pointer_type) { |
78 | case ACPI_LOGICAL_POINTER: | 70 | case ACPI_LOGICAL_POINTER: |
@@ -84,54 +76,53 @@ acpi_tb_verify_rsdp ( | |||
84 | /* | 76 | /* |
85 | * Obtain access to the RSDP structure | 77 | * Obtain access to the RSDP structure |
86 | */ | 78 | */ |
87 | status = acpi_os_map_memory (address->pointer.physical, | 79 | status = acpi_os_map_memory(address->pointer.physical, |
88 | sizeof (struct rsdp_descriptor), | 80 | sizeof(struct rsdp_descriptor), |
89 | (void *) &rsdp); | 81 | (void *)&rsdp); |
90 | if (ACPI_FAILURE (status)) { | 82 | if (ACPI_FAILURE(status)) { |
91 | return_ACPI_STATUS (status); | 83 | return_ACPI_STATUS(status); |
92 | } | 84 | } |
93 | break; | 85 | break; |
94 | 86 | ||
95 | default: | 87 | default: |
96 | return_ACPI_STATUS (AE_BAD_PARAMETER); | 88 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
97 | } | 89 | } |
98 | 90 | ||
99 | /* Verify RSDP signature and checksum */ | 91 | /* Verify RSDP signature and checksum */ |
100 | 92 | ||
101 | status = acpi_tb_validate_rsdp (rsdp); | 93 | status = acpi_tb_validate_rsdp(rsdp); |
102 | if (ACPI_FAILURE (status)) { | 94 | if (ACPI_FAILURE(status)) { |
103 | goto cleanup; | 95 | goto cleanup; |
104 | } | 96 | } |
105 | 97 | ||
106 | /* The RSDP supplied is OK */ | 98 | /* The RSDP supplied is OK */ |
107 | 99 | ||
108 | table_info.pointer = ACPI_CAST_PTR (struct acpi_table_header, rsdp); | 100 | table_info.pointer = ACPI_CAST_PTR(struct acpi_table_header, rsdp); |
109 | table_info.length = sizeof (struct rsdp_descriptor); | 101 | table_info.length = sizeof(struct rsdp_descriptor); |
110 | table_info.allocation = ACPI_MEM_MAPPED; | 102 | table_info.allocation = ACPI_MEM_MAPPED; |
111 | 103 | ||
112 | /* Save the table pointers and allocation info */ | 104 | /* Save the table pointers and allocation info */ |
113 | 105 | ||
114 | status = acpi_tb_init_table_descriptor (ACPI_TABLE_RSDP, &table_info); | 106 | status = acpi_tb_init_table_descriptor(ACPI_TABLE_RSDP, &table_info); |
115 | if (ACPI_FAILURE (status)) { | 107 | if (ACPI_FAILURE(status)) { |
116 | goto cleanup; | 108 | goto cleanup; |
117 | } | 109 | } |
118 | 110 | ||
119 | /* Save the RSDP in a global for easy access */ | 111 | /* Save the RSDP in a global for easy access */ |
120 | 112 | ||
121 | acpi_gbl_RSDP = ACPI_CAST_PTR (struct rsdp_descriptor, table_info.pointer); | 113 | acpi_gbl_RSDP = |
122 | return_ACPI_STATUS (status); | 114 | ACPI_CAST_PTR(struct rsdp_descriptor, table_info.pointer); |
123 | 115 | return_ACPI_STATUS(status); | |
124 | 116 | ||
125 | /* Error exit */ | 117 | /* Error exit */ |
126 | cleanup: | 118 | cleanup: |
127 | 119 | ||
128 | if (acpi_gbl_table_flags & ACPI_PHYSICAL_POINTER) { | 120 | if (acpi_gbl_table_flags & ACPI_PHYSICAL_POINTER) { |
129 | acpi_os_unmap_memory (rsdp, sizeof (struct rsdp_descriptor)); | 121 | acpi_os_unmap_memory(rsdp, sizeof(struct rsdp_descriptor)); |
130 | } | 122 | } |
131 | return_ACPI_STATUS (status); | 123 | return_ACPI_STATUS(status); |
132 | } | 124 | } |
133 | 125 | ||
134 | |||
135 | /******************************************************************************* | 126 | /******************************************************************************* |
136 | * | 127 | * |
137 | * FUNCTION: acpi_tb_get_rsdt_address | 128 | * FUNCTION: acpi_tb_get_rsdt_address |
@@ -145,33 +136,30 @@ cleanup: | |||
145 | * | 136 | * |
146 | ******************************************************************************/ | 137 | ******************************************************************************/ |
147 | 138 | ||
148 | void | 139 | void acpi_tb_get_rsdt_address(struct acpi_pointer *out_address) |
149 | acpi_tb_get_rsdt_address ( | ||
150 | struct acpi_pointer *out_address) | ||
151 | { | 140 | { |
152 | 141 | ||
153 | ACPI_FUNCTION_ENTRY (); | 142 | ACPI_FUNCTION_ENTRY(); |
154 | |||
155 | 143 | ||
156 | out_address->pointer_type = acpi_gbl_table_flags | ACPI_LOGICAL_ADDRESSING; | 144 | out_address->pointer_type = |
145 | acpi_gbl_table_flags | ACPI_LOGICAL_ADDRESSING; | ||
157 | 146 | ||
158 | /* Use XSDT if it is present */ | 147 | /* Use XSDT if it is present */ |
159 | 148 | ||
160 | if ((acpi_gbl_RSDP->revision >= 2) && | 149 | if ((acpi_gbl_RSDP->revision >= 2) && |
161 | acpi_gbl_RSDP->xsdt_physical_address) { | 150 | acpi_gbl_RSDP->xsdt_physical_address) { |
162 | out_address->pointer.value = | 151 | out_address->pointer.value = |
163 | acpi_gbl_RSDP->xsdt_physical_address; | 152 | acpi_gbl_RSDP->xsdt_physical_address; |
164 | acpi_gbl_root_table_type = ACPI_TABLE_TYPE_XSDT; | 153 | acpi_gbl_root_table_type = ACPI_TABLE_TYPE_XSDT; |
165 | } | 154 | } else { |
166 | else { | ||
167 | /* No XSDT, use the RSDT */ | 155 | /* No XSDT, use the RSDT */ |
168 | 156 | ||
169 | out_address->pointer.value = acpi_gbl_RSDP->rsdt_physical_address; | 157 | out_address->pointer.value = |
158 | acpi_gbl_RSDP->rsdt_physical_address; | ||
170 | acpi_gbl_root_table_type = ACPI_TABLE_TYPE_RSDT; | 159 | acpi_gbl_root_table_type = ACPI_TABLE_TYPE_RSDT; |
171 | } | 160 | } |
172 | } | 161 | } |
173 | 162 | ||
174 | |||
175 | /******************************************************************************* | 163 | /******************************************************************************* |
176 | * | 164 | * |
177 | * FUNCTION: acpi_tb_validate_rsdt | 165 | * FUNCTION: acpi_tb_validate_rsdt |
@@ -184,49 +172,43 @@ acpi_tb_get_rsdt_address ( | |||
184 | * | 172 | * |
185 | ******************************************************************************/ | 173 | ******************************************************************************/ |
186 | 174 | ||
187 | acpi_status | 175 | acpi_status acpi_tb_validate_rsdt(struct acpi_table_header *table_ptr) |
188 | acpi_tb_validate_rsdt ( | ||
189 | struct acpi_table_header *table_ptr) | ||
190 | { | 176 | { |
191 | int no_match; | 177 | int no_match; |
192 | |||
193 | |||
194 | ACPI_FUNCTION_NAME ("tb_validate_rsdt"); | ||
195 | 178 | ||
179 | ACPI_FUNCTION_NAME("tb_validate_rsdt"); | ||
196 | 180 | ||
197 | /* | 181 | /* |
198 | * Search for appropriate signature, RSDT or XSDT | 182 | * Search for appropriate signature, RSDT or XSDT |
199 | */ | 183 | */ |
200 | if (acpi_gbl_root_table_type == ACPI_TABLE_TYPE_RSDT) { | 184 | if (acpi_gbl_root_table_type == ACPI_TABLE_TYPE_RSDT) { |
201 | no_match = ACPI_STRNCMP ((char *) table_ptr, RSDT_SIG, | 185 | no_match = ACPI_STRNCMP((char *)table_ptr, RSDT_SIG, |
202 | sizeof (RSDT_SIG) -1); | 186 | sizeof(RSDT_SIG) - 1); |
203 | } | 187 | } else { |
204 | else { | 188 | no_match = ACPI_STRNCMP((char *)table_ptr, XSDT_SIG, |
205 | no_match = ACPI_STRNCMP ((char *) table_ptr, XSDT_SIG, | 189 | sizeof(XSDT_SIG) - 1); |
206 | sizeof (XSDT_SIG) -1); | ||
207 | } | 190 | } |
208 | 191 | ||
209 | if (no_match) { | 192 | if (no_match) { |
210 | /* Invalid RSDT or XSDT signature */ | 193 | /* Invalid RSDT or XSDT signature */ |
211 | 194 | ||
212 | ACPI_REPORT_ERROR (( | 195 | ACPI_REPORT_ERROR(("Invalid signature where RSDP indicates RSDT/XSDT should be located\n")); |
213 | "Invalid signature where RSDP indicates RSDT/XSDT should be located\n")); | ||
214 | 196 | ||
215 | ACPI_DUMP_BUFFER (acpi_gbl_RSDP, 20); | 197 | ACPI_DUMP_BUFFER(acpi_gbl_RSDP, 20); |
216 | 198 | ||
217 | ACPI_DEBUG_PRINT_RAW ((ACPI_DB_ERROR, | 199 | ACPI_DEBUG_PRINT_RAW((ACPI_DB_ERROR, |
218 | "RSDT/XSDT signature at %X (%p) is invalid\n", | 200 | "RSDT/XSDT signature at %X (%p) is invalid\n", |
219 | acpi_gbl_RSDP->rsdt_physical_address, | 201 | acpi_gbl_RSDP->rsdt_physical_address, |
220 | (void *) (acpi_native_uint) acpi_gbl_RSDP->rsdt_physical_address)); | 202 | (void *)(acpi_native_uint) acpi_gbl_RSDP-> |
203 | rsdt_physical_address)); | ||
221 | 204 | ||
222 | if (acpi_gbl_root_table_type == ACPI_TABLE_TYPE_RSDT) { | 205 | if (acpi_gbl_root_table_type == ACPI_TABLE_TYPE_RSDT) { |
223 | ACPI_REPORT_ERROR (("Looking for RSDT\n")) | 206 | ACPI_REPORT_ERROR(("Looking for RSDT\n")) |
224 | } | 207 | } else { |
225 | else { | 208 | ACPI_REPORT_ERROR(("Looking for XSDT\n")) |
226 | ACPI_REPORT_ERROR (("Looking for XSDT\n")) | ||
227 | } | 209 | } |
228 | 210 | ||
229 | ACPI_DUMP_BUFFER ((char *) table_ptr, 48); | 211 | ACPI_DUMP_BUFFER((char *)table_ptr, 48); |
230 | 212 | ||
231 | return (AE_BAD_SIGNATURE); | 213 | return (AE_BAD_SIGNATURE); |
232 | } | 214 | } |
@@ -234,7 +216,6 @@ acpi_tb_validate_rsdt ( | |||
234 | return (AE_OK); | 216 | return (AE_OK); |
235 | } | 217 | } |
236 | 218 | ||
237 | |||
238 | /******************************************************************************* | 219 | /******************************************************************************* |
239 | * | 220 | * |
240 | * FUNCTION: acpi_tb_get_table_rsdt | 221 | * FUNCTION: acpi_tb_get_table_rsdt |
@@ -247,66 +228,61 @@ acpi_tb_validate_rsdt ( | |||
247 | * | 228 | * |
248 | ******************************************************************************/ | 229 | ******************************************************************************/ |
249 | 230 | ||
250 | acpi_status | 231 | acpi_status acpi_tb_get_table_rsdt(void) |
251 | acpi_tb_get_table_rsdt ( | ||
252 | void) | ||
253 | { | 232 | { |
254 | struct acpi_table_desc table_info; | 233 | struct acpi_table_desc table_info; |
255 | acpi_status status; | 234 | acpi_status status; |
256 | struct acpi_pointer address; | 235 | struct acpi_pointer address; |
257 | |||
258 | |||
259 | ACPI_FUNCTION_TRACE ("tb_get_table_rsdt"); | ||
260 | 236 | ||
237 | ACPI_FUNCTION_TRACE("tb_get_table_rsdt"); | ||
261 | 238 | ||
262 | /* Get the RSDT/XSDT via the RSDP */ | 239 | /* Get the RSDT/XSDT via the RSDP */ |
263 | 240 | ||
264 | acpi_tb_get_rsdt_address (&address); | 241 | acpi_tb_get_rsdt_address(&address); |
265 | 242 | ||
266 | table_info.type = ACPI_TABLE_XSDT; | 243 | table_info.type = ACPI_TABLE_XSDT; |
267 | status = acpi_tb_get_table (&address, &table_info); | 244 | status = acpi_tb_get_table(&address, &table_info); |
268 | if (ACPI_FAILURE (status)) { | 245 | if (ACPI_FAILURE(status)) { |
269 | ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Could not get the RSDT/XSDT, %s\n", | 246 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, |
270 | acpi_format_exception (status))); | 247 | "Could not get the RSDT/XSDT, %s\n", |
248 | acpi_format_exception(status))); | ||
271 | 249 | ||
272 | return_ACPI_STATUS (status); | 250 | return_ACPI_STATUS(status); |
273 | } | 251 | } |
274 | 252 | ||
275 | ACPI_DEBUG_PRINT ((ACPI_DB_INFO, | 253 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
276 | "RSDP located at %p, points to RSDT physical=%8.8X%8.8X \n", | 254 | "RSDP located at %p, points to RSDT physical=%8.8X%8.8X \n", |
277 | acpi_gbl_RSDP, | 255 | acpi_gbl_RSDP, |
278 | ACPI_FORMAT_UINT64 (address.pointer.value))); | 256 | ACPI_FORMAT_UINT64(address.pointer.value))); |
279 | 257 | ||
280 | /* Check the RSDT or XSDT signature */ | 258 | /* Check the RSDT or XSDT signature */ |
281 | 259 | ||
282 | status = acpi_tb_validate_rsdt (table_info.pointer); | 260 | status = acpi_tb_validate_rsdt(table_info.pointer); |
283 | if (ACPI_FAILURE (status)) { | 261 | if (ACPI_FAILURE(status)) { |
284 | return_ACPI_STATUS (status); | 262 | return_ACPI_STATUS(status); |
285 | } | 263 | } |
286 | 264 | ||
287 | /* Get the number of tables defined in the RSDT or XSDT */ | 265 | /* Get the number of tables defined in the RSDT or XSDT */ |
288 | 266 | ||
289 | acpi_gbl_rsdt_table_count = acpi_tb_get_table_count (acpi_gbl_RSDP, | 267 | acpi_gbl_rsdt_table_count = acpi_tb_get_table_count(acpi_gbl_RSDP, |
290 | table_info.pointer); | 268 | table_info.pointer); |
291 | 269 | ||
292 | /* Convert and/or copy to an XSDT structure */ | 270 | /* Convert and/or copy to an XSDT structure */ |
293 | 271 | ||
294 | status = acpi_tb_convert_to_xsdt (&table_info); | 272 | status = acpi_tb_convert_to_xsdt(&table_info); |
295 | if (ACPI_FAILURE (status)) { | 273 | if (ACPI_FAILURE(status)) { |
296 | return_ACPI_STATUS (status); | 274 | return_ACPI_STATUS(status); |
297 | } | 275 | } |
298 | 276 | ||
299 | /* Save the table pointers and allocation info */ | 277 | /* Save the table pointers and allocation info */ |
300 | 278 | ||
301 | status = acpi_tb_init_table_descriptor (ACPI_TABLE_XSDT, &table_info); | 279 | status = acpi_tb_init_table_descriptor(ACPI_TABLE_XSDT, &table_info); |
302 | if (ACPI_FAILURE (status)) { | 280 | if (ACPI_FAILURE(status)) { |
303 | return_ACPI_STATUS (status); | 281 | return_ACPI_STATUS(status); |
304 | } | 282 | } |
305 | 283 | ||
306 | acpi_gbl_XSDT = ACPI_CAST_PTR (XSDT_DESCRIPTOR, table_info.pointer); | 284 | acpi_gbl_XSDT = ACPI_CAST_PTR(XSDT_DESCRIPTOR, table_info.pointer); |
307 | 285 | ||
308 | ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "XSDT located at %p\n", acpi_gbl_XSDT)); | 286 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, "XSDT located at %p\n", acpi_gbl_XSDT)); |
309 | return_ACPI_STATUS (status); | 287 | return_ACPI_STATUS(status); |
310 | } | 288 | } |
311 | |||
312 | |||
diff --git a/drivers/acpi/tables/tbutils.c b/drivers/acpi/tables/tbutils.c index 6fc1e36e6042..5bcafebb9ddf 100644 --- a/drivers/acpi/tables/tbutils.c +++ b/drivers/acpi/tables/tbutils.c | |||
@@ -41,24 +41,18 @@ | |||
41 | * POSSIBILITY OF SUCH DAMAGES. | 41 | * POSSIBILITY OF SUCH DAMAGES. |
42 | */ | 42 | */ |
43 | 43 | ||
44 | |||
45 | #include <acpi/acpi.h> | 44 | #include <acpi/acpi.h> |
46 | #include <acpi/actables.h> | 45 | #include <acpi/actables.h> |
47 | 46 | ||
48 | |||
49 | #define _COMPONENT ACPI_TABLES | 47 | #define _COMPONENT ACPI_TABLES |
50 | ACPI_MODULE_NAME ("tbutils") | 48 | ACPI_MODULE_NAME("tbutils") |
51 | 49 | ||
52 | /* Local prototypes */ | 50 | /* Local prototypes */ |
53 | |||
54 | #ifdef ACPI_OBSOLETE_FUNCTIONS | 51 | #ifdef ACPI_OBSOLETE_FUNCTIONS |
55 | acpi_status | 52 | acpi_status |
56 | acpi_tb_handle_to_object ( | 53 | acpi_tb_handle_to_object(u16 table_id, struct acpi_table_desc **table_desc); |
57 | u16 table_id, | ||
58 | struct acpi_table_desc **table_desc); | ||
59 | #endif | 54 | #endif |
60 | 55 | ||
61 | |||
62 | /******************************************************************************* | 56 | /******************************************************************************* |
63 | * | 57 | * |
64 | * FUNCTION: acpi_tb_is_table_installed | 58 | * FUNCTION: acpi_tb_is_table_installed |
@@ -73,15 +67,11 @@ acpi_tb_handle_to_object ( | |||
73 | * | 67 | * |
74 | ******************************************************************************/ | 68 | ******************************************************************************/ |
75 | 69 | ||
76 | acpi_status | 70 | acpi_status acpi_tb_is_table_installed(struct acpi_table_desc *new_table_desc) |
77 | acpi_tb_is_table_installed ( | ||
78 | struct acpi_table_desc *new_table_desc) | ||
79 | { | 71 | { |
80 | struct acpi_table_desc *table_desc; | 72 | struct acpi_table_desc *table_desc; |
81 | |||
82 | |||
83 | ACPI_FUNCTION_TRACE ("tb_is_table_installed"); | ||
84 | 73 | ||
74 | ACPI_FUNCTION_TRACE("tb_is_table_installed"); | ||
85 | 75 | ||
86 | /* Get the list descriptor and first table descriptor */ | 76 | /* Get the list descriptor and first table descriptor */ |
87 | 77 | ||
@@ -93,22 +83,23 @@ acpi_tb_is_table_installed ( | |||
93 | /* Compare Revision and oem_table_id */ | 83 | /* Compare Revision and oem_table_id */ |
94 | 84 | ||
95 | if ((table_desc->loaded_into_namespace) && | 85 | if ((table_desc->loaded_into_namespace) && |
96 | (table_desc->pointer->revision == | 86 | (table_desc->pointer->revision == |
97 | new_table_desc->pointer->revision) && | 87 | new_table_desc->pointer->revision) && |
98 | (!ACPI_MEMCMP (table_desc->pointer->oem_table_id, | 88 | (!ACPI_MEMCMP(table_desc->pointer->oem_table_id, |
99 | new_table_desc->pointer->oem_table_id, 8))) { | 89 | new_table_desc->pointer->oem_table_id, 8))) { |
100 | /* This table is already installed */ | 90 | /* This table is already installed */ |
101 | 91 | ||
102 | ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, | 92 | ACPI_DEBUG_PRINT((ACPI_DB_TABLES, |
103 | "Table [%4.4s] already installed: Rev %X oem_table_id [%8.8s]\n", | 93 | "Table [%4.4s] already installed: Rev %X oem_table_id [%8.8s]\n", |
104 | new_table_desc->pointer->signature, | 94 | new_table_desc->pointer->signature, |
105 | new_table_desc->pointer->revision, | 95 | new_table_desc->pointer->revision, |
106 | new_table_desc->pointer->oem_table_id)); | 96 | new_table_desc->pointer-> |
97 | oem_table_id)); | ||
107 | 98 | ||
108 | new_table_desc->owner_id = table_desc->owner_id; | 99 | new_table_desc->owner_id = table_desc->owner_id; |
109 | new_table_desc->installed_desc = table_desc; | 100 | new_table_desc->installed_desc = table_desc; |
110 | 101 | ||
111 | return_ACPI_STATUS (AE_ALREADY_EXISTS); | 102 | return_ACPI_STATUS(AE_ALREADY_EXISTS); |
112 | } | 103 | } |
113 | 104 | ||
114 | /* Get next table on the list */ | 105 | /* Get next table on the list */ |
@@ -116,10 +107,9 @@ acpi_tb_is_table_installed ( | |||
116 | table_desc = table_desc->next; | 107 | table_desc = table_desc->next; |
117 | } | 108 | } |
118 | 109 | ||
119 | return_ACPI_STATUS (AE_OK); | 110 | return_ACPI_STATUS(AE_OK); |
120 | } | 111 | } |
121 | 112 | ||
122 | |||
123 | /******************************************************************************* | 113 | /******************************************************************************* |
124 | * | 114 | * |
125 | * FUNCTION: acpi_tb_validate_table_header | 115 | * FUNCTION: acpi_tb_validate_table_header |
@@ -141,57 +131,55 @@ acpi_tb_is_table_installed ( | |||
141 | ******************************************************************************/ | 131 | ******************************************************************************/ |
142 | 132 | ||
143 | acpi_status | 133 | acpi_status |
144 | acpi_tb_validate_table_header ( | 134 | acpi_tb_validate_table_header(struct acpi_table_header *table_header) |
145 | struct acpi_table_header *table_header) | ||
146 | { | 135 | { |
147 | acpi_name signature; | 136 | acpi_name signature; |
148 | |||
149 | |||
150 | ACPI_FUNCTION_NAME ("tb_validate_table_header"); | ||
151 | 137 | ||
138 | ACPI_FUNCTION_NAME("tb_validate_table_header"); | ||
152 | 139 | ||
153 | /* Verify that this is a valid address */ | 140 | /* Verify that this is a valid address */ |
154 | 141 | ||
155 | if (!acpi_os_readable (table_header, sizeof (struct acpi_table_header))) { | 142 | if (!acpi_os_readable(table_header, sizeof(struct acpi_table_header))) { |
156 | ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, | 143 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, |
157 | "Cannot read table header at %p\n", table_header)); | 144 | "Cannot read table header at %p\n", |
145 | table_header)); | ||
158 | 146 | ||
159 | return (AE_BAD_ADDRESS); | 147 | return (AE_BAD_ADDRESS); |
160 | } | 148 | } |
161 | 149 | ||
162 | /* Ensure that the signature is 4 ASCII characters */ | 150 | /* Ensure that the signature is 4 ASCII characters */ |
163 | 151 | ||
164 | ACPI_MOVE_32_TO_32 (&signature, table_header->signature); | 152 | ACPI_MOVE_32_TO_32(&signature, table_header->signature); |
165 | if (!acpi_ut_valid_acpi_name (signature)) { | 153 | if (!acpi_ut_valid_acpi_name(signature)) { |
166 | ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, | 154 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, |
167 | "Table signature at %p [%p] has invalid characters\n", | 155 | "Table signature at %p [%p] has invalid characters\n", |
168 | table_header, &signature)); | 156 | table_header, &signature)); |
169 | 157 | ||
170 | ACPI_REPORT_WARNING (("Invalid table signature found: [%4.4s]\n", | 158 | ACPI_REPORT_WARNING(("Invalid table signature found: [%4.4s]\n", |
171 | (char *) &signature)); | 159 | (char *)&signature)); |
172 | 160 | ||
173 | ACPI_DUMP_BUFFER (table_header, sizeof (struct acpi_table_header)); | 161 | ACPI_DUMP_BUFFER(table_header, |
162 | sizeof(struct acpi_table_header)); | ||
174 | return (AE_BAD_SIGNATURE); | 163 | return (AE_BAD_SIGNATURE); |
175 | } | 164 | } |
176 | 165 | ||
177 | /* Validate the table length */ | 166 | /* Validate the table length */ |
178 | 167 | ||
179 | if (table_header->length < sizeof (struct acpi_table_header)) { | 168 | if (table_header->length < sizeof(struct acpi_table_header)) { |
180 | ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, | 169 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, |
181 | "Invalid length in table header %p name %4.4s\n", | 170 | "Invalid length in table header %p name %4.4s\n", |
182 | table_header, (char *) &signature)); | 171 | table_header, (char *)&signature)); |
183 | 172 | ||
184 | ACPI_REPORT_WARNING (("Invalid table header length (0x%X) found\n", | 173 | ACPI_REPORT_WARNING(("Invalid table header length (0x%X) found\n", (u32) table_header->length)); |
185 | (u32) table_header->length)); | ||
186 | 174 | ||
187 | ACPI_DUMP_BUFFER (table_header, sizeof (struct acpi_table_header)); | 175 | ACPI_DUMP_BUFFER(table_header, |
176 | sizeof(struct acpi_table_header)); | ||
188 | return (AE_BAD_HEADER); | 177 | return (AE_BAD_HEADER); |
189 | } | 178 | } |
190 | 179 | ||
191 | return (AE_OK); | 180 | return (AE_OK); |
192 | } | 181 | } |
193 | 182 | ||
194 | |||
195 | /******************************************************************************* | 183 | /******************************************************************************* |
196 | * | 184 | * |
197 | * FUNCTION: acpi_tb_verify_table_checksum | 185 | * FUNCTION: acpi_tb_verify_table_checksum |
@@ -206,34 +194,28 @@ acpi_tb_validate_table_header ( | |||
206 | ******************************************************************************/ | 194 | ******************************************************************************/ |
207 | 195 | ||
208 | acpi_status | 196 | acpi_status |
209 | acpi_tb_verify_table_checksum ( | 197 | acpi_tb_verify_table_checksum(struct acpi_table_header * table_header) |
210 | struct acpi_table_header *table_header) | ||
211 | { | 198 | { |
212 | u8 checksum; | 199 | u8 checksum; |
213 | acpi_status status = AE_OK; | 200 | acpi_status status = AE_OK; |
214 | |||
215 | |||
216 | ACPI_FUNCTION_TRACE ("tb_verify_table_checksum"); | ||
217 | 201 | ||
202 | ACPI_FUNCTION_TRACE("tb_verify_table_checksum"); | ||
218 | 203 | ||
219 | /* Compute the checksum on the table */ | 204 | /* Compute the checksum on the table */ |
220 | 205 | ||
221 | checksum = acpi_tb_generate_checksum (table_header, table_header->length); | 206 | checksum = |
207 | acpi_tb_generate_checksum(table_header, table_header->length); | ||
222 | 208 | ||
223 | /* Return the appropriate exception */ | 209 | /* Return the appropriate exception */ |
224 | 210 | ||
225 | if (checksum) { | 211 | if (checksum) { |
226 | ACPI_REPORT_WARNING (( | 212 | ACPI_REPORT_WARNING(("Invalid checksum in table [%4.4s] (%02X, sum %02X is not zero)\n", table_header->signature, (u32) table_header->checksum, (u32) checksum)); |
227 | "Invalid checksum in table [%4.4s] (%02X, sum %02X is not zero)\n", | ||
228 | table_header->signature, (u32) table_header->checksum, | ||
229 | (u32) checksum)); | ||
230 | 213 | ||
231 | status = AE_BAD_CHECKSUM; | 214 | status = AE_BAD_CHECKSUM; |
232 | } | 215 | } |
233 | return_ACPI_STATUS (status); | 216 | return_ACPI_STATUS(status); |
234 | } | 217 | } |
235 | 218 | ||
236 | |||
237 | /******************************************************************************* | 219 | /******************************************************************************* |
238 | * | 220 | * |
239 | * FUNCTION: acpi_tb_generate_checksum | 221 | * FUNCTION: acpi_tb_generate_checksum |
@@ -247,15 +229,11 @@ acpi_tb_verify_table_checksum ( | |||
247 | * | 229 | * |
248 | ******************************************************************************/ | 230 | ******************************************************************************/ |
249 | 231 | ||
250 | u8 | 232 | u8 acpi_tb_generate_checksum(void *buffer, u32 length) |
251 | acpi_tb_generate_checksum ( | ||
252 | void *buffer, | ||
253 | u32 length) | ||
254 | { | 233 | { |
255 | const u8 *limit; | 234 | const u8 *limit; |
256 | const u8 *rover; | 235 | const u8 *rover; |
257 | u8 sum = 0; | 236 | u8 sum = 0; |
258 | |||
259 | 237 | ||
260 | if (buffer && length) { | 238 | if (buffer && length) { |
261 | /* Buffer and Length are valid */ | 239 | /* Buffer and Length are valid */ |
@@ -269,7 +247,6 @@ acpi_tb_generate_checksum ( | |||
269 | return (sum); | 247 | return (sum); |
270 | } | 248 | } |
271 | 249 | ||
272 | |||
273 | #ifdef ACPI_OBSOLETE_FUNCTIONS | 250 | #ifdef ACPI_OBSOLETE_FUNCTIONS |
274 | /******************************************************************************* | 251 | /******************************************************************************* |
275 | * | 252 | * |
@@ -285,16 +262,13 @@ acpi_tb_generate_checksum ( | |||
285 | ******************************************************************************/ | 262 | ******************************************************************************/ |
286 | 263 | ||
287 | acpi_status | 264 | acpi_status |
288 | acpi_tb_handle_to_object ( | 265 | acpi_tb_handle_to_object(u16 table_id, |
289 | u16 table_id, | 266 | struct acpi_table_desc ** return_table_desc) |
290 | struct acpi_table_desc **return_table_desc) | ||
291 | { | 267 | { |
292 | u32 i; | 268 | u32 i; |
293 | struct acpi_table_desc *table_desc; | 269 | struct acpi_table_desc *table_desc; |
294 | |||
295 | |||
296 | ACPI_FUNCTION_NAME ("tb_handle_to_object"); | ||
297 | 270 | ||
271 | ACPI_FUNCTION_NAME("tb_handle_to_object"); | ||
298 | 272 | ||
299 | for (i = 0; i < ACPI_TABLE_MAX; i++) { | 273 | for (i = 0; i < ACPI_TABLE_MAX; i++) { |
300 | table_desc = acpi_gbl_table_lists[i].next; | 274 | table_desc = acpi_gbl_table_lists[i].next; |
@@ -308,9 +282,8 @@ acpi_tb_handle_to_object ( | |||
308 | } | 282 | } |
309 | } | 283 | } |
310 | 284 | ||
311 | ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "table_id=%X does not exist\n", table_id)); | 285 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "table_id=%X does not exist\n", |
286 | table_id)); | ||
312 | return (AE_BAD_PARAMETER); | 287 | return (AE_BAD_PARAMETER); |
313 | } | 288 | } |
314 | #endif | 289 | #endif |
315 | |||
316 | |||
diff --git a/drivers/acpi/tables/tbxface.c b/drivers/acpi/tables/tbxface.c index e18a05d1b9b3..3f96a4909aad 100644 --- a/drivers/acpi/tables/tbxface.c +++ b/drivers/acpi/tables/tbxface.c | |||
@@ -48,10 +48,8 @@ | |||
48 | #include <acpi/acnamesp.h> | 48 | #include <acpi/acnamesp.h> |
49 | #include <acpi/actables.h> | 49 | #include <acpi/actables.h> |
50 | 50 | ||
51 | |||
52 | #define _COMPONENT ACPI_TABLES | 51 | #define _COMPONENT ACPI_TABLES |
53 | ACPI_MODULE_NAME ("tbxface") | 52 | ACPI_MODULE_NAME("tbxface") |
54 | |||
55 | 53 | ||
56 | /******************************************************************************* | 54 | /******************************************************************************* |
57 | * | 55 | * |
@@ -65,25 +63,20 @@ | |||
65 | * provided RSDT | 63 | * provided RSDT |
66 | * | 64 | * |
67 | ******************************************************************************/ | 65 | ******************************************************************************/ |
68 | 66 | acpi_status acpi_load_tables(void) | |
69 | acpi_status | ||
70 | acpi_load_tables ( | ||
71 | void) | ||
72 | { | 67 | { |
73 | struct acpi_pointer rsdp_address; | 68 | struct acpi_pointer rsdp_address; |
74 | acpi_status status; | 69 | acpi_status status; |
75 | |||
76 | |||
77 | ACPI_FUNCTION_TRACE ("acpi_load_tables"); | ||
78 | 70 | ||
71 | ACPI_FUNCTION_TRACE("acpi_load_tables"); | ||
79 | 72 | ||
80 | /* Get the RSDP */ | 73 | /* Get the RSDP */ |
81 | 74 | ||
82 | status = acpi_os_get_root_pointer (ACPI_LOGICAL_ADDRESSING, | 75 | status = acpi_os_get_root_pointer(ACPI_LOGICAL_ADDRESSING, |
83 | &rsdp_address); | 76 | &rsdp_address); |
84 | if (ACPI_FAILURE (status)) { | 77 | if (ACPI_FAILURE(status)) { |
85 | ACPI_REPORT_ERROR (("acpi_load_tables: Could not get RSDP, %s\n", | 78 | ACPI_REPORT_ERROR(("acpi_load_tables: Could not get RSDP, %s\n", |
86 | acpi_format_exception (status))); | 79 | acpi_format_exception(status))); |
87 | goto error_exit; | 80 | goto error_exit; |
88 | } | 81 | } |
89 | 82 | ||
@@ -91,54 +84,47 @@ acpi_load_tables ( | |||
91 | 84 | ||
92 | acpi_gbl_table_flags = rsdp_address.pointer_type; | 85 | acpi_gbl_table_flags = rsdp_address.pointer_type; |
93 | 86 | ||
94 | status = acpi_tb_verify_rsdp (&rsdp_address); | 87 | status = acpi_tb_verify_rsdp(&rsdp_address); |
95 | if (ACPI_FAILURE (status)) { | 88 | if (ACPI_FAILURE(status)) { |
96 | ACPI_REPORT_ERROR (("acpi_load_tables: RSDP Failed validation: %s\n", | 89 | ACPI_REPORT_ERROR(("acpi_load_tables: RSDP Failed validation: %s\n", acpi_format_exception(status))); |
97 | acpi_format_exception (status))); | ||
98 | goto error_exit; | 90 | goto error_exit; |
99 | } | 91 | } |
100 | 92 | ||
101 | /* Get the RSDT via the RSDP */ | 93 | /* Get the RSDT via the RSDP */ |
102 | 94 | ||
103 | status = acpi_tb_get_table_rsdt (); | 95 | status = acpi_tb_get_table_rsdt(); |
104 | if (ACPI_FAILURE (status)) { | 96 | if (ACPI_FAILURE(status)) { |
105 | ACPI_REPORT_ERROR (("acpi_load_tables: Could not load RSDT: %s\n", | 97 | ACPI_REPORT_ERROR(("acpi_load_tables: Could not load RSDT: %s\n", acpi_format_exception(status))); |
106 | acpi_format_exception (status))); | ||
107 | goto error_exit; | 98 | goto error_exit; |
108 | } | 99 | } |
109 | 100 | ||
110 | /* Now get the tables needed by this subsystem (FADT, DSDT, etc.) */ | 101 | /* Now get the tables needed by this subsystem (FADT, DSDT, etc.) */ |
111 | 102 | ||
112 | status = acpi_tb_get_required_tables (); | 103 | status = acpi_tb_get_required_tables(); |
113 | if (ACPI_FAILURE (status)) { | 104 | if (ACPI_FAILURE(status)) { |
114 | ACPI_REPORT_ERROR (( | 105 | ACPI_REPORT_ERROR(("acpi_load_tables: Error getting required tables (DSDT/FADT/FACS): %s\n", acpi_format_exception(status))); |
115 | "acpi_load_tables: Error getting required tables (DSDT/FADT/FACS): %s\n", | ||
116 | acpi_format_exception (status))); | ||
117 | goto error_exit; | 106 | goto error_exit; |
118 | } | 107 | } |
119 | 108 | ||
120 | ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "ACPI Tables successfully acquired\n")); | 109 | ACPI_DEBUG_PRINT((ACPI_DB_INIT, "ACPI Tables successfully acquired\n")); |
121 | 110 | ||
122 | /* Load the namespace from the tables */ | 111 | /* Load the namespace from the tables */ |
123 | 112 | ||
124 | status = acpi_ns_load_namespace (); | 113 | status = acpi_ns_load_namespace(); |
125 | if (ACPI_FAILURE (status)) { | 114 | if (ACPI_FAILURE(status)) { |
126 | ACPI_REPORT_ERROR (("acpi_load_tables: Could not load namespace: %s\n", | 115 | ACPI_REPORT_ERROR(("acpi_load_tables: Could not load namespace: %s\n", acpi_format_exception(status))); |
127 | acpi_format_exception (status))); | ||
128 | goto error_exit; | 116 | goto error_exit; |
129 | } | 117 | } |
130 | 118 | ||
131 | return_ACPI_STATUS (AE_OK); | 119 | return_ACPI_STATUS(AE_OK); |
132 | 120 | ||
121 | error_exit: | ||
122 | ACPI_REPORT_ERROR(("acpi_load_tables: Could not load tables: %s\n", | ||
123 | acpi_format_exception(status))); | ||
133 | 124 | ||
134 | error_exit: | 125 | return_ACPI_STATUS(status); |
135 | ACPI_REPORT_ERROR (("acpi_load_tables: Could not load tables: %s\n", | ||
136 | acpi_format_exception (status))); | ||
137 | |||
138 | return_ACPI_STATUS (status); | ||
139 | } | 126 | } |
140 | 127 | ||
141 | |||
142 | #ifdef ACPI_FUTURE_USAGE | 128 | #ifdef ACPI_FUTURE_USAGE |
143 | /******************************************************************************* | 129 | /******************************************************************************* |
144 | * | 130 | * |
@@ -156,43 +142,39 @@ error_exit: | |||
156 | * | 142 | * |
157 | ******************************************************************************/ | 143 | ******************************************************************************/ |
158 | 144 | ||
159 | acpi_status | 145 | acpi_status acpi_load_table(struct acpi_table_header *table_ptr) |
160 | acpi_load_table ( | ||
161 | struct acpi_table_header *table_ptr) | ||
162 | { | 146 | { |
163 | acpi_status status; | 147 | acpi_status status; |
164 | struct acpi_table_desc table_info; | 148 | struct acpi_table_desc table_info; |
165 | struct acpi_pointer address; | 149 | struct acpi_pointer address; |
166 | |||
167 | |||
168 | ACPI_FUNCTION_TRACE ("acpi_load_table"); | ||
169 | 150 | ||
151 | ACPI_FUNCTION_TRACE("acpi_load_table"); | ||
170 | 152 | ||
171 | if (!table_ptr) { | 153 | if (!table_ptr) { |
172 | return_ACPI_STATUS (AE_BAD_PARAMETER); | 154 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
173 | } | 155 | } |
174 | 156 | ||
175 | /* Copy the table to a local buffer */ | 157 | /* Copy the table to a local buffer */ |
176 | 158 | ||
177 | address.pointer_type = ACPI_LOGICAL_POINTER | ACPI_LOGICAL_ADDRESSING; | 159 | address.pointer_type = ACPI_LOGICAL_POINTER | ACPI_LOGICAL_ADDRESSING; |
178 | address.pointer.logical = table_ptr; | 160 | address.pointer.logical = table_ptr; |
179 | 161 | ||
180 | status = acpi_tb_get_table_body (&address, table_ptr, &table_info); | 162 | status = acpi_tb_get_table_body(&address, table_ptr, &table_info); |
181 | if (ACPI_FAILURE (status)) { | 163 | if (ACPI_FAILURE(status)) { |
182 | return_ACPI_STATUS (status); | 164 | return_ACPI_STATUS(status); |
183 | } | 165 | } |
184 | 166 | ||
185 | /* Check signature for a valid table type */ | 167 | /* Check signature for a valid table type */ |
186 | 168 | ||
187 | status = acpi_tb_recognize_table (&table_info, ACPI_TABLE_ALL); | 169 | status = acpi_tb_recognize_table(&table_info, ACPI_TABLE_ALL); |
188 | if (ACPI_FAILURE (status)) { | 170 | if (ACPI_FAILURE(status)) { |
189 | return_ACPI_STATUS (status); | 171 | return_ACPI_STATUS(status); |
190 | } | 172 | } |
191 | 173 | ||
192 | /* Install the new table into the local data structures */ | 174 | /* Install the new table into the local data structures */ |
193 | 175 | ||
194 | status = acpi_tb_install_table (&table_info); | 176 | status = acpi_tb_install_table(&table_info); |
195 | if (ACPI_FAILURE (status)) { | 177 | if (ACPI_FAILURE(status)) { |
196 | if (status == AE_ALREADY_EXISTS) { | 178 | if (status == AE_ALREADY_EXISTS) { |
197 | /* Table already exists, no error */ | 179 | /* Table already exists, no error */ |
198 | 180 | ||
@@ -201,8 +183,8 @@ acpi_load_table ( | |||
201 | 183 | ||
202 | /* Free table allocated by acpi_tb_get_table_body */ | 184 | /* Free table allocated by acpi_tb_get_table_body */ |
203 | 185 | ||
204 | acpi_tb_delete_single_table (&table_info); | 186 | acpi_tb_delete_single_table(&table_info); |
205 | return_ACPI_STATUS (status); | 187 | return_ACPI_STATUS(status); |
206 | } | 188 | } |
207 | 189 | ||
208 | /* Convert the table to common format if necessary */ | 190 | /* Convert the table to common format if necessary */ |
@@ -210,31 +192,32 @@ acpi_load_table ( | |||
210 | switch (table_info.type) { | 192 | switch (table_info.type) { |
211 | case ACPI_TABLE_FADT: | 193 | case ACPI_TABLE_FADT: |
212 | 194 | ||
213 | status = acpi_tb_convert_table_fadt (); | 195 | status = acpi_tb_convert_table_fadt(); |
214 | break; | 196 | break; |
215 | 197 | ||
216 | case ACPI_TABLE_FACS: | 198 | case ACPI_TABLE_FACS: |
217 | 199 | ||
218 | status = acpi_tb_build_common_facs (&table_info); | 200 | status = acpi_tb_build_common_facs(&table_info); |
219 | break; | 201 | break; |
220 | 202 | ||
221 | default: | 203 | default: |
222 | /* Load table into namespace if it contains executable AML */ | 204 | /* Load table into namespace if it contains executable AML */ |
223 | 205 | ||
224 | status = acpi_ns_load_table (table_info.installed_desc, acpi_gbl_root_node); | 206 | status = |
207 | acpi_ns_load_table(table_info.installed_desc, | ||
208 | acpi_gbl_root_node); | ||
225 | break; | 209 | break; |
226 | } | 210 | } |
227 | 211 | ||
228 | if (ACPI_FAILURE (status)) { | 212 | if (ACPI_FAILURE(status)) { |
229 | /* Uninstall table and free the buffer */ | 213 | /* Uninstall table and free the buffer */ |
230 | 214 | ||
231 | (void) acpi_tb_uninstall_table (table_info.installed_desc); | 215 | (void)acpi_tb_uninstall_table(table_info.installed_desc); |
232 | } | 216 | } |
233 | 217 | ||
234 | return_ACPI_STATUS (status); | 218 | return_ACPI_STATUS(status); |
235 | } | 219 | } |
236 | 220 | ||
237 | |||
238 | /******************************************************************************* | 221 | /******************************************************************************* |
239 | * | 222 | * |
240 | * FUNCTION: acpi_unload_table | 223 | * FUNCTION: acpi_unload_table |
@@ -247,20 +230,16 @@ acpi_load_table ( | |||
247 | * | 230 | * |
248 | ******************************************************************************/ | 231 | ******************************************************************************/ |
249 | 232 | ||
250 | acpi_status | 233 | acpi_status acpi_unload_table(acpi_table_type table_type) |
251 | acpi_unload_table ( | ||
252 | acpi_table_type table_type) | ||
253 | { | 234 | { |
254 | struct acpi_table_desc *table_desc; | 235 | struct acpi_table_desc *table_desc; |
255 | |||
256 | |||
257 | ACPI_FUNCTION_TRACE ("acpi_unload_table"); | ||
258 | 236 | ||
237 | ACPI_FUNCTION_TRACE("acpi_unload_table"); | ||
259 | 238 | ||
260 | /* Parameter validation */ | 239 | /* Parameter validation */ |
261 | 240 | ||
262 | if (table_type > ACPI_TABLE_MAX) { | 241 | if (table_type > ACPI_TABLE_MAX) { |
263 | return_ACPI_STATUS (AE_BAD_PARAMETER); | 242 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
264 | } | 243 | } |
265 | 244 | ||
266 | /* Find all tables of the requested type */ | 245 | /* Find all tables of the requested type */ |
@@ -273,18 +252,17 @@ acpi_unload_table ( | |||
273 | * "Scope" operator. Thus, we need to track ownership by an ID, not | 252 | * "Scope" operator. Thus, we need to track ownership by an ID, not |
274 | * simply a position within the hierarchy | 253 | * simply a position within the hierarchy |
275 | */ | 254 | */ |
276 | acpi_ns_delete_namespace_by_owner (table_desc->owner_id); | 255 | acpi_ns_delete_namespace_by_owner(table_desc->owner_id); |
277 | acpi_ut_release_owner_id (&table_desc->owner_id); | 256 | acpi_ut_release_owner_id(&table_desc->owner_id); |
278 | table_desc = table_desc->next; | 257 | table_desc = table_desc->next; |
279 | } | 258 | } |
280 | 259 | ||
281 | /* Delete (or unmap) all tables of this type */ | 260 | /* Delete (or unmap) all tables of this type */ |
282 | 261 | ||
283 | acpi_tb_delete_tables_by_type (table_type); | 262 | acpi_tb_delete_tables_by_type(table_type); |
284 | return_ACPI_STATUS (AE_OK); | 263 | return_ACPI_STATUS(AE_OK); |
285 | } | 264 | } |
286 | 265 | ||
287 | |||
288 | /******************************************************************************* | 266 | /******************************************************************************* |
289 | * | 267 | * |
290 | * FUNCTION: acpi_get_table_header | 268 | * FUNCTION: acpi_get_table_header |
@@ -307,54 +285,49 @@ acpi_unload_table ( | |||
307 | ******************************************************************************/ | 285 | ******************************************************************************/ |
308 | 286 | ||
309 | acpi_status | 287 | acpi_status |
310 | acpi_get_table_header ( | 288 | acpi_get_table_header(acpi_table_type table_type, |
311 | acpi_table_type table_type, | 289 | u32 instance, struct acpi_table_header *out_table_header) |
312 | u32 instance, | ||
313 | struct acpi_table_header *out_table_header) | ||
314 | { | 290 | { |
315 | struct acpi_table_header *tbl_ptr; | 291 | struct acpi_table_header *tbl_ptr; |
316 | acpi_status status; | 292 | acpi_status status; |
317 | |||
318 | |||
319 | ACPI_FUNCTION_TRACE ("acpi_get_table_header"); | ||
320 | 293 | ||
294 | ACPI_FUNCTION_TRACE("acpi_get_table_header"); | ||
321 | 295 | ||
322 | if ((instance == 0) || | 296 | if ((instance == 0) || |
323 | (table_type == ACPI_TABLE_RSDP) || | 297 | (table_type == ACPI_TABLE_RSDP) || (!out_table_header)) { |
324 | (!out_table_header)) { | 298 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
325 | return_ACPI_STATUS (AE_BAD_PARAMETER); | ||
326 | } | 299 | } |
327 | 300 | ||
328 | /* Check the table type and instance */ | 301 | /* Check the table type and instance */ |
329 | 302 | ||
330 | if ((table_type > ACPI_TABLE_MAX) || | 303 | if ((table_type > ACPI_TABLE_MAX) || |
331 | (ACPI_IS_SINGLE_TABLE (acpi_gbl_table_data[table_type].flags) && | 304 | (ACPI_IS_SINGLE_TABLE(acpi_gbl_table_data[table_type].flags) && |
332 | instance > 1)) { | 305 | instance > 1)) { |
333 | return_ACPI_STATUS (AE_BAD_PARAMETER); | 306 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
334 | } | 307 | } |
335 | 308 | ||
336 | /* Get a pointer to the entire table */ | 309 | /* Get a pointer to the entire table */ |
337 | 310 | ||
338 | status = acpi_tb_get_table_ptr (table_type, instance, &tbl_ptr); | 311 | status = acpi_tb_get_table_ptr(table_type, instance, &tbl_ptr); |
339 | if (ACPI_FAILURE (status)) { | 312 | if (ACPI_FAILURE(status)) { |
340 | return_ACPI_STATUS (status); | 313 | return_ACPI_STATUS(status); |
341 | } | 314 | } |
342 | 315 | ||
343 | /* The function will return a NULL pointer if the table is not loaded */ | 316 | /* The function will return a NULL pointer if the table is not loaded */ |
344 | 317 | ||
345 | if (tbl_ptr == NULL) { | 318 | if (tbl_ptr == NULL) { |
346 | return_ACPI_STATUS (AE_NOT_EXIST); | 319 | return_ACPI_STATUS(AE_NOT_EXIST); |
347 | } | 320 | } |
348 | 321 | ||
349 | /* Copy the header to the caller's buffer */ | 322 | /* Copy the header to the caller's buffer */ |
350 | 323 | ||
351 | ACPI_MEMCPY ((void *) out_table_header, (void *) tbl_ptr, | 324 | ACPI_MEMCPY((void *)out_table_header, (void *)tbl_ptr, |
352 | sizeof (struct acpi_table_header)); | 325 | sizeof(struct acpi_table_header)); |
353 | 326 | ||
354 | return_ACPI_STATUS (status); | 327 | return_ACPI_STATUS(status); |
355 | } | 328 | } |
356 | 329 | ||
357 | #endif /* ACPI_FUTURE_USAGE */ | 330 | #endif /* ACPI_FUTURE_USAGE */ |
358 | 331 | ||
359 | /******************************************************************************* | 332 | /******************************************************************************* |
360 | * | 333 | * |
@@ -380,43 +353,39 @@ acpi_get_table_header ( | |||
380 | ******************************************************************************/ | 353 | ******************************************************************************/ |
381 | 354 | ||
382 | acpi_status | 355 | acpi_status |
383 | acpi_get_table ( | 356 | acpi_get_table(acpi_table_type table_type, |
384 | acpi_table_type table_type, | 357 | u32 instance, struct acpi_buffer *ret_buffer) |
385 | u32 instance, | ||
386 | struct acpi_buffer *ret_buffer) | ||
387 | { | 358 | { |
388 | struct acpi_table_header *tbl_ptr; | 359 | struct acpi_table_header *tbl_ptr; |
389 | acpi_status status; | 360 | acpi_status status; |
390 | acpi_size table_length; | 361 | acpi_size table_length; |
391 | |||
392 | |||
393 | ACPI_FUNCTION_TRACE ("acpi_get_table"); | ||
394 | 362 | ||
363 | ACPI_FUNCTION_TRACE("acpi_get_table"); | ||
395 | 364 | ||
396 | /* Parameter validation */ | 365 | /* Parameter validation */ |
397 | 366 | ||
398 | if (instance == 0) { | 367 | if (instance == 0) { |
399 | return_ACPI_STATUS (AE_BAD_PARAMETER); | 368 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
400 | } | 369 | } |
401 | 370 | ||
402 | status = acpi_ut_validate_buffer (ret_buffer); | 371 | status = acpi_ut_validate_buffer(ret_buffer); |
403 | if (ACPI_FAILURE (status)) { | 372 | if (ACPI_FAILURE(status)) { |
404 | return_ACPI_STATUS (status); | 373 | return_ACPI_STATUS(status); |
405 | } | 374 | } |
406 | 375 | ||
407 | /* Check the table type and instance */ | 376 | /* Check the table type and instance */ |
408 | 377 | ||
409 | if ((table_type > ACPI_TABLE_MAX) || | 378 | if ((table_type > ACPI_TABLE_MAX) || |
410 | (ACPI_IS_SINGLE_TABLE (acpi_gbl_table_data[table_type].flags) && | 379 | (ACPI_IS_SINGLE_TABLE(acpi_gbl_table_data[table_type].flags) && |
411 | instance > 1)) { | 380 | instance > 1)) { |
412 | return_ACPI_STATUS (AE_BAD_PARAMETER); | 381 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
413 | } | 382 | } |
414 | 383 | ||
415 | /* Get a pointer to the entire table */ | 384 | /* Get a pointer to the entire table */ |
416 | 385 | ||
417 | status = acpi_tb_get_table_ptr (table_type, instance, &tbl_ptr); | 386 | status = acpi_tb_get_table_ptr(table_type, instance, &tbl_ptr); |
418 | if (ACPI_FAILURE (status)) { | 387 | if (ACPI_FAILURE(status)) { |
419 | return_ACPI_STATUS (status); | 388 | return_ACPI_STATUS(status); |
420 | } | 389 | } |
421 | 390 | ||
422 | /* | 391 | /* |
@@ -424,7 +393,7 @@ acpi_get_table ( | |||
424 | * table is not loaded. | 393 | * table is not loaded. |
425 | */ | 394 | */ |
426 | if (tbl_ptr == NULL) { | 395 | if (tbl_ptr == NULL) { |
427 | return_ACPI_STATUS (AE_NOT_EXIST); | 396 | return_ACPI_STATUS(AE_NOT_EXIST); |
428 | } | 397 | } |
429 | 398 | ||
430 | /* Get the table length */ | 399 | /* Get the table length */ |
@@ -432,23 +401,22 @@ acpi_get_table ( | |||
432 | if (table_type == ACPI_TABLE_RSDP) { | 401 | if (table_type == ACPI_TABLE_RSDP) { |
433 | /* RSD PTR is the only "table" without a header */ | 402 | /* RSD PTR is the only "table" without a header */ |
434 | 403 | ||
435 | table_length = sizeof (struct rsdp_descriptor); | 404 | table_length = sizeof(struct rsdp_descriptor); |
436 | } | 405 | } else { |
437 | else { | ||
438 | table_length = (acpi_size) tbl_ptr->length; | 406 | table_length = (acpi_size) tbl_ptr->length; |
439 | } | 407 | } |
440 | 408 | ||
441 | /* Validate/Allocate/Clear caller buffer */ | 409 | /* Validate/Allocate/Clear caller buffer */ |
442 | 410 | ||
443 | status = acpi_ut_initialize_buffer (ret_buffer, table_length); | 411 | status = acpi_ut_initialize_buffer(ret_buffer, table_length); |
444 | if (ACPI_FAILURE (status)) { | 412 | if (ACPI_FAILURE(status)) { |
445 | return_ACPI_STATUS (status); | 413 | return_ACPI_STATUS(status); |
446 | } | 414 | } |
447 | 415 | ||
448 | /* Copy the table to the buffer */ | 416 | /* Copy the table to the buffer */ |
449 | 417 | ||
450 | ACPI_MEMCPY ((void *) ret_buffer->pointer, (void *) tbl_ptr, table_length); | 418 | ACPI_MEMCPY((void *)ret_buffer->pointer, (void *)tbl_ptr, table_length); |
451 | return_ACPI_STATUS (AE_OK); | 419 | return_ACPI_STATUS(AE_OK); |
452 | } | 420 | } |
453 | EXPORT_SYMBOL(acpi_get_table); | ||
454 | 421 | ||
422 | EXPORT_SYMBOL(acpi_get_table); | ||
diff --git a/drivers/acpi/tables/tbxfroot.c b/drivers/acpi/tables/tbxfroot.c index 87dccdda9ae2..3b8a7e063e8a 100644 --- a/drivers/acpi/tables/tbxfroot.c +++ b/drivers/acpi/tables/tbxfroot.c | |||
@@ -46,22 +46,14 @@ | |||
46 | #include <acpi/acpi.h> | 46 | #include <acpi/acpi.h> |
47 | #include <acpi/actables.h> | 47 | #include <acpi/actables.h> |
48 | 48 | ||
49 | |||
50 | #define _COMPONENT ACPI_TABLES | 49 | #define _COMPONENT ACPI_TABLES |
51 | ACPI_MODULE_NAME ("tbxfroot") | 50 | ACPI_MODULE_NAME("tbxfroot") |
52 | 51 | ||
53 | /* Local prototypes */ | 52 | /* Local prototypes */ |
54 | |||
55 | static acpi_status | 53 | static acpi_status |
56 | acpi_tb_find_rsdp ( | 54 | acpi_tb_find_rsdp(struct acpi_table_desc *table_info, u32 flags); |
57 | struct acpi_table_desc *table_info, | ||
58 | u32 flags); | ||
59 | |||
60 | static u8 * | ||
61 | acpi_tb_scan_memory_for_rsdp ( | ||
62 | u8 *start_address, | ||
63 | u32 length); | ||
64 | 55 | ||
56 | static u8 *acpi_tb_scan_memory_for_rsdp(u8 * start_address, u32 length); | ||
65 | 57 | ||
66 | /******************************************************************************* | 58 | /******************************************************************************* |
67 | * | 59 | * |
@@ -75,17 +67,14 @@ acpi_tb_scan_memory_for_rsdp ( | |||
75 | * | 67 | * |
76 | ******************************************************************************/ | 68 | ******************************************************************************/ |
77 | 69 | ||
78 | acpi_status | 70 | acpi_status acpi_tb_validate_rsdp(struct rsdp_descriptor *rsdp) |
79 | acpi_tb_validate_rsdp ( | ||
80 | struct rsdp_descriptor *rsdp) | ||
81 | { | 71 | { |
82 | ACPI_FUNCTION_ENTRY (); | 72 | ACPI_FUNCTION_ENTRY(); |
83 | |||
84 | 73 | ||
85 | /* | 74 | /* |
86 | * The signature and checksum must both be correct | 75 | * The signature and checksum must both be correct |
87 | */ | 76 | */ |
88 | if (ACPI_STRNCMP ((char *) rsdp, RSDP_SIG, sizeof (RSDP_SIG)-1) != 0) { | 77 | if (ACPI_STRNCMP((char *)rsdp, RSDP_SIG, sizeof(RSDP_SIG) - 1) != 0) { |
89 | /* Nope, BAD Signature */ | 78 | /* Nope, BAD Signature */ |
90 | 79 | ||
91 | return (AE_BAD_SIGNATURE); | 80 | return (AE_BAD_SIGNATURE); |
@@ -93,21 +82,21 @@ acpi_tb_validate_rsdp ( | |||
93 | 82 | ||
94 | /* Check the standard checksum */ | 83 | /* Check the standard checksum */ |
95 | 84 | ||
96 | if (acpi_tb_generate_checksum (rsdp, ACPI_RSDP_CHECKSUM_LENGTH) != 0) { | 85 | if (acpi_tb_generate_checksum(rsdp, ACPI_RSDP_CHECKSUM_LENGTH) != 0) { |
97 | return (AE_BAD_CHECKSUM); | 86 | return (AE_BAD_CHECKSUM); |
98 | } | 87 | } |
99 | 88 | ||
100 | /* Check extended checksum if table version >= 2 */ | 89 | /* Check extended checksum if table version >= 2 */ |
101 | 90 | ||
102 | if ((rsdp->revision >= 2) && | 91 | if ((rsdp->revision >= 2) && |
103 | (acpi_tb_generate_checksum (rsdp, ACPI_RSDP_XCHECKSUM_LENGTH) != 0)) { | 92 | (acpi_tb_generate_checksum(rsdp, ACPI_RSDP_XCHECKSUM_LENGTH) != |
93 | 0)) { | ||
104 | return (AE_BAD_CHECKSUM); | 94 | return (AE_BAD_CHECKSUM); |
105 | } | 95 | } |
106 | 96 | ||
107 | return (AE_OK); | 97 | return (AE_OK); |
108 | } | 98 | } |
109 | 99 | ||
110 | |||
111 | /******************************************************************************* | 100 | /******************************************************************************* |
112 | * | 101 | * |
113 | * FUNCTION: acpi_tb_find_table | 102 | * FUNCTION: acpi_tb_find_table |
@@ -125,28 +114,24 @@ acpi_tb_validate_rsdp ( | |||
125 | ******************************************************************************/ | 114 | ******************************************************************************/ |
126 | 115 | ||
127 | acpi_status | 116 | acpi_status |
128 | acpi_tb_find_table ( | 117 | acpi_tb_find_table(char *signature, |
129 | char *signature, | 118 | char *oem_id, |
130 | char *oem_id, | 119 | char *oem_table_id, struct acpi_table_header ** table_ptr) |
131 | char *oem_table_id, | ||
132 | struct acpi_table_header **table_ptr) | ||
133 | { | 120 | { |
134 | acpi_status status; | 121 | acpi_status status; |
135 | struct acpi_table_header *table; | 122 | struct acpi_table_header *table; |
136 | |||
137 | |||
138 | ACPI_FUNCTION_TRACE ("tb_find_table"); | ||
139 | 123 | ||
124 | ACPI_FUNCTION_TRACE("tb_find_table"); | ||
140 | 125 | ||
141 | /* Validate string lengths */ | 126 | /* Validate string lengths */ |
142 | 127 | ||
143 | if ((ACPI_STRLEN (signature) > ACPI_NAME_SIZE) || | 128 | if ((ACPI_STRLEN(signature) > ACPI_NAME_SIZE) || |
144 | (ACPI_STRLEN (oem_id) > sizeof (table->oem_id)) || | 129 | (ACPI_STRLEN(oem_id) > sizeof(table->oem_id)) || |
145 | (ACPI_STRLEN (oem_table_id) > sizeof (table->oem_table_id))) { | 130 | (ACPI_STRLEN(oem_table_id) > sizeof(table->oem_table_id))) { |
146 | return_ACPI_STATUS (AE_AML_STRING_LIMIT); | 131 | return_ACPI_STATUS(AE_AML_STRING_LIMIT); |
147 | } | 132 | } |
148 | 133 | ||
149 | if (!ACPI_STRNCMP (signature, DSDT_SIG, ACPI_NAME_SIZE)) { | 134 | if (!ACPI_STRNCMP(signature, DSDT_SIG, ACPI_NAME_SIZE)) { |
150 | /* | 135 | /* |
151 | * The DSDT pointer is contained in the FADT, not the RSDT. | 136 | * The DSDT pointer is contained in the FADT, not the RSDT. |
152 | * This code should suffice, because the only code that would perform | 137 | * This code should suffice, because the only code that would perform |
@@ -155,40 +140,36 @@ acpi_tb_find_table ( | |||
155 | * If this becomes insufficient, the FADT will have to be found first. | 140 | * If this becomes insufficient, the FADT will have to be found first. |
156 | */ | 141 | */ |
157 | if (!acpi_gbl_DSDT) { | 142 | if (!acpi_gbl_DSDT) { |
158 | return_ACPI_STATUS (AE_NO_ACPI_TABLES); | 143 | return_ACPI_STATUS(AE_NO_ACPI_TABLES); |
159 | } | 144 | } |
160 | table = acpi_gbl_DSDT; | 145 | table = acpi_gbl_DSDT; |
161 | } | 146 | } else { |
162 | else { | ||
163 | /* Find the table */ | 147 | /* Find the table */ |
164 | 148 | ||
165 | status = acpi_get_firmware_table (signature, 1, | 149 | status = acpi_get_firmware_table(signature, 1, |
166 | ACPI_LOGICAL_ADDRESSING, &table); | 150 | ACPI_LOGICAL_ADDRESSING, |
167 | if (ACPI_FAILURE (status)) { | 151 | &table); |
168 | return_ACPI_STATUS (status); | 152 | if (ACPI_FAILURE(status)) { |
153 | return_ACPI_STATUS(status); | ||
169 | } | 154 | } |
170 | } | 155 | } |
171 | 156 | ||
172 | /* Check oem_id and oem_table_id */ | 157 | /* Check oem_id and oem_table_id */ |
173 | 158 | ||
174 | if ((oem_id[0] && ACPI_STRNCMP ( | 159 | if ((oem_id[0] && ACPI_STRNCMP(oem_id, table->oem_id, |
175 | oem_id, table->oem_id, | 160 | sizeof(table->oem_id))) || |
176 | sizeof (table->oem_id))) || | 161 | (oem_table_id[0] && ACPI_STRNCMP(oem_table_id, table->oem_table_id, |
177 | 162 | sizeof(table->oem_table_id)))) { | |
178 | (oem_table_id[0] && ACPI_STRNCMP ( | 163 | return_ACPI_STATUS(AE_AML_NAME_NOT_FOUND); |
179 | oem_table_id, table->oem_table_id, | ||
180 | sizeof (table->oem_table_id)))) { | ||
181 | return_ACPI_STATUS (AE_AML_NAME_NOT_FOUND); | ||
182 | } | 164 | } |
183 | 165 | ||
184 | ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "Found table [%4.4s]\n", | 166 | ACPI_DEBUG_PRINT((ACPI_DB_TABLES, "Found table [%4.4s]\n", |
185 | table->signature)); | 167 | table->signature)); |
186 | 168 | ||
187 | *table_ptr = table; | 169 | *table_ptr = table; |
188 | return_ACPI_STATUS (AE_OK); | 170 | return_ACPI_STATUS(AE_OK); |
189 | } | 171 | } |
190 | 172 | ||
191 | |||
192 | /******************************************************************************* | 173 | /******************************************************************************* |
193 | * | 174 | * |
194 | * FUNCTION: acpi_get_firmware_table | 175 | * FUNCTION: acpi_get_firmware_table |
@@ -209,34 +190,28 @@ acpi_tb_find_table ( | |||
209 | ******************************************************************************/ | 190 | ******************************************************************************/ |
210 | 191 | ||
211 | acpi_status | 192 | acpi_status |
212 | acpi_get_firmware_table ( | 193 | acpi_get_firmware_table(acpi_string signature, |
213 | acpi_string signature, | 194 | u32 instance, |
214 | u32 instance, | 195 | u32 flags, struct acpi_table_header **table_pointer) |
215 | u32 flags, | ||
216 | struct acpi_table_header **table_pointer) | ||
217 | { | 196 | { |
218 | acpi_status status; | 197 | acpi_status status; |
219 | struct acpi_pointer address; | 198 | struct acpi_pointer address; |
220 | struct acpi_table_header *header = NULL; | 199 | struct acpi_table_header *header = NULL; |
221 | struct acpi_table_desc *table_info = NULL; | 200 | struct acpi_table_desc *table_info = NULL; |
222 | struct acpi_table_desc *rsdt_info; | 201 | struct acpi_table_desc *rsdt_info; |
223 | u32 table_count; | 202 | u32 table_count; |
224 | u32 i; | 203 | u32 i; |
225 | u32 j; | 204 | u32 j; |
226 | |||
227 | |||
228 | ACPI_FUNCTION_TRACE ("acpi_get_firmware_table"); | ||
229 | 205 | ||
206 | ACPI_FUNCTION_TRACE("acpi_get_firmware_table"); | ||
230 | 207 | ||
231 | /* | 208 | /* |
232 | * Ensure that at least the table manager is initialized. We don't | 209 | * Ensure that at least the table manager is initialized. We don't |
233 | * require that the entire ACPI subsystem is up for this interface. | 210 | * require that the entire ACPI subsystem is up for this interface. |
234 | * If we have a buffer, we must have a length too | 211 | * If we have a buffer, we must have a length too |
235 | */ | 212 | */ |
236 | if ((instance == 0) || | 213 | if ((instance == 0) || (!signature) || (!table_pointer)) { |
237 | (!signature) || | 214 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
238 | (!table_pointer)) { | ||
239 | return_ACPI_STATUS (AE_BAD_PARAMETER); | ||
240 | } | 215 | } |
241 | 216 | ||
242 | /* Ensure that we have a RSDP */ | 217 | /* Ensure that we have a RSDP */ |
@@ -244,40 +219,41 @@ acpi_get_firmware_table ( | |||
244 | if (!acpi_gbl_RSDP) { | 219 | if (!acpi_gbl_RSDP) { |
245 | /* Get the RSDP */ | 220 | /* Get the RSDP */ |
246 | 221 | ||
247 | status = acpi_os_get_root_pointer (flags, &address); | 222 | status = acpi_os_get_root_pointer(flags, &address); |
248 | if (ACPI_FAILURE (status)) { | 223 | if (ACPI_FAILURE(status)) { |
249 | ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "RSDP not found\n")); | 224 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, "RSDP not found\n")); |
250 | return_ACPI_STATUS (AE_NO_ACPI_TABLES); | 225 | return_ACPI_STATUS(AE_NO_ACPI_TABLES); |
251 | } | 226 | } |
252 | 227 | ||
253 | /* Map and validate the RSDP */ | 228 | /* Map and validate the RSDP */ |
254 | 229 | ||
255 | if ((flags & ACPI_MEMORY_MODE) == ACPI_LOGICAL_ADDRESSING) { | 230 | if ((flags & ACPI_MEMORY_MODE) == ACPI_LOGICAL_ADDRESSING) { |
256 | status = acpi_os_map_memory (address.pointer.physical, | 231 | status = acpi_os_map_memory(address.pointer.physical, |
257 | sizeof (struct rsdp_descriptor), (void *) &acpi_gbl_RSDP); | 232 | sizeof(struct |
258 | if (ACPI_FAILURE (status)) { | 233 | rsdp_descriptor), |
259 | return_ACPI_STATUS (status); | 234 | (void *)&acpi_gbl_RSDP); |
235 | if (ACPI_FAILURE(status)) { | ||
236 | return_ACPI_STATUS(status); | ||
260 | } | 237 | } |
261 | } | 238 | } else { |
262 | else { | ||
263 | acpi_gbl_RSDP = address.pointer.logical; | 239 | acpi_gbl_RSDP = address.pointer.logical; |
264 | } | 240 | } |
265 | 241 | ||
266 | /* The RDSP signature and checksum must both be correct */ | 242 | /* The RDSP signature and checksum must both be correct */ |
267 | 243 | ||
268 | status = acpi_tb_validate_rsdp (acpi_gbl_RSDP); | 244 | status = acpi_tb_validate_rsdp(acpi_gbl_RSDP); |
269 | if (ACPI_FAILURE (status)) { | 245 | if (ACPI_FAILURE(status)) { |
270 | return_ACPI_STATUS (status); | 246 | return_ACPI_STATUS(status); |
271 | } | 247 | } |
272 | } | 248 | } |
273 | 249 | ||
274 | /* Get the RSDT address via the RSDP */ | 250 | /* Get the RSDT address via the RSDP */ |
275 | 251 | ||
276 | acpi_tb_get_rsdt_address (&address); | 252 | acpi_tb_get_rsdt_address(&address); |
277 | ACPI_DEBUG_PRINT ((ACPI_DB_INFO, | 253 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
278 | "RSDP located at %p, RSDT physical=%8.8X%8.8X \n", | 254 | "RSDP located at %p, RSDT physical=%8.8X%8.8X \n", |
279 | acpi_gbl_RSDP, | 255 | acpi_gbl_RSDP, |
280 | ACPI_FORMAT_UINT64 (address.pointer.value))); | 256 | ACPI_FORMAT_UINT64(address.pointer.value))); |
281 | 257 | ||
282 | /* Insert processor_mode flags */ | 258 | /* Insert processor_mode flags */ |
283 | 259 | ||
@@ -285,30 +261,30 @@ acpi_get_firmware_table ( | |||
285 | 261 | ||
286 | /* Get and validate the RSDT */ | 262 | /* Get and validate the RSDT */ |
287 | 263 | ||
288 | rsdt_info = ACPI_MEM_CALLOCATE (sizeof (struct acpi_table_desc)); | 264 | rsdt_info = ACPI_MEM_CALLOCATE(sizeof(struct acpi_table_desc)); |
289 | if (!rsdt_info) { | 265 | if (!rsdt_info) { |
290 | return_ACPI_STATUS (AE_NO_MEMORY); | 266 | return_ACPI_STATUS(AE_NO_MEMORY); |
291 | } | 267 | } |
292 | 268 | ||
293 | status = acpi_tb_get_table (&address, rsdt_info); | 269 | status = acpi_tb_get_table(&address, rsdt_info); |
294 | if (ACPI_FAILURE (status)) { | 270 | if (ACPI_FAILURE(status)) { |
295 | goto cleanup; | 271 | goto cleanup; |
296 | } | 272 | } |
297 | 273 | ||
298 | status = acpi_tb_validate_rsdt (rsdt_info->pointer); | 274 | status = acpi_tb_validate_rsdt(rsdt_info->pointer); |
299 | if (ACPI_FAILURE (status)) { | 275 | if (ACPI_FAILURE(status)) { |
300 | goto cleanup; | 276 | goto cleanup; |
301 | } | 277 | } |
302 | 278 | ||
303 | /* Allocate a scratch table header and table descriptor */ | 279 | /* Allocate a scratch table header and table descriptor */ |
304 | 280 | ||
305 | header = ACPI_MEM_ALLOCATE (sizeof (struct acpi_table_header)); | 281 | header = ACPI_MEM_ALLOCATE(sizeof(struct acpi_table_header)); |
306 | if (!header) { | 282 | if (!header) { |
307 | status = AE_NO_MEMORY; | 283 | status = AE_NO_MEMORY; |
308 | goto cleanup; | 284 | goto cleanup; |
309 | } | 285 | } |
310 | 286 | ||
311 | table_info = ACPI_MEM_ALLOCATE (sizeof (struct acpi_table_desc)); | 287 | table_info = ACPI_MEM_ALLOCATE(sizeof(struct acpi_table_desc)); |
312 | if (!table_info) { | 288 | if (!table_info) { |
313 | status = AE_NO_MEMORY; | 289 | status = AE_NO_MEMORY; |
314 | goto cleanup; | 290 | goto cleanup; |
@@ -316,7 +292,8 @@ acpi_get_firmware_table ( | |||
316 | 292 | ||
317 | /* Get the number of table pointers within the RSDT */ | 293 | /* Get the number of table pointers within the RSDT */ |
318 | 294 | ||
319 | table_count = acpi_tb_get_table_count (acpi_gbl_RSDP, rsdt_info->pointer); | 295 | table_count = |
296 | acpi_tb_get_table_count(acpi_gbl_RSDP, rsdt_info->pointer); | ||
320 | address.pointer_type = acpi_gbl_table_flags | flags; | 297 | address.pointer_type = acpi_gbl_table_flags | flags; |
321 | 298 | ||
322 | /* | 299 | /* |
@@ -329,32 +306,37 @@ acpi_get_firmware_table ( | |||
329 | * RSDT pointers are 32 bits, XSDT pointers are 64 bits | 306 | * RSDT pointers are 32 bits, XSDT pointers are 64 bits |
330 | */ | 307 | */ |
331 | if (acpi_gbl_root_table_type == ACPI_TABLE_TYPE_RSDT) { | 308 | if (acpi_gbl_root_table_type == ACPI_TABLE_TYPE_RSDT) { |
332 | address.pointer.value = (ACPI_CAST_PTR ( | 309 | address.pointer.value = |
333 | RSDT_DESCRIPTOR, rsdt_info->pointer))->table_offset_entry[i]; | 310 | (ACPI_CAST_PTR |
334 | } | 311 | (RSDT_DESCRIPTOR, |
335 | else { | 312 | rsdt_info->pointer))->table_offset_entry[i]; |
336 | address.pointer.value = (ACPI_CAST_PTR ( | 313 | } else { |
337 | XSDT_DESCRIPTOR, rsdt_info->pointer))->table_offset_entry[i]; | 314 | address.pointer.value = |
315 | (ACPI_CAST_PTR | ||
316 | (XSDT_DESCRIPTOR, | ||
317 | rsdt_info->pointer))->table_offset_entry[i]; | ||
338 | } | 318 | } |
339 | 319 | ||
340 | /* Get the table header */ | 320 | /* Get the table header */ |
341 | 321 | ||
342 | status = acpi_tb_get_table_header (&address, header); | 322 | status = acpi_tb_get_table_header(&address, header); |
343 | if (ACPI_FAILURE (status)) { | 323 | if (ACPI_FAILURE(status)) { |
344 | goto cleanup; | 324 | goto cleanup; |
345 | } | 325 | } |
346 | 326 | ||
347 | /* Compare table signatures and table instance */ | 327 | /* Compare table signatures and table instance */ |
348 | 328 | ||
349 | if (!ACPI_STRNCMP (header->signature, signature, ACPI_NAME_SIZE)) { | 329 | if (!ACPI_STRNCMP(header->signature, signature, ACPI_NAME_SIZE)) { |
350 | /* An instance of the table was found */ | 330 | /* An instance of the table was found */ |
351 | 331 | ||
352 | j++; | 332 | j++; |
353 | if (j >= instance) { | 333 | if (j >= instance) { |
354 | /* Found the correct instance, get the entire table */ | 334 | /* Found the correct instance, get the entire table */ |
355 | 335 | ||
356 | status = acpi_tb_get_table_body (&address, header, table_info); | 336 | status = |
357 | if (ACPI_FAILURE (status)) { | 337 | acpi_tb_get_table_body(&address, header, |
338 | table_info); | ||
339 | if (ACPI_FAILURE(status)) { | ||
358 | goto cleanup; | 340 | goto cleanup; |
359 | } | 341 | } |
360 | 342 | ||
@@ -368,24 +350,23 @@ acpi_get_firmware_table ( | |||
368 | 350 | ||
369 | status = AE_NOT_EXIST; | 351 | status = AE_NOT_EXIST; |
370 | 352 | ||
371 | 353 | cleanup: | |
372 | cleanup: | ||
373 | if (rsdt_info->pointer) { | 354 | if (rsdt_info->pointer) { |
374 | acpi_os_unmap_memory (rsdt_info->pointer, | 355 | acpi_os_unmap_memory(rsdt_info->pointer, |
375 | (acpi_size) rsdt_info->pointer->length); | 356 | (acpi_size) rsdt_info->pointer->length); |
376 | } | 357 | } |
377 | ACPI_MEM_FREE (rsdt_info); | 358 | ACPI_MEM_FREE(rsdt_info); |
378 | 359 | ||
379 | if (header) { | 360 | if (header) { |
380 | ACPI_MEM_FREE (header); | 361 | ACPI_MEM_FREE(header); |
381 | } | 362 | } |
382 | if (table_info) { | 363 | if (table_info) { |
383 | ACPI_MEM_FREE (table_info); | 364 | ACPI_MEM_FREE(table_info); |
384 | } | 365 | } |
385 | return_ACPI_STATUS (status); | 366 | return_ACPI_STATUS(status); |
386 | } | 367 | } |
387 | EXPORT_SYMBOL(acpi_get_firmware_table); | ||
388 | 368 | ||
369 | EXPORT_SYMBOL(acpi_get_firmware_table); | ||
389 | 370 | ||
390 | /* TBD: Move to a new file */ | 371 | /* TBD: Move to a new file */ |
391 | 372 | ||
@@ -404,35 +385,29 @@ EXPORT_SYMBOL(acpi_get_firmware_table); | |||
404 | * | 385 | * |
405 | ******************************************************************************/ | 386 | ******************************************************************************/ |
406 | 387 | ||
407 | acpi_status | 388 | acpi_status acpi_find_root_pointer(u32 flags, struct acpi_pointer *rsdp_address) |
408 | acpi_find_root_pointer ( | ||
409 | u32 flags, | ||
410 | struct acpi_pointer *rsdp_address) | ||
411 | { | 389 | { |
412 | struct acpi_table_desc table_info; | 390 | struct acpi_table_desc table_info; |
413 | acpi_status status; | 391 | acpi_status status; |
414 | |||
415 | |||
416 | ACPI_FUNCTION_TRACE ("acpi_find_root_pointer"); | ||
417 | 392 | ||
393 | ACPI_FUNCTION_TRACE("acpi_find_root_pointer"); | ||
418 | 394 | ||
419 | /* Get the RSDP */ | 395 | /* Get the RSDP */ |
420 | 396 | ||
421 | status = acpi_tb_find_rsdp (&table_info, flags); | 397 | status = acpi_tb_find_rsdp(&table_info, flags); |
422 | if (ACPI_FAILURE (status)) { | 398 | if (ACPI_FAILURE(status)) { |
423 | ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, | 399 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, |
424 | "RSDP structure not found, %s Flags=%X\n", | 400 | "RSDP structure not found, %s Flags=%X\n", |
425 | acpi_format_exception (status), flags)); | 401 | acpi_format_exception(status), flags)); |
426 | 402 | ||
427 | return_ACPI_STATUS (AE_NO_ACPI_TABLES); | 403 | return_ACPI_STATUS(AE_NO_ACPI_TABLES); |
428 | } | 404 | } |
429 | 405 | ||
430 | rsdp_address->pointer_type = ACPI_PHYSICAL_POINTER; | 406 | rsdp_address->pointer_type = ACPI_PHYSICAL_POINTER; |
431 | rsdp_address->pointer.physical = table_info.physical_address; | 407 | rsdp_address->pointer.physical = table_info.physical_address; |
432 | return_ACPI_STATUS (AE_OK); | 408 | return_ACPI_STATUS(AE_OK); |
433 | } | 409 | } |
434 | 410 | ||
435 | |||
436 | /******************************************************************************* | 411 | /******************************************************************************* |
437 | * | 412 | * |
438 | * FUNCTION: acpi_tb_scan_memory_for_rsdp | 413 | * FUNCTION: acpi_tb_scan_memory_for_rsdp |
@@ -446,34 +421,32 @@ acpi_find_root_pointer ( | |||
446 | * | 421 | * |
447 | ******************************************************************************/ | 422 | ******************************************************************************/ |
448 | 423 | ||
449 | static u8 * | 424 | static u8 *acpi_tb_scan_memory_for_rsdp(u8 * start_address, u32 length) |
450 | acpi_tb_scan_memory_for_rsdp ( | ||
451 | u8 *start_address, | ||
452 | u32 length) | ||
453 | { | 425 | { |
454 | acpi_status status; | 426 | acpi_status status; |
455 | u8 *mem_rover; | 427 | u8 *mem_rover; |
456 | u8 *end_address; | 428 | u8 *end_address; |
457 | |||
458 | |||
459 | ACPI_FUNCTION_TRACE ("tb_scan_memory_for_rsdp"); | ||
460 | 429 | ||
430 | ACPI_FUNCTION_TRACE("tb_scan_memory_for_rsdp"); | ||
461 | 431 | ||
462 | end_address = start_address + length; | 432 | end_address = start_address + length; |
463 | 433 | ||
464 | /* Search from given start address for the requested length */ | 434 | /* Search from given start address for the requested length */ |
465 | 435 | ||
466 | for (mem_rover = start_address; mem_rover < end_address; | 436 | for (mem_rover = start_address; mem_rover < end_address; |
467 | mem_rover += ACPI_RSDP_SCAN_STEP) { | 437 | mem_rover += ACPI_RSDP_SCAN_STEP) { |
468 | /* The RSDP signature and checksum must both be correct */ | 438 | /* The RSDP signature and checksum must both be correct */ |
469 | 439 | ||
470 | status = acpi_tb_validate_rsdp (ACPI_CAST_PTR (struct rsdp_descriptor, mem_rover)); | 440 | status = |
471 | if (ACPI_SUCCESS (status)) { | 441 | acpi_tb_validate_rsdp(ACPI_CAST_PTR |
442 | (struct rsdp_descriptor, mem_rover)); | ||
443 | if (ACPI_SUCCESS(status)) { | ||
472 | /* Sig and checksum valid, we have found a real RSDP */ | 444 | /* Sig and checksum valid, we have found a real RSDP */ |
473 | 445 | ||
474 | ACPI_DEBUG_PRINT ((ACPI_DB_INFO, | 446 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
475 | "RSDP located at physical address %p\n", mem_rover)); | 447 | "RSDP located at physical address %p\n", |
476 | return_PTR (mem_rover); | 448 | mem_rover)); |
449 | return_PTR(mem_rover); | ||
477 | } | 450 | } |
478 | 451 | ||
479 | /* No sig match or bad checksum, keep searching */ | 452 | /* No sig match or bad checksum, keep searching */ |
@@ -481,13 +454,12 @@ acpi_tb_scan_memory_for_rsdp ( | |||
481 | 454 | ||
482 | /* Searched entire block, no RSDP was found */ | 455 | /* Searched entire block, no RSDP was found */ |
483 | 456 | ||
484 | ACPI_DEBUG_PRINT ((ACPI_DB_INFO, | 457 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
485 | "Searched entire block from %p, valid RSDP was not found\n", | 458 | "Searched entire block from %p, valid RSDP was not found\n", |
486 | start_address)); | 459 | start_address)); |
487 | return_PTR (NULL); | 460 | return_PTR(NULL); |
488 | } | 461 | } |
489 | 462 | ||
490 | |||
491 | /******************************************************************************* | 463 | /******************************************************************************* |
492 | * | 464 | * |
493 | * FUNCTION: acpi_tb_find_rsdp | 465 | * FUNCTION: acpi_tb_find_rsdp |
@@ -511,18 +483,14 @@ acpi_tb_scan_memory_for_rsdp ( | |||
511 | ******************************************************************************/ | 483 | ******************************************************************************/ |
512 | 484 | ||
513 | static acpi_status | 485 | static acpi_status |
514 | acpi_tb_find_rsdp ( | 486 | acpi_tb_find_rsdp(struct acpi_table_desc *table_info, u32 flags) |
515 | struct acpi_table_desc *table_info, | ||
516 | u32 flags) | ||
517 | { | 487 | { |
518 | u8 *table_ptr; | 488 | u8 *table_ptr; |
519 | u8 *mem_rover; | 489 | u8 *mem_rover; |
520 | u32 physical_address; | 490 | u32 physical_address; |
521 | acpi_status status; | 491 | acpi_status status; |
522 | |||
523 | |||
524 | ACPI_FUNCTION_TRACE ("tb_find_rsdp"); | ||
525 | 492 | ||
493 | ACPI_FUNCTION_TRACE("tb_find_rsdp"); | ||
526 | 494 | ||
527 | /* | 495 | /* |
528 | * Scan supports either logical addressing or physical addressing | 496 | * Scan supports either logical addressing or physical addressing |
@@ -530,23 +498,25 @@ acpi_tb_find_rsdp ( | |||
530 | if ((flags & ACPI_MEMORY_MODE) == ACPI_LOGICAL_ADDRESSING) { | 498 | if ((flags & ACPI_MEMORY_MODE) == ACPI_LOGICAL_ADDRESSING) { |
531 | /* 1a) Get the location of the Extended BIOS Data Area (EBDA) */ | 499 | /* 1a) Get the location of the Extended BIOS Data Area (EBDA) */ |
532 | 500 | ||
533 | status = acpi_os_map_memory ( | 501 | status = acpi_os_map_memory((acpi_physical_address) |
534 | (acpi_physical_address) ACPI_EBDA_PTR_LOCATION, | 502 | ACPI_EBDA_PTR_LOCATION, |
535 | ACPI_EBDA_PTR_LENGTH, (void *) &table_ptr); | 503 | ACPI_EBDA_PTR_LENGTH, |
536 | if (ACPI_FAILURE (status)) { | 504 | (void *)&table_ptr); |
537 | ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, | 505 | if (ACPI_FAILURE(status)) { |
538 | "Could not map memory at %8.8X for length %X\n", | 506 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, |
539 | ACPI_EBDA_PTR_LOCATION, ACPI_EBDA_PTR_LENGTH)); | 507 | "Could not map memory at %8.8X for length %X\n", |
540 | 508 | ACPI_EBDA_PTR_LOCATION, | |
541 | return_ACPI_STATUS (status); | 509 | ACPI_EBDA_PTR_LENGTH)); |
510 | |||
511 | return_ACPI_STATUS(status); | ||
542 | } | 512 | } |
543 | 513 | ||
544 | ACPI_MOVE_16_TO_32 (&physical_address, table_ptr); | 514 | ACPI_MOVE_16_TO_32(&physical_address, table_ptr); |
545 | 515 | ||
546 | /* Convert segment part to physical address */ | 516 | /* Convert segment part to physical address */ |
547 | 517 | ||
548 | physical_address <<= 4; | 518 | physical_address <<= 4; |
549 | acpi_os_unmap_memory (table_ptr, ACPI_EBDA_PTR_LENGTH); | 519 | acpi_os_unmap_memory(table_ptr, ACPI_EBDA_PTR_LENGTH); |
550 | 520 | ||
551 | /* EBDA present? */ | 521 | /* EBDA present? */ |
552 | 522 | ||
@@ -555,59 +525,67 @@ acpi_tb_find_rsdp ( | |||
555 | * 1b) Search EBDA paragraphs (EBDa is required to be a | 525 | * 1b) Search EBDA paragraphs (EBDa is required to be a |
556 | * minimum of 1_k length) | 526 | * minimum of 1_k length) |
557 | */ | 527 | */ |
558 | status = acpi_os_map_memory ( | 528 | status = acpi_os_map_memory((acpi_physical_address) |
559 | (acpi_physical_address) physical_address, | 529 | physical_address, |
560 | ACPI_EBDA_WINDOW_SIZE, (void *) &table_ptr); | 530 | ACPI_EBDA_WINDOW_SIZE, |
561 | if (ACPI_FAILURE (status)) { | 531 | (void *)&table_ptr); |
562 | ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, | 532 | if (ACPI_FAILURE(status)) { |
563 | "Could not map memory at %8.8X for length %X\n", | 533 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, |
564 | physical_address, ACPI_EBDA_WINDOW_SIZE)); | 534 | "Could not map memory at %8.8X for length %X\n", |
565 | 535 | physical_address, | |
566 | return_ACPI_STATUS (status); | 536 | ACPI_EBDA_WINDOW_SIZE)); |
537 | |||
538 | return_ACPI_STATUS(status); | ||
567 | } | 539 | } |
568 | 540 | ||
569 | mem_rover = acpi_tb_scan_memory_for_rsdp (table_ptr, | 541 | mem_rover = acpi_tb_scan_memory_for_rsdp(table_ptr, |
570 | ACPI_EBDA_WINDOW_SIZE); | 542 | ACPI_EBDA_WINDOW_SIZE); |
571 | acpi_os_unmap_memory (table_ptr, ACPI_EBDA_WINDOW_SIZE); | 543 | acpi_os_unmap_memory(table_ptr, ACPI_EBDA_WINDOW_SIZE); |
572 | 544 | ||
573 | if (mem_rover) { | 545 | if (mem_rover) { |
574 | /* Return the physical address */ | 546 | /* Return the physical address */ |
575 | 547 | ||
576 | physical_address += ACPI_PTR_DIFF (mem_rover, table_ptr); | 548 | physical_address += |
549 | ACPI_PTR_DIFF(mem_rover, table_ptr); | ||
577 | 550 | ||
578 | table_info->physical_address = | 551 | table_info->physical_address = |
579 | (acpi_physical_address) physical_address; | 552 | (acpi_physical_address) physical_address; |
580 | return_ACPI_STATUS (AE_OK); | 553 | return_ACPI_STATUS(AE_OK); |
581 | } | 554 | } |
582 | } | 555 | } |
583 | 556 | ||
584 | /* | 557 | /* |
585 | * 2) Search upper memory: 16-byte boundaries in E0000h-FFFFFh | 558 | * 2) Search upper memory: 16-byte boundaries in E0000h-FFFFFh |
586 | */ | 559 | */ |
587 | status = acpi_os_map_memory ( | 560 | status = acpi_os_map_memory((acpi_physical_address) |
588 | (acpi_physical_address) ACPI_HI_RSDP_WINDOW_BASE, | 561 | ACPI_HI_RSDP_WINDOW_BASE, |
589 | ACPI_HI_RSDP_WINDOW_SIZE, (void *) &table_ptr); | 562 | ACPI_HI_RSDP_WINDOW_SIZE, |
590 | 563 | (void *)&table_ptr); | |
591 | if (ACPI_FAILURE (status)) { | 564 | |
592 | ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, | 565 | if (ACPI_FAILURE(status)) { |
593 | "Could not map memory at %8.8X for length %X\n", | 566 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, |
594 | ACPI_HI_RSDP_WINDOW_BASE, ACPI_HI_RSDP_WINDOW_SIZE)); | 567 | "Could not map memory at %8.8X for length %X\n", |
595 | 568 | ACPI_HI_RSDP_WINDOW_BASE, | |
596 | return_ACPI_STATUS (status); | 569 | ACPI_HI_RSDP_WINDOW_SIZE)); |
570 | |||
571 | return_ACPI_STATUS(status); | ||
597 | } | 572 | } |
598 | 573 | ||
599 | mem_rover = acpi_tb_scan_memory_for_rsdp (table_ptr, ACPI_HI_RSDP_WINDOW_SIZE); | 574 | mem_rover = |
600 | acpi_os_unmap_memory (table_ptr, ACPI_HI_RSDP_WINDOW_SIZE); | 575 | acpi_tb_scan_memory_for_rsdp(table_ptr, |
576 | ACPI_HI_RSDP_WINDOW_SIZE); | ||
577 | acpi_os_unmap_memory(table_ptr, ACPI_HI_RSDP_WINDOW_SIZE); | ||
601 | 578 | ||
602 | if (mem_rover) { | 579 | if (mem_rover) { |
603 | /* Return the physical address */ | 580 | /* Return the physical address */ |
604 | 581 | ||
605 | physical_address = | 582 | physical_address = |
606 | ACPI_HI_RSDP_WINDOW_BASE + ACPI_PTR_DIFF (mem_rover, table_ptr); | 583 | ACPI_HI_RSDP_WINDOW_BASE + ACPI_PTR_DIFF(mem_rover, |
584 | table_ptr); | ||
607 | 585 | ||
608 | table_info->physical_address = | 586 | table_info->physical_address = |
609 | (acpi_physical_address) physical_address; | 587 | (acpi_physical_address) physical_address; |
610 | return_ACPI_STATUS (AE_OK); | 588 | return_ACPI_STATUS(AE_OK); |
611 | } | 589 | } |
612 | } | 590 | } |
613 | 591 | ||
@@ -617,8 +595,8 @@ acpi_tb_find_rsdp ( | |||
617 | else { | 595 | else { |
618 | /* 1a) Get the location of the EBDA */ | 596 | /* 1a) Get the location of the EBDA */ |
619 | 597 | ||
620 | ACPI_MOVE_16_TO_32 (&physical_address, ACPI_EBDA_PTR_LOCATION); | 598 | ACPI_MOVE_16_TO_32(&physical_address, ACPI_EBDA_PTR_LOCATION); |
621 | physical_address <<= 4; /* Convert segment to physical address */ | 599 | physical_address <<= 4; /* Convert segment to physical address */ |
622 | 600 | ||
623 | /* EBDA present? */ | 601 | /* EBDA present? */ |
624 | 602 | ||
@@ -627,35 +605,38 @@ acpi_tb_find_rsdp ( | |||
627 | * 1b) Search EBDA paragraphs (EBDa is required to be a minimum of | 605 | * 1b) Search EBDA paragraphs (EBDa is required to be a minimum of |
628 | * 1_k length) | 606 | * 1_k length) |
629 | */ | 607 | */ |
630 | mem_rover = acpi_tb_scan_memory_for_rsdp ( | 608 | mem_rover = |
631 | ACPI_PHYSADDR_TO_PTR (physical_address), | 609 | acpi_tb_scan_memory_for_rsdp(ACPI_PHYSADDR_TO_PTR |
632 | ACPI_EBDA_WINDOW_SIZE); | 610 | (physical_address), |
611 | ACPI_EBDA_WINDOW_SIZE); | ||
633 | if (mem_rover) { | 612 | if (mem_rover) { |
634 | /* Return the physical address */ | 613 | /* Return the physical address */ |
635 | 614 | ||
636 | table_info->physical_address = ACPI_TO_INTEGER (mem_rover); | 615 | table_info->physical_address = |
637 | return_ACPI_STATUS (AE_OK); | 616 | ACPI_TO_INTEGER(mem_rover); |
617 | return_ACPI_STATUS(AE_OK); | ||
638 | } | 618 | } |
639 | } | 619 | } |
640 | 620 | ||
641 | /* 2) Search upper memory: 16-byte boundaries in E0000h-FFFFFh */ | 621 | /* 2) Search upper memory: 16-byte boundaries in E0000h-FFFFFh */ |
642 | 622 | ||
643 | mem_rover = acpi_tb_scan_memory_for_rsdp ( | 623 | mem_rover = |
644 | ACPI_PHYSADDR_TO_PTR (ACPI_HI_RSDP_WINDOW_BASE), | 624 | acpi_tb_scan_memory_for_rsdp(ACPI_PHYSADDR_TO_PTR |
645 | ACPI_HI_RSDP_WINDOW_SIZE); | 625 | (ACPI_HI_RSDP_WINDOW_BASE), |
626 | ACPI_HI_RSDP_WINDOW_SIZE); | ||
646 | if (mem_rover) { | 627 | if (mem_rover) { |
647 | /* Found it, return the physical address */ | 628 | /* Found it, return the physical address */ |
648 | 629 | ||
649 | table_info->physical_address = ACPI_TO_INTEGER (mem_rover); | 630 | table_info->physical_address = |
650 | return_ACPI_STATUS (AE_OK); | 631 | ACPI_TO_INTEGER(mem_rover); |
632 | return_ACPI_STATUS(AE_OK); | ||
651 | } | 633 | } |
652 | } | 634 | } |
653 | 635 | ||
654 | /* A valid RSDP was not found */ | 636 | /* A valid RSDP was not found */ |
655 | 637 | ||
656 | ACPI_REPORT_ERROR (("No valid RSDP was found\n")); | 638 | ACPI_REPORT_ERROR(("No valid RSDP was found\n")); |
657 | return_ACPI_STATUS (AE_NOT_FOUND); | 639 | return_ACPI_STATUS(AE_NOT_FOUND); |
658 | } | 640 | } |
659 | 641 | ||
660 | #endif | 642 | #endif |
661 | |||