aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/tables/tbconvrt.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/tables/tbconvrt.c')
-rw-r--r--drivers/acpi/tables/tbconvrt.c46
1 files changed, 23 insertions, 23 deletions
diff --git a/drivers/acpi/tables/tbconvrt.c b/drivers/acpi/tables/tbconvrt.c
index 03b37d2223bc..d697fcb35d52 100644
--- a/drivers/acpi/tables/tbconvrt.c
+++ b/drivers/acpi/tables/tbconvrt.c
@@ -41,8 +41,6 @@
41 * POSSIBILITY OF SUCH DAMAGES. 41 * POSSIBILITY OF SUCH DAMAGES.
42 */ 42 */
43 43
44#include <linux/module.h>
45
46#include <acpi/acpi.h> 44#include <acpi/acpi.h>
47#include <acpi/actables.h> 45#include <acpi/actables.h>
48 46
@@ -56,15 +54,15 @@ acpi_tb_init_generic_address(struct acpi_generic_address *new_gas_struct,
56 acpi_physical_address address); 54 acpi_physical_address address);
57 55
58static void 56static void
59acpi_tb_convert_fadt1(struct fadt_descriptor_rev2 *local_fadt, 57acpi_tb_convert_fadt1(struct fadt_descriptor *local_fadt,
60 struct fadt_descriptor_rev1 *original_fadt); 58 struct fadt_descriptor_rev1 *original_fadt);
61 59
62static void 60static void
63acpi_tb_convert_fadt2(struct fadt_descriptor_rev2 *local_fadt, 61acpi_tb_convert_fadt2(struct fadt_descriptor *local_fadt,
64 struct fadt_descriptor_rev2 *original_fadt); 62 struct fadt_descriptor *original_fadt);
65 63
66u8 acpi_fadt_is_v1; 64u8 acpi_fadt_is_v1;
67EXPORT_SYMBOL(acpi_fadt_is_v1); 65ACPI_EXPORT_SYMBOL(acpi_fadt_is_v1)
68 66
69/******************************************************************************* 67/*******************************************************************************
70 * 68 *
@@ -122,7 +120,7 @@ acpi_status acpi_tb_convert_to_xsdt(struct acpi_table_desc *table_info)
122{ 120{
123 acpi_size table_size; 121 acpi_size table_size;
124 u32 i; 122 u32 i;
125 XSDT_DESCRIPTOR *new_table; 123 struct xsdt_descriptor *new_table;
126 124
127 ACPI_FUNCTION_ENTRY(); 125 ACPI_FUNCTION_ENTRY();
128 126
@@ -133,7 +131,7 @@ acpi_status acpi_tb_convert_to_xsdt(struct acpi_table_desc *table_info)
133 131
134 /* Allocate an XSDT */ 132 /* Allocate an XSDT */
135 133
136 new_table = ACPI_MEM_CALLOCATE(table_size); 134 new_table = ACPI_ALLOCATE_ZEROED(table_size);
137 if (!new_table) { 135 if (!new_table) {
138 return (AE_NO_MEMORY); 136 return (AE_NO_MEMORY);
139 } 137 }
@@ -147,17 +145,18 @@ acpi_status acpi_tb_convert_to_xsdt(struct acpi_table_desc *table_info)
147 /* Copy the table pointers */ 145 /* Copy the table pointers */
148 146
149 for (i = 0; i < acpi_gbl_rsdt_table_count; i++) { 147 for (i = 0; i < acpi_gbl_rsdt_table_count; i++) {
148
150 /* RSDT pointers are 32 bits, XSDT pointers are 64 bits */ 149 /* RSDT pointers are 32 bits, XSDT pointers are 64 bits */
151 150
152 if (acpi_gbl_root_table_type == ACPI_TABLE_TYPE_RSDT) { 151 if (acpi_gbl_root_table_type == ACPI_TABLE_TYPE_RSDT) {
153 ACPI_STORE_ADDRESS(new_table->table_offset_entry[i], 152 ACPI_STORE_ADDRESS(new_table->table_offset_entry[i],
154 (ACPI_CAST_PTR 153 (ACPI_CAST_PTR
155 (struct rsdt_descriptor_rev1, 154 (struct rsdt_descriptor,
156 table_info->pointer))-> 155 table_info->pointer))->
157 table_offset_entry[i]); 156 table_offset_entry[i]);
158 } else { 157 } else {
159 new_table->table_offset_entry[i] = 158 new_table->table_offset_entry[i] =
160 (ACPI_CAST_PTR(XSDT_DESCRIPTOR, 159 (ACPI_CAST_PTR(struct xsdt_descriptor,
161 table_info->pointer))-> 160 table_info->pointer))->
162 table_offset_entry[i]; 161 table_offset_entry[i];
163 } 162 }
@@ -219,7 +218,7 @@ acpi_tb_init_generic_address(struct acpi_generic_address *new_gas_struct,
219 ******************************************************************************/ 218 ******************************************************************************/
220 219
221static void 220static void
222acpi_tb_convert_fadt1(struct fadt_descriptor_rev2 *local_fadt, 221acpi_tb_convert_fadt1(struct fadt_descriptor *local_fadt,
223 struct fadt_descriptor_rev1 *original_fadt) 222 struct fadt_descriptor_rev1 *original_fadt)
224{ 223{
225 224
@@ -365,14 +364,13 @@ acpi_tb_convert_fadt1(struct fadt_descriptor_rev2 *local_fadt,
365 ******************************************************************************/ 364 ******************************************************************************/
366 365
367static void 366static void
368acpi_tb_convert_fadt2(struct fadt_descriptor_rev2 *local_fadt, 367acpi_tb_convert_fadt2(struct fadt_descriptor *local_fadt,
369 struct fadt_descriptor_rev2 *original_fadt) 368 struct fadt_descriptor *original_fadt)
370{ 369{
371 370
372 /* We have an ACPI 2.0 FADT but we must copy it to our local buffer */ 371 /* We have an ACPI 2.0 FADT but we must copy it to our local buffer */
373 372
374 ACPI_MEMCPY(local_fadt, original_fadt, 373 ACPI_MEMCPY(local_fadt, original_fadt, sizeof(struct fadt_descriptor));
375 sizeof(struct fadt_descriptor_rev2));
376 374
377 /* 375 /*
378 * "X" fields are optional extensions to the original V1.0 fields, so 376 * "X" fields are optional extensions to the original V1.0 fields, so
@@ -491,10 +489,10 @@ acpi_tb_convert_fadt2(struct fadt_descriptor_rev2 *local_fadt,
491 489
492acpi_status acpi_tb_convert_table_fadt(void) 490acpi_status acpi_tb_convert_table_fadt(void)
493{ 491{
494 struct fadt_descriptor_rev2 *local_fadt; 492 struct fadt_descriptor *local_fadt;
495 struct acpi_table_desc *table_desc; 493 struct acpi_table_desc *table_desc;
496 494
497 ACPI_FUNCTION_TRACE("tb_convert_table_fadt"); 495 ACPI_FUNCTION_TRACE(tb_convert_table_fadt);
498 496
499 /* 497 /*
500 * acpi_gbl_FADT is valid. Validate the FADT length. The table must be 498 * acpi_gbl_FADT is valid. Validate the FADT length. The table must be
@@ -508,13 +506,14 @@ acpi_status acpi_tb_convert_table_fadt(void)
508 506
509 /* Allocate buffer for the ACPI 2.0(+) FADT */ 507 /* Allocate buffer for the ACPI 2.0(+) FADT */
510 508
511 local_fadt = ACPI_MEM_CALLOCATE(sizeof(struct fadt_descriptor_rev2)); 509 local_fadt = ACPI_ALLOCATE_ZEROED(sizeof(struct fadt_descriptor));
512 if (!local_fadt) { 510 if (!local_fadt) {
513 return_ACPI_STATUS(AE_NO_MEMORY); 511 return_ACPI_STATUS(AE_NO_MEMORY);
514 } 512 }
515 513
516 if (acpi_gbl_FADT->revision >= FADT2_REVISION_ID) { 514 if (acpi_gbl_FADT->revision >= FADT2_REVISION_ID) {
517 if (acpi_gbl_FADT->length < sizeof(struct fadt_descriptor_rev2)) { 515 if (acpi_gbl_FADT->length < sizeof(struct fadt_descriptor)) {
516
518 /* Length is too short to be a V2.0 table */ 517 /* Length is too short to be a V2.0 table */
519 518
520 ACPI_WARNING((AE_INFO, 519 ACPI_WARNING((AE_INFO,
@@ -538,11 +537,11 @@ acpi_status acpi_tb_convert_table_fadt(void)
538 /* Global FADT pointer will point to the new common V2.0 FADT */ 537 /* Global FADT pointer will point to the new common V2.0 FADT */
539 538
540 acpi_gbl_FADT = local_fadt; 539 acpi_gbl_FADT = local_fadt;
541 acpi_gbl_FADT->length = sizeof(FADT_DESCRIPTOR); 540 acpi_gbl_FADT->length = sizeof(struct fadt_descriptor);
542 541
543 /* Free the original table */ 542 /* Free the original table */
544 543
545 table_desc = acpi_gbl_table_lists[ACPI_TABLE_FADT].next; 544 table_desc = acpi_gbl_table_lists[ACPI_TABLE_ID_FADT].next;
546 acpi_tb_delete_single_table(table_desc); 545 acpi_tb_delete_single_table(table_desc);
547 546
548 /* Install the new table */ 547 /* Install the new table */
@@ -550,7 +549,7 @@ acpi_status acpi_tb_convert_table_fadt(void)
550 table_desc->pointer = 549 table_desc->pointer =
551 ACPI_CAST_PTR(struct acpi_table_header, acpi_gbl_FADT); 550 ACPI_CAST_PTR(struct acpi_table_header, acpi_gbl_FADT);
552 table_desc->allocation = ACPI_MEM_ALLOCATED; 551 table_desc->allocation = ACPI_MEM_ALLOCATED;
553 table_desc->length = sizeof(struct fadt_descriptor_rev2); 552 table_desc->length = sizeof(struct fadt_descriptor);
554 553
555 /* Dump the entire FADT */ 554 /* Dump the entire FADT */
556 555
@@ -580,7 +579,7 @@ acpi_status acpi_tb_convert_table_fadt(void)
580acpi_status acpi_tb_build_common_facs(struct acpi_table_desc *table_info) 579acpi_status acpi_tb_build_common_facs(struct acpi_table_desc *table_info)
581{ 580{
582 581
583 ACPI_FUNCTION_TRACE("tb_build_common_facs"); 582 ACPI_FUNCTION_TRACE(tb_build_common_facs);
584 583
585 /* Absolute minimum length is 24, but the ACPI spec says 64 */ 584 /* Absolute minimum length is 24, but the ACPI spec says 64 */
586 585
@@ -603,6 +602,7 @@ acpi_status acpi_tb_build_common_facs(struct acpi_table_desc *table_info)
603 if ((acpi_gbl_RSDP->revision < 2) || 602 if ((acpi_gbl_RSDP->revision < 2) ||
604 (acpi_gbl_FACS->length < 32) || 603 (acpi_gbl_FACS->length < 32) ||
605 (!(acpi_gbl_FACS->xfirmware_waking_vector))) { 604 (!(acpi_gbl_FACS->xfirmware_waking_vector))) {
605
606 /* ACPI 1.0 FACS or short table or optional X_ field is zero */ 606 /* ACPI 1.0 FACS or short table or optional X_ field is zero */
607 607
608 acpi_gbl_common_fACS.firmware_waking_vector = ACPI_CAST_PTR(u64, 608 acpi_gbl_common_fACS.firmware_waking_vector = ACPI_CAST_PTR(u64,