Re: any way to evaluate a device's _PS0 method when its power state is at D0?

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

 



On Thu, May 19, 2011 at 8:42 PM, Matthew Garrett <mjg59@xxxxxxxxxxxxx> wrote:
> On Thu, May 19, 2011 at 06:06:47PM +0800, aaron lwe wrote:
>
>> So on init, this device's power state will be set to D0 due to ABPS is
>> 0, but its _PS0 never get called.
>> If later I want to evaluate its _PS0 control method, what should I do?
>> acpi_bus_set_power will return if it found the set state is the same
>> with the current state.
>
> Why do you want to evaluate its _PS0 method?

Hi Matthew,

The following is a simplified code that this device did by
disassembling the DSDT table.
When I put the device to D3, and later changed its state back to D0, I
got a problem due to HASD is never set to 1:
Device (xx)
{
        Name (ABPS, 0)
	Name (HASD, 0)

        Method (_PSC, 0, NotSerialized)
        {
                Return (ABPS)
        }

	Method (_PS0, 0, NotSerialized)
	{
		If (LOr (LEqual (HASD, 1), LAnd(LEqual(HASD, 0), LEqual(PORT, 1))))
		{
			// do things to re-power this device
			Store (1, HASD)
		}
	}
}

PORT is a bit field defined in an operation region, it's an io port
value which is used to detect if a device is there.
HASD is used to store if a device is there.

First I put the device to D3, and then put it back to D0, due to _PS0
is never evaluated before, HASD is 0.
And since the device is powered off, the PORT will also be 0. And
thus, I can't re-power this device.

This control method depends on it being evaluated once during boot, so
that it can set HASD to 1.

Since this device's state is set to D0 in acpi_bus_init_power without
evaluating _PS0 control method, and I need HASD to be set to 1 for
_PS0 to be evaluated effectively when I put the device back to D0 from
D3, I'll need to evaluate _PS0 when this device's power state is at
D0.

Thanks,
Aaron
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux