Bug 5189
Summary: | ACPI - AML Alias command is broken | ||
---|---|---|---|
Product: | ACPI | Reporter: | Thomas Renninger (trenn) |
Component: | ACPICA-Core | Assignee: | Robert Moore (Robert.Moore) |
Status: | CLOSED CODE_FIX | ||
Severity: | high | CC: | acpi-bugzilla |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.13 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Attachments: | sorry for the delay ... thanks for help ... here it is. |
Description
Thomas Renninger
2005-09-05 09:02:06 UTC
As this is against 2.6.13, I assume this refers to ACPICA 20050408. Same in latest release contained in the ACPI patch? Has this always been broken or is this a regression? Investigating. Please post the acpidump of the machine also. Investigating. Please post the acpidump of the machine also. Created attachment 5957 [details]
sorry for the delay ... thanks for help ... here it is.
You need to replace IO declarations with e.g. XIO (or test the patch I sent
recently). The missing CMD0, DAT0 declarations are follow-up errors...
Looks like the issue is not Alias() per se, it is resolving forward references to an alias object - of which there are 4 in this DSDT. This affects both the iASL compiler and the AML interpreter since they share common code. As a workaround, move this statement to the beginning of the DSDT code block: Alias (\_SB.PCI0.IGFX.GDGS, \GDGS) So this is not a regression, but has always been broken, yes? I think so, yes. But it should be considered as fairly sever as whole parts of the ACPI subsystem could break away (for this guy the thermal_zone does not come up). Is something wrong in the parser? Maybe the Alias does not exist yet, when it's tried to be used? I have not much time currently ... there are some other issues -> will write a mail maybe some things have already been solved. Tell me how I can help here best (testing should be no problem, if you could describe the problem I also can have a look at possibly affected code and try to fix it...). Yes, this problem looks very old. Multiple passes are required to parse AML tables, and proper resolution of forward references is of course one reason. It appears that alias objects are not completely setup during the initial pass, and the forward reference causes a failure on a subsequent pass. We don't see too much of this, as it seems that ASL writers tend to generally avoid forward references in the code. I believe that the workaround is to move the alias statement in question to the beginning of the DSDT. This fixed the problem here. Problem is similar to #5674, is is a superset. The interpreter part (same as 5674) is fixed for the next release, investigating the compiler issue. Both problems should be fixed in version 20060127 ACPICA 20050127 shipped in Linux-2.6.16-rc1-git6 -- closing. 20060127 that is |