public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Fedor Karpelevitch <fedor-ugkMPi23kyXAHCkTjeiZhQ@public.gmane.org>
To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Cc: linuxpresario900-+vy+FFr6rAI3CPJRO4ggG/Z8FUJU4vz8@public.gmane.org
Subject: another issue with presario 900 - conflicting FF and CM declarations of power and sleep buttons
Date: Wed, 24 Sep 2003 07:51:55 -0700	[thread overview]
Message-ID: <200309240751.55097.fedor@karpelevitch.net> (raw)

Hi,

here is the other problem with my presario 900 :

if I read ACPI spec correctly, sleep & power buttons may either be 
declared as FF or CM not both, but looks like this is just what is 
happening here: both PWR_BUTTON and SLEEP_BUTTON bits in FADT are 
unset which is supposed to mean that they are to be treated as FF, 
however in dsdt the buttons are declared as well:

    Scope (_SB)
    {
        Device (SLPB)
        {
            Name (_HID, EisaId ("PNP0C0E"))
            Name (_PRW, Package (0x02)
            {
                0x01,
                0x03
            })
        }

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

and there is an EC event which is indeed being invoked when sleep 
button is pressed:

		Method (_Q0B, 0, NotSerialized)
                    {
                        Store ("Sleep btn runtime event", Debug)
                        Notify (\_SB.SLPB, 0x80)
                    }

Linux ACPI code looks at FADT bits first and ignores contradicting AML 
afterwards, so both buttons show up as FF.
Power button seems to indeed work correctly (besides the double event 
issue I mentioned before), however it seems that sleep button should 
really be CM and FADT is wrong here. To veryfy that I commnted out 
these lines in drivers/acpi/bus.c in method acpi_bus_scan_fixed:

	if (acpi_fadt.sleep_button == 0)
                result = acpi_bus_add(&device, acpi_root,
                        NULL, ACPI_BUS_TYPE_SLEEP_BUTTON);

to force it to ignore FF sleep button altogather, so now sleep button 
shows up as CM and works correctly - I get the events.

So I am interested in hearing what is the best way to fix this problem 
"correctly" - overriding FADT in a way similar to DSDT or something 
better?

Thanks

Fedor



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf

                 reply	other threads:[~2003-09-24 14:51 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200309240751.55097.fedor@karpelevitch.net \
    --to=fedor-ugkmpi23kyxahcktjeizhq@public.gmane.org \
    --cc=acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=linuxpresario900-+vy+FFr6rAI3CPJRO4ggG/Z8FUJU4vz8@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox