bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Add ACPI translator and shutdown RPC that turns off pc


From: Damien Zammit
Subject: Re: [PATCH] Add ACPI translator and shutdown RPC that turns off pc
Date: Sun, 25 Nov 2018 21:10:11 +1100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1

Hi Kalle,

On 25/11/18 19:58, Kalle Olavi Niemitalo wrote:
> Perhaps this code should first check whether the SCI_EN bit is
> already set, as described in ACPI 5.0 section 4.8.2.5
> "Legacy/ACPI Select and the SCI Interrupt", and skip the outb if
> so.  Section 5.2.9 "Fixed ACPI Description Table (FADT)" says the
> SMI_CMD field of FADT can be zero.
>
Thanks for the information, I will do this.

>> +#define SLP_TYP0    (0x0 << 10)
>> +#define SLP_TYP5    (0x5 << 10)
> 
> This hardcodes QEMU-specific values.  ACPI 5.0 section 7.3.4 says
> the values for PM1a_CNT.SLP_TYP must be read from the \S0-\S5
> objects.
Damn, I want to avoid putting a whole AML interpreter into hurd.
I thought the sleep value for S5 == 0x5 but clearly this is not the
case.  Now that you have pointed this out, I dont know how to make this
work for all cases without putting an AML interpreter into hurd as you said.

>DSDT of my laptop also has:
>
>    If (LEqual (S3DS, One))
>    {
>        Name (_S3, Package (0x04)  // _S3_: S3 System State
>        {
>            0x05,
>            Zero,
>            Zero,
>            Zero
>        })
>    }
Surely S5 always has to exist, how else do you power off the machine?
Some machines don't have suspend S3.  Maybe I can do some clever walk of
the binary to find the _S5 object and extract the SLP_TYP value instead
of a whole AML interpreter?

> Maybe it's good enough if S5 works on QEMU.  In that case though,
> I would like to see a comment warning about this limitation.

For now I will indeed add a comment stating the limitation.

Thanks for review!
Damien



reply via email to

[Prev in Thread] Current Thread [Next in Thread]