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





------- Additional Comments From [EMAIL PROTECTED]  2007-03-28 15:18 -------
Looking over Patrick's DSDT for uses of OPSYS...

There is a _WAK SMM hook that _OSI "Linux" will trigger
        that Windows will not.  Does this machine
        suspend to ram, and does it restore video on resume?

Vista uses a mutex when talking to brighness control
        where others do not -- unclear why
Vista has some EC hooks that XP does not have

_STA for the HPET will say it is not present for OSI Linux
        and will say it is present for Windows

WMI hooks are not present for Vista, but are otherwise present

-----------
    Scope (\_SB)
        Method (_INI, 0, NotSerialized)
            Store (0x07D0, OSYS)
                If (_OSI ("Linux"))
                    Store (0x03E8, OSYS)
# unclear why this is here
# There are no tests for OSYS 038E8 in the DSDT
                Else
                    Store (0x07D1, OSYS)
# 0x07D1 = any _OSI enabled OS besides Linux
                    If (_OSI ("Windows 2001 SP2"))
                        Store (0x07D2, OSYS)
# 07D3 = WinXP SP2
                    If (_OSI ("Windows 2001.1"))
                        Store (0x07D3, OSYS)
# 07D4 = WinServer2003
                    If (_OSI ("Windows 2001.1 SP1"))
                        Store (0x07D4, OSYS)
# 07D6 = WinServer2003 SP1
                    If (_OSI ("Windows 2006"))
                        Store (0x07D6, OSYS)
# WinVista
...
    Method (_WAK, 1, NotSerialized)
    {
        If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04)))
        {
            If (And (CFGD, 0x01000000))
            {
                If (LAnd (And (CFGD, 0xF0), LEqual (OSYS, 0x07D1)))
# non-Linux _OSI enabled OS traps to SMM -- why?
# could this be a hook for video re-post on resume?
                {
                    TRAP (0x3D)
                }
            }
        }
...
        If (LEqual (OSYS, 0x07D2))
# Windows XP SP2 has a uniq PPC notify on _WAK
        {
            If (And (CFGD, 0x01))
            {
                If (LGreater (\_PR.CPU0._PPC, 0x00))
                {
                    Subtract (\_PR.CPU0._PPC, 0x01, \_PR.CPU0._PPC)
                    PNOT ()
                    Add (\_PR.CPU0._PPC, 0x01, \_PR.CPU0._PPC)
                    PNOT ()
                }
                Else
                {
                    Add (\_PR.CPU0._PPC, 0x01, \_PR.CPU0._PPC)
                    PNOT ()
                    Subtract (\_PR.CPU0._PPC, 0x01, \_PR.CPU0._PPC)
                    PNOT ()
                }
            }
        }

        If (LEqual (OSYS, 0x07D6))
# Windows Vista gets a different EC notify
        {
            If (\_SB.PCI0.LPCB.EC0.MBTB)
            {
                Notify (\_SB.PCI0.LPCB.EC0.MBTN, 0x02)
            }
        }
...
        Device (PCI0)
            Device (PEGP)
                Device (VGA)
                    Device (LCD)
                        Method (_BCM, 1, NotSerialized)
                            If (LEqual (OSYS, 0x07D6))
# Windows Vista uses a mutex in brightness control that others do not
                            {
                                Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0xFFFF)
                                Store (Local1, \_SB.PCI0.LPCB.EC0.BLVL)
                                Release (\_SB.PCI0.LPCB.EC0.MUT1)
                            }
                        Method (_BQC, 0, NotSerialized)
                        {
                            If (LEqual (OSYS, 0x07D6))
# Windows Vista
                            {
                                Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0xFFFF)
                                Store (\_SB.PCI0.LPCB.EC0.BLVL, Local0)
                                Release (\_SB.PCI0.LPCB.EC0.MUT1)
                            }

            Device (GFX0)
...
                Device (DD04)
                    Method (_BCM, 1, NotSerialized)
...
                        If (LEqual (OSYS, 0x07D6))
# Windows Vista
                        {
                            Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0xFFFF)
                            Store (Local1, \_SB.PCI0.LPCB.EC0.BLVL)
                            Release (\_SB.PCI0.LPCB.EC0.MUT1)
                        }
                    }

                    Method (_BQC, 0, NotSerialized)
                    {
                        If (LEqual (OSYS, 0x07D6))
# Windows Vista
                        {
                            Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0xFFFF)
                            Store (\_SB.PCI0.LPCB.EC0.BLVL, Local0)
                            Release (\_SB.PCI0.LPCB.EC0.MUT1)
                        }
...
                Device (EC0)
                {
                    Name (_HID, EisaId ("PNP0C09"))
# Embedded Controller
...
                    Name (_GPE, 0x17)
                    Name (SEL0, 0xF0)
                    Name (BFLG, 0x00)
                    Method (_REG, 2, NotSerialized)
                    {
...
                        If (\_SB.ECOK)
                        {
                            Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0xFFFF)
                            If (LEqual (OSYS, 0x07D6))
# Windows Vista has a specific EC flag here
                            {
                                Store (One, \_SB.PCI0.LPCB.EC0.OSTP)
                                \_SB.PHSR (0x0D, 0x00)
                            }
                            Else
                            {
                                Store (Zero, \_SB.PCI0.LPCB.EC0.OSTP)
                            }

                            Store (0x03, \_SB.PCI0.LPCB.EC0.RG59)
                            Store (\_SB.CIRE, \_SB.PCI0.LPCB.EC0.CIRE)
                            Store (\_SB.PHSR (0x05, 0x00), DOFF)
                            Store (\_SB.PCI0.LPCB.EC0.ACDF, \PWRS)
                            If (LEqual (OSYS, 0x07D6))
                            {
# Windows Vista
                                Store (0x3C, \_SB.PCI0.LPCB.EC0.VTMP)
                            }

                            Release (\_SB.PCI0.LPCB.EC0.MUT1)
                        }
                    }
...
                Device (HPET)
                {
                    Name (_HID, EisaId ("PNP0103"))
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LGreaterEqual (OSYS, 0x07D1))


# All non-Linux _OSI enabled OS: HPET present
                        {
                            If (HPAE)
                            {
                                Return (0x0F)
                            }
# present+enabled+ui+functioning
                        }
                        Else
                        {
# else linux and non _OSI
                            If (HPAE)
                            {
                                Return (0x0B)
# not present
                            }
                        }

                        Return (0x00)
                    }
...
        Device (AMW0)
        {
            Name (_HID, "*PNP0C14")
            Name (_UID, 0x00)
            Method (_STA, 0, NotSerialized)
            {
                If (LEqual (OSYS, 0x07D6))
# Windows Vista
                {
                    Return (Zero)
# WMI not present
                }
                Else
                {
# non-Windows Vista - WMI present
                    Return (0x0F)
                }
            }



------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
You are on the CC list for the bug, or are watching someone who is.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
acpi-bugzilla mailing list
acpi-bugzilla@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to