FreeBSD does have a workaround for this. We use an implicit return value:
On Fri, 19 Dec 2003, Brown, Len wrote:
> AML is like C -- if there is no return statement from a routine (method)
> then nothing gets returned.
> Unfortunately the microsoft implementation of the AML interpreter
> behaves as if there is a return statement, and so bugs in AML get
> through windows validation.
> For this to work on the ACPICA AML interpreter, you need to insert the
> missing return statements in the AML -- we don't have a workaround for
> this type of BIOS bug.
Created attachment 1713 [details]
a patch for fixing this issue
Just port Free BSD's workaround to linux
Seen on Tecra 8000:
ACPI-0109: *** Error: No object was returned from [\_SB_.LNKA._STA] (Node
Seen on Compaq Evo N620c in bug 2083
ACPI-1120: *** Error: Method execution failed [\_TZ_.C202] (Node cff7ed20),
*** Bug 2083 has been marked as a duplicate of this bug. ***
Created attachment 3065 [details]
implicit return patch -- against 2.6
There are two different way for returning value.
1. through pointer: call_return_desck (for interface : acpi_evaluate_object)
2. push the result object onto result_stack.
My patch fixes the second scenario.
Notice: This patch merge the previous patch (Iwasaki San email@example.com)
A different patch for this shipped in ACPICA 20040816
which is included in Linux-2.6.9 -- closing