Talk:ACPI/Fix common problems

From Gentoo Linux Wiki

Jump to: navigation, search

Hello. First of all, thank you to the Gentoo community for the best guide on the net about DSDT debugging!

But I'd also like to know if anyone has found a solution to the _WDG warning. Here's an example from my iasl output:

dsdt.dsl  3367:                         Name (_WDG, Buffer (0x50)
Warning  2096 -            Unknown reserved name ^  (_WDG)


Here's the ASL code causing the warning:

Name (_WDG, Buffer (0x50)
{
    0xA6, 0x1D, 0x85, 0x2E, 0x53, 0xD0, 0x5F, 0x49,
    0x9D, 0xFA, 0x1A, 0x4A, 0xD6, 0x2E, 0x6A, 0x86,
    0x41, 0x43, 0x01, 0x00, 0xA7, 0x1D, 0x85, 0x2E,
    0x53, 0xD0, 0x5F, 0x49, 0x9D, 0xFA, 0x1A, 0x4A,
    0xD6, 0x2E, 0x6A, 0x86, 0x41, 0x44, 0x01, 0x00,
    0x3B, 0x6D, 0x43, 0x71, 0xDD, 0xFB, 0x72, 0x4C,
    0xBC, 0xB8, 0x43, 0x5B, 0xFE, 0x0D, 0x64, 0xF9,
    0x42, 0x44, 0x01, 0x00, 0x21, 0x12, 0x90, 0x05,
    0x66, 0xD5, 0xD1, 0x11, 0xB2, 0xF0, 0x00, 0xA0,
    0xC9, 0x06, 0x29, 0x10, 0x42, 0x41, 0x01, 0x00
})


There's apparently nothing wrong with the formatting of the code itself, but the reserved name _WDG is alien to intel's compiler. It's a Microsoft thing. Yes, blame Microsoft!

No, seriously. Although it is only a warning, I think it's causing some "flickering" in my ACPI battery state. I no longer suffer from crashes (thanks to a bios update by the manufacturer), but it's nevertheless disturbing to see warnings about dead battery when the AC is plugged.


the point with the _WDG problem (and for some the _WED to) is that names with an underscore(_) are considered reserved objects _WDG isnt in the spec but because of the _ the compiler thinks its reserved but ofcourse it doesnt know it.

the solution is to change it to WDG, but then you have to make sure that other things calling that method are also changed.

as far as the dsdt itself is concerned thats not a problem, first of all i think there are no dsdt's that call _WDG from itself. and if they did its easy to change.

the problem is the acpi code in the os that uses that method, I dont know if linux acpi code uses the _WDG method(can someone confirm that?), but i know (and that is probably where the problem comes from) that the microsoft wmi uses the method[1] and looks to me that a lot of dsdt dev's just copied microsoft's shitty code because a couple of common dsdt errors are in that example code


> "Microsoft Windows NT" (also length 0x11)

... are you shure its 0x11? isn't it 0x14? "Microsoft Windows" is 0x11 anyway...

[edit] Other Common Problems

This document is wonderful, and contains a ton of information. I really appreciate you putting the effort into writing it.

That said, while this may fix common ACPI problems, nothing here indicates what those problems actually are. If, like me, your common problem is, for example, permission denied errors when writing to /sys/power/state, this document does not help you with your problem, and your problem may actually have nothing to do with DDTs or ECAPCIs or DMIAJFs.

Here's another document I found for those of you with less arcane problems who may be frustrated hunting around trying to figure out just what the heck is going wrong: [Problems with ACPI Suspend-to-RAM]. Granted it's on ThinkWiki but some of those problems seem like they could apply to other machines. I don't know; I only have this ThinkPad. Also that page is for problems with suspend-to-RAM, but I suspect information about other suspend modes is there as well.

Also, recompiling my DFASFIJ does show two warnings. However, everything is functioning properly. So warnings without errors may not actually be a problem for some. Here is the compiler output (ThinkPad T60p):

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20060912 [Jan 13 2007]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a

dsdt.dsl  7566:                         Method (_DDC, 1, NotSerialized)
Warning  1086 -                                    ^ Not all control paths return a value (_DDC)

dsdt.dsl  7566:                         Method (_DDC, 1, NotSerialized)
Warning  1079 -                                    ^ Reserved method must return a value (_DDC)
 
ASL Input:  dsdt.dsl - 13182 lines, 450975 bytes, 5342 keywords
AML Output: dsdt.aml - 45334 bytes 1174 named objects 4168 executable opcodes

Compilation complete. 0 Errors, 2 Warnings, 0 Remarks, 2405 Optimizations

I haven't experienced any crashes or odd behavior or whatever it is that one would experience if they had problems with their four-letter abbreviations (I'm not sure what those problems are though -- so at least I -think- that I haven't experienced them).

Personal tools