(Missing) power states of an Atom N455-based netbook

Andriy Gapon avg at FreeBSD.org
Mon Jun 27 10:59:53 UTC 2011


on 25/06/2011 18:47 Vitaly Magerya said the following:
> Andriy Gapon <avg at freebsd.org> wrote:
>> on 24/06/2011 22:13 Vitaly Magerya said the following:
>>> Right after I start the laptop I only see one supported power state:
>>>
>>>     # sysctl dev.cpu.0.cx_supported
>>>     dev.cpu.0.cx_supported: C1/1
>>>
>>> But after 4+ minutes of uptime more power states kick in:
>>>
>>>     # sysctl dev.cpu.0.cx_supported
>>>     dev.cpu.0.cx_supported: C1/1 C2/20 C3/100
>>>
>>> I'd like to have all Cx right after the boot. Is this possible?
>>>
>>> (The temporary solution I employ is to update hw.acpi.cpu.cx_lowest
>>> every time devd gets ACPI CMBAT message; this appears to happen
>>> right after cx_supported is updated).
>>
>> Hmm, strange...
>> Can you check if FreeBSD thinks that the system is on AC power until that
>> CMBAT message?  (I see in dmesg that during that boot it detected AC as
>> disconnected).
> 
> AC was indeed disconnected during that boot (and hw.acpi.acline was
> 0 as expected). If I boot with power on the problem is the same:
> about 4 minutes there's only C1, after that there are C1 and C2 (C3
> kicks in too once I disable the power).

This is quite unexpected for me.
You can try to run devd in debug mode and capture its output in a file, so that
ACPI events could be examined.

> (I boot with power cord disconnected, since LCD brightness controls
> on the laptop don't work with FreeBSD, so that's the only way to
> turn the brightness down).
> 
>>> Also, when I boot the same machine under Linux (latest Ubuntu),
>>> powertop reports C1, C2 and C4 right away. Is it possible to get
>>> C4 under FreeBSD as well?
>>
>> I believe that what FreeBSD reports as C3 is the same as what Linux reports
>> as C4.
> 
> The problem is that on Linux power consumption is 5.2W (without USB
> suspension or any other things powertop suggests), while on FreeBSD
> I'm seeing 6.8W with C3. I assumed this was due to C4/C3 difference,
> but maybe Linux is doing something differently.

Quite possible.

>>> Other ACPI problems, which I have are:
>>> 1. When the power cord is plugged in, C3 state disappears.
>>
>> Does the same happen with Linux?
>> Many notebooks disable deep Cx states when on AC power for some reason.
> 
> No. On Linux C4 is reported both with and without AC plugged in.

It seems that possibly we present different OS capabilities to ACPI...
Needs more investigation.

Can you also send me two binary files produced as follows:
1. dd if=/dev/mem size=1 iseek=0x3F5B9B71 count=0x00000203 of=...
2. dd if=/dev/mem size=1 iseek=0x3F5B92DA count=0x00000708 of=...

Or, if it's not too much trouble for you, you can send results of decompilation
of those files using iasl -d <filename>

>>> 2. When I plug (or unplug) the power cord I get these two messages:
>>>
>>>    ACPI Error: [\\_SB_.VDRV] Namespace lookup failure, AE_NOT_FOUND
>>>    (20101013/psargs-464) ACPI Error: Method parse/execution failed
>>>
>>>    [\\_SB_.PCI0.LPC0.H_EC._Q51] (Node 0xc42ac1e0), AE_NOT_FOUND
>>>    (20101013/psparse-633)
>>>
>>>    (This appears to be harmless).
>>
>> Not sure about these, looks like some additional/external table is not
>> loaded. You may check if the same happens with the latest ACPICA in FreeBSD
>> CURRENT.
> 
> I just tried it with CURRENT snapshot from 2011-05-12; it behaves
> the same.
> 
> (For the record, Linux reports similar messages).

Ok, then this is most likely a mistake of BIOS writers, it seems.

-- 
Andriy Gapon


More information about the freebsd-acpi mailing list