http://bugzilla.kernel.org/show_bug.cgi?id=9528





------- Comment #69 from [EMAIL PROTECTED]  2008-01-08 12:39 -------
Carlos, please
# echo USB0 > /proc/acpi/wakeup
# echo USB2 > /proc/acpi/wakeup
see if those lines in the wakeup file change to "enabled" from "disabled"
and see if that has any effect on the hang.

The AML for both of these devices tell us that the OS
should limit how deep a D-state is used for them during system S3.
Though, technically, this should be independent of wakeup capability,
we'll have to check if Linux is that smart...

Yes, the system can suspend USB independent of an S3 request.
What the ASL below shows is that in the case of USB2,
if it is in D3 at the S3 request, Linux should move it to D1
before entering S3.

Also, does the same driver bind to both of these USB devices?
USB0      S3     disabled  pci:0000:00:02.0
USB2      S3     disabled  pci:0000:00:02.1


            Device (USB0)
            {
                Name (_ADR, 0x00020000)
                Method (_S1D, 0, NotSerialized)
                {
                    Return (0x01)
                }

                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
# must not go below D2 in S3
# I think this is Windows ME only case
                    }
                    Else
                    {
                        Return (0x03)
# okay to go to D3 in S3
# I think this non WinME case
                    }
                }
# no _PSW in USB0, so it should be enabled as a wake device always

                Name (_PRW, Package (0x02)
                {
                    0x0D,
                    0x03
# wakeup supported in S3
                })
            }

            Device (USB2)
            {
                Name (_ADR, 0x00020001)
                OperationRegion (P020, PCI_Config, 0x49, 0x01)
                Field (P020, AnyAcc, NoLock, Preserve)
                {
                    U0WK,   1
                }

                Method (_PSW, 1, NotSerialized)
                {
# _PSW should let Linux enable or disable wake capability of USB2
                    If (Arg0)
                    {
                        Store (0x01, U0WK)
                    }
                    Else
                    {
                        Store (0x00, U0WK)
                    }
                }

                Method (_S1D, 0, NotSerialized)
                {
                    Return (0x01)
                }

                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x01)
# USB2 should never be put below D1 when system enters S3
# (this could be qualified by an _S3W, but this device has none,
# so no matter if USB2 is a wake device or not, Linux should
# never put it deeper than D1 when entering S3
                }

                Name (_PRW, Package (0x02)
                {
                    0x05,
                    0x03
# GPE 5 wakes the system from this device as deep as S3
                })
            }

re: OSFL...

   Name (OSFL, 0x01)

# default is 1
                If (STRC (\_OS, "Microsoft Windows"))
                {
                    Store (0x56, SMIP)
# windows 98 comes here, so it gets OSFL=1
                }
                Else
                {
                    If (STRC (\_OS, "Microsoft Windows NT"))
                    {
#everything NT and later comes here
                        If (CondRefOf (\_OSI, Local0))
                        {
                            If (\_OSI ("Windows 2001"))
                            {
                                Store (0x59, SMIP)
                                Store (0x00, OSFL)
# WinXP and later: OSFL=0
                                Store (0x03, OSFX)
                            }
                        }
                        Else
                        {
                            Store (0x58, SMIP)
                            Store (0x00, OSFX)
                            Store (0x00, OSFL)
# Windows NT: OSFL=0
                        }
                    }
                    Else
                    {
                        Store (0x57, SMIP)
                        Store (0x02, OSFX)
# Not NT. not Win98, I guess Windows ME? comes here: OSFL=2 
                        Store (0x02, OSFL)
                    }
                }


-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
acpi-bugzilla mailing list
acpi-bugzilla@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to