Bug 15962

Summary: ACPI Errors on Acer Aspire One
Product: ACPI Reporter: Maciej Rutecki (maciej.rutecki)
Component: ACPICA-CoreAssignee: Zhang Rui (rui.zhang)
Status: CLOSED DOCUMENTED    
Severity: normal CC: acpi-bugzilla, jaswinder, maciej.rutecki, mpogoda, rjw, rui.zhang
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.34-rc6 Tree: Mainline
Regression: Yes
Bug Depends on:    
Bug Blocks: 15310    
Attachments: dmesg
.config
acpidump

Description Maciej Rutecki 2010-05-11 18:12:10 UTC
Subject    : ACPI Errors on Acer Aspire One
Submitter  : Jaswinder Singh Rajput <jaswinderlinux@gmail.com>
Date       : 2010-05-11 14:55
Message-ID : AANLkTilF304TbgACKtvc_FA01uxHrdRBS2Q-o6Tm-n8Q@mail.gmail.com
References : http://marc.info/?l=linux-kernel&m=127358975004716&w=2

This entry is being used for tracking a regression from 2.6.33.  Please don't
close it until the problem is fixed in the mainline.
Comment 1 Jaswinder Singh Rajput 2010-05-11 18:28:43 UTC
Adding myself to CC
Comment 2 Zhang Rui 2010-05-12 06:24:21 UTC
please attach the full dmesg output and the acpidump output of this laptop
Comment 4 Jaswinder Singh Rajput 2010-05-12 08:52:11 UTC
Created attachment 26349 [details]
dmesg
Comment 5 Jaswinder Singh Rajput 2010-05-12 08:52:48 UTC
Created attachment 26350 [details]
.config
Comment 6 Jaswinder Singh Rajput 2010-05-12 08:53:21 UTC
Created attachment 26351 [details]
acpidump
Comment 7 Zhang Rui 2010-05-12 09:04:51 UTC
            Method (_OSC, 4, NotSerialized)
            {
                Store (Arg2, Local0)
                Multiply (Local0, 0x04, Local1)
                Name (BUF1, Buffer (Local1) {})
                Store (Arg3, BUF1)
                Store (Zero, Local1)
                Store (Zero, Local2)
                While (Local0)
                {
                    Multiply (Local1, 0x04, Local2)
                    CreateDWordField (BUF1, Local2, CAPB)
                    If (Arg1)
                    {
                        If (LEqual (Local1, Zero))
                        {
                            And (CAPB, 0xFFFFFFFC, CAPB)
                        }
                    }
                    Else
                    {
                    }

                    Increment (Local1)
                    Decrement (Local0)
                }

                Return (BUF1)
            }

we can see that CAPB is created in the while loop.
this is a violation of ACPI spec that should be fixed by BIOS.
So I'll close this bug as we can/will do nothing in Linux kernel to fix/workaround this bug.

I think you should raise this issue to Acer, to push them fix it in new BIOS releases. :)
Comment 8 Jaswinder Singh Rajput 2010-05-12 12:19:48 UTC
Hello Zhang,

We can handle the bug in Linux kernel as treated like special case OR at least print the message to fix or update BIOS or something like that.

What is your opinion.

Thanks.
Comment 9 Zhang Rui 2010-05-13 01:47:18 UTC
N(In reply to comment #8)
> Hello Zhang,
> 
> We can handle the bug in Linux kernel as treated like special case OR

No, this is handled in ACPICA code, and I don't think we can put any workaround/fix for this AML bug.

> at least
> print the message to fix or update BIOS or something like that.
> 
> What is your opinion.
> 
No.
ACPICA has its own code base, and is used by many OS, like Linux, Solaris, etc.
ACPICA is not able to detect this kind of bug.
I talked with an ACPICA expert and he said it's overkill to do so because it needs quite a lot of changes in ACPICA.

As we can rootcause the problem according to the current error messages, I think we should put more effort to push Acer to fix this BIOS bug for us. :)
Comment 10 Jaswinder Singh Rajput 2010-05-13 03:44:20 UTC
Hello Zhang,

Thanks for your help.

I do not have access to Acer. If possible, please request them to fix this BUG in upcoming models.

If you want you can close this BUG.

Thanks,
--
Jaswinder Singh.