diff options
Diffstat (limited to 'drivers/acpi/executer/exdump.c')
-rw-r--r-- | drivers/acpi/executer/exdump.c | 69 |
1 files changed, 49 insertions, 20 deletions
diff --git a/drivers/acpi/executer/exdump.c b/drivers/acpi/executer/exdump.c index 51c9c29987c3..74f1b22601b3 100644 --- a/drivers/acpi/executer/exdump.c +++ b/drivers/acpi/executer/exdump.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2007, R. Byron Moore | 8 | * Copyright (C) 2000 - 2008, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
@@ -500,25 +500,28 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth) | |||
500 | acpi_os_printf("Reference: Debug\n"); | 500 | acpi_os_printf("Reference: Debug\n"); |
501 | break; | 501 | break; |
502 | 502 | ||
503 | case AML_NAME_OP: | 503 | case AML_INDEX_OP: |
504 | 504 | ||
505 | ACPI_DUMP_PATHNAME(obj_desc->reference.object, | 505 | acpi_os_printf("Reference: Index %p\n", |
506 | "Reference: Name: ", ACPI_LV_INFO, | 506 | obj_desc->reference.object); |
507 | _COMPONENT); | ||
508 | ACPI_DUMP_ENTRY(obj_desc->reference.object, | ||
509 | ACPI_LV_INFO); | ||
510 | break; | 507 | break; |
511 | 508 | ||
512 | case AML_INDEX_OP: | 509 | case AML_LOAD_OP: |
513 | 510 | ||
514 | acpi_os_printf("Reference: Index %p\n", | 511 | acpi_os_printf("Reference: [DdbHandle] TableIndex %p\n", |
515 | obj_desc->reference.object); | 512 | obj_desc->reference.object); |
516 | break; | 513 | break; |
517 | 514 | ||
518 | case AML_REF_OF_OP: | 515 | case AML_REF_OF_OP: |
519 | 516 | ||
520 | acpi_os_printf("Reference: (RefOf) %p\n", | 517 | acpi_os_printf("Reference: (RefOf) %p [%s]\n", |
521 | obj_desc->reference.object); | 518 | obj_desc->reference.object, |
519 | acpi_ut_get_type_name(((union | ||
520 | acpi_operand_object | ||
521 | *)obj_desc-> | ||
522 | reference. | ||
523 | object)->common. | ||
524 | type)); | ||
522 | break; | 525 | break; |
523 | 526 | ||
524 | case AML_ARG_OP: | 527 | case AML_ARG_OP: |
@@ -559,8 +562,9 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth) | |||
559 | 562 | ||
560 | case AML_INT_NAMEPATH_OP: | 563 | case AML_INT_NAMEPATH_OP: |
561 | 564 | ||
562 | acpi_os_printf("Reference.Node->Name %X\n", | 565 | acpi_os_printf("Reference: Namepath %X [%4.4s]\n", |
563 | obj_desc->reference.node->name.integer); | 566 | obj_desc->reference.node->name.integer, |
567 | obj_desc->reference.node->name.ascii); | ||
564 | break; | 568 | break; |
565 | 569 | ||
566 | default: | 570 | default: |
@@ -640,8 +644,8 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth) | |||
640 | acpi_os_printf("\n"); | 644 | acpi_os_printf("\n"); |
641 | } else { | 645 | } else { |
642 | acpi_os_printf(" base %8.8X%8.8X Length %X\n", | 646 | acpi_os_printf(" base %8.8X%8.8X Length %X\n", |
643 | ACPI_FORMAT_UINT64(obj_desc->region. | 647 | ACPI_FORMAT_NATIVE_UINT(obj_desc->region. |
644 | address), | 648 | address), |
645 | obj_desc->region.length); | 649 | obj_desc->region.length); |
646 | } | 650 | } |
647 | break; | 651 | break; |
@@ -877,20 +881,43 @@ static void acpi_ex_dump_reference_obj(union acpi_operand_object *obj_desc) | |||
877 | ret_buf.length = ACPI_ALLOCATE_LOCAL_BUFFER; | 881 | ret_buf.length = ACPI_ALLOCATE_LOCAL_BUFFER; |
878 | 882 | ||
879 | if (obj_desc->reference.opcode == AML_INT_NAMEPATH_OP) { | 883 | if (obj_desc->reference.opcode == AML_INT_NAMEPATH_OP) { |
880 | acpi_os_printf("Named Object %p ", obj_desc->reference.node); | 884 | acpi_os_printf(" Named Object %p ", obj_desc->reference.node); |
881 | 885 | ||
882 | status = | 886 | status = |
883 | acpi_ns_handle_to_pathname(obj_desc->reference.node, | 887 | acpi_ns_handle_to_pathname(obj_desc->reference.node, |
884 | &ret_buf); | 888 | &ret_buf); |
885 | if (ACPI_FAILURE(status)) { | 889 | if (ACPI_FAILURE(status)) { |
886 | acpi_os_printf("Could not convert name to pathname\n"); | 890 | acpi_os_printf(" Could not convert name to pathname\n"); |
887 | } else { | 891 | } else { |
888 | acpi_os_printf("%s\n", (char *)ret_buf.pointer); | 892 | acpi_os_printf("%s\n", (char *)ret_buf.pointer); |
889 | ACPI_FREE(ret_buf.pointer); | 893 | ACPI_FREE(ret_buf.pointer); |
890 | } | 894 | } |
891 | } else if (obj_desc->reference.object) { | 895 | } else if (obj_desc->reference.object) { |
892 | acpi_os_printf("\nReferenced Object: %p\n", | 896 | if (ACPI_GET_DESCRIPTOR_TYPE(obj_desc) == |
893 | obj_desc->reference.object); | 897 | ACPI_DESC_TYPE_OPERAND) { |
898 | acpi_os_printf(" Target: %p", | ||
899 | obj_desc->reference.object); | ||
900 | if (obj_desc->reference.opcode == AML_LOAD_OP) { | ||
901 | /* | ||
902 | * For DDBHandle reference, | ||
903 | * obj_desc->Reference.Object is the table index | ||
904 | */ | ||
905 | acpi_os_printf(" [DDBHandle]\n"); | ||
906 | } else { | ||
907 | acpi_os_printf(" [%s]\n", | ||
908 | acpi_ut_get_type_name(((union | ||
909 | acpi_operand_object | ||
910 | *) | ||
911 | obj_desc-> | ||
912 | reference. | ||
913 | object)-> | ||
914 | common. | ||
915 | type)); | ||
916 | } | ||
917 | } else { | ||
918 | acpi_os_printf(" Target: %p\n", | ||
919 | obj_desc->reference.object); | ||
920 | } | ||
894 | } | 921 | } |
895 | } | 922 | } |
896 | 923 | ||
@@ -976,7 +1003,9 @@ acpi_ex_dump_package_obj(union acpi_operand_object *obj_desc, | |||
976 | 1003 | ||
977 | case ACPI_TYPE_LOCAL_REFERENCE: | 1004 | case ACPI_TYPE_LOCAL_REFERENCE: |
978 | 1005 | ||
979 | acpi_os_printf("[Object Reference] "); | 1006 | acpi_os_printf("[Object Reference] %s", |
1007 | (acpi_ps_get_opcode_info | ||
1008 | (obj_desc->reference.opcode))->name); | ||
980 | acpi_ex_dump_reference_obj(obj_desc); | 1009 | acpi_ex_dump_reference_obj(obj_desc); |
981 | break; | 1010 | break; |
982 | 1011 | ||