Thread (1 message) 1 message, 1 author, 2004-01-19

Re: Gateway 200X (again) - No power button events

From: Greg Sarjeant <hidden>
Date: 2004-01-19 19:51:41

OK, I found the Notify call that I was looking for. It was in the
EmbeddedControl region, and they don't specify the \_SB. prefix:

   Method (_Q50, 0, NotSerialized)
   {
       Notify (PWRB, 0x80)
   }

So, it looks like it is specified in the DSDT. I'm not sure why I don't
get an event when I press the button. I do get events from the sleep
button, but the two are declared somewhat differently. Here they are for
comparison:

        Device (SLPB)
        {
            Name (_HID, EisaId ("PNP0C0E"))
            Method (_STA, 0, NotSerialized)
            {
                Return (0x0F)
            }
        }

        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C"))
            Name (_PRW, Package (0x02)
            {
                0x1D, 
                0x04
            })
        }


Thanks again,
  Greg


On Mon, 2004-01-19 at 12:34, Greg Sarjeant wrote:
Hi,

    I have another question about my Gateway 200X. ACPI is working much
better now, but I just started playing with the power button, and it
turns out that I am not getting any events from it. I looked through the
DSDT, and could not find any Notify (\SW.PWRB, 0x80) statements for it,
so I imagine that that is the problem. Here (I think) are the relevant
DSDT sections:


    Scope (_GPE)
    {
        Method (_L05, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.MODM, 0x02)
            Notify (\_SB.PWRB, 0x02)
        }

        Method (_L0B, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.PCIB, 0x02)
            Notify (\_SB.PWRB, 0x02)
        }

        Method (_L1D, 0, NotSerialized)
        {
            Store (\_SB.PHS1 (0x8E, Zero), Local0)
            If (LEqual (Local0, One))
            {
                Notify (\_SB.PWRB, 0x02)
            }

            If (LEqual (Local0, 0x02))
            {
                Notify (\_SB.PWRB, 0x02)
            }
        }
    }


    Device (PWRB)
    {
        Name (_HID, EisaId ("PNP0C0C"))
        Name (_PRW, Package (0x02)
        {
            0x1D, 
            0x04
        })
    }


Do I have to add this Notify statement in the _GPE block? I'm also a bit
confused by the "Notify (\_SB.PWRB, 0x02)" lines. From the spec, I
thought that 0x80 and 0x200 were the expected values from Notify for the
power button. Am I missing something here?

Also, the BIOS does not supply an ECDT. I am using the patch at bug 1690
to get around this, could that be related? 

The power button does shut the macine down in Windows XP. I have tried
passing acpi_os_name="Microsoft Windows XP" to the kernel without
success. I did that because I noticed lines like this:

       If (LEqual (SizeOf (_OS), 0x14))

In the PCI0 device block after seeing the S3D method emails. I haven't
really had the chance to dig into what's going on there yet, so it was a
bit of a blind stab.

For reference, the complete DSDT is posted at
http://www.morningdave.org/acpi/dsdt.dsl


Thanks again for any help,
Greg




-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
Acpi-devel mailing list
Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/acpi-devel


-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help