the error,
 s3: HIGH Kernel message: [  457.594493] ACPI Error: Field [DRQL] at 144 
exceeds Buffer [NULL] size 128 (bits) (20131115/dsopcode-236)
 s3: HIGH Kernel message: [  457.594498] ACPI Error: Method parse/execution 
failed [\_SB_.PCI0.LPCB.SIO1.DSRS] (Node ffff880079715c58), AE_AML_BUFFER_LIMIT 
(20131115/psparse-536)
 s3: HIGH Kernel message: [  457.594502] ACPI Error: Method parse/execution 
failed [\_SB_.PCI0.LPCB.UAR1._SRS] (Node ffff880079715ed8), AE_AML_BUFFER_LIMIT 
(20131115/psparse-536)

is from buggy firmware, it occured on other Dell's machines. Don't have
acpidump on this machine, so past on the analysis on that machine.

When s3 resume, will set the resource, first call the _CSR of the UAR1 device 
to check the current resource, then set the resoure via _SRS,
the UART1 _CRS call SIO1.DCRS, then return CRS1 -> buffer size 128 (bits), but 
_SRS call SIO1.DSRS -> but operate with the buffer size 144(bits)
                        CreateByteField (Arg0, 0x11, DRQL)
                        CreateByteField (Arg0, 0x14, DMAC)
so the error is from, the current resource tell kernel using 128bits, but the 
set resource operate 144bits.

see the ACPI table,
the _CSR->DCSR always return CRS1,
                    Method (DCRS, 2, NotSerialized)
                    {
                        If (LEqual (Arg0, Zero))
                        {
                            ENFG (0x0C)
                            Store (CR6A, Local0)
                            Store (Local0, IOLO)
                            Store (CR6B, Local0)
                            Store (Local0, IOHI)
                            Store (IOLO, IORL)
                            Store (IOHI, IORH)
                            Store (0x08, LNA1)
                            Store (GIRQ (Arg0), IRQL)
                            EXFG ()
                            Return (CRS1)
                        }

                        Return (CRS1)
                    }

but the _SRS, parse/execution the resoure exceeds the CSR1 buffer,
                    Method (DSRS, 2, NotSerialized)
                    {
                        CreateByteField (Arg0, 0x02, IOLO)
                        CreateByteField (Arg0, 0x03, IOHI)
                        CreateWordField (Arg0, 0x09, IRQL)
                        CreateByteField (Arg0, 0x11, DRQL)
                        CreateByteField (Arg0, 0x14, DMAC)
                        If (LEqual (Arg1, Zero))
                        {
                            ENFG (0x0C)
                            STIO (0x6A, IOLO, IOHI, Zero)
                            SIRQ (Arg1, IRQL)
                            EXFG ()
                            DCNT (Arg1, One)
                        }
                    }
The errors above seem to cause from a buggy firmware, and need to be checked.
It might impact the UART devices, but driver might take care the UART functions.

These failures should not impact the S3 function.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1335026

Title:
  [Dell OptiPlex 3011] Sometimes system won't be able to run suspend
  stress test

To manage notifications about this bug go to:
https://bugs.launchpad.net/hwe-next/+bug/1335026/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to