Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 01 Jul 2011 14:54:55 +0300
From:      Andriy Gapon <avg@FreeBSD.org>
To:        Vitaly Magerya <vmagerya@gmail.com>
Cc:        freebsd-acpi@FreeBSD.org
Subject:   Re: (Missing) power states of an Atom N455-based netbook
Message-ID:  <4E0DB58F.4070906@FreeBSD.org>
In-Reply-To: <BANLkTinRY-h%2BkpXtwWJ_L86qVRdoynFSdg@mail.gmail.com>
References:  <BANLkTim%2B1UwquMJ32WP8wZBGkYxPv78MLA@mail.gmail.com>	<4E05EB91.9090509@FreeBSD.org>	<BANLkTi=dyNx=TjyEqYMhSkRtddjVA4nAtw@mail.gmail.com>	<4E0862A0.7060405@FreeBSD.org>	<BANLkTikmVUtLyANBSqYb%2BL-xkwQ4Zo51Eg@mail.gmail.com>	<4E09BADF.7050702@FreeBSD.org>	<BANLkTin_%2BZH%2Bo7rdR9ijHMtrXcSdH9ZSdQ@mail.gmail.com>	<4E0A41C8.3000904@FreeBSD.org>	<BANLkTikwgy%2BKuA5E5zXQKGT-eyV35YAVag@mail.gmail.com>	<4E0CE158.6030804@FreeBSD.org> <BANLkTinRY-h%2BkpXtwWJ_L86qVRdoynFSdg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
on 01/07/2011 01:52 Vitaly Magerya said the following:
> I got the dumps for Linux (it appears that you can't just read
> /dev/mem on there, you need to mmap it). The summary of differences
> between FreeBSD and Linux right after the boot:
> 
>     DB00: 01 -> 00
>     P80D: 06:08:00:00 -> 06:08:4C:00

Not sure what these two are.

>     PCP0: 1D -> BF
>     PCP1: 1D -> BF

These reflect advertised OS power-management capabilities and appear to be correct.

>     BRTL: 00 -> 1E

This seems to be a variable holding current BRighTness Level.
It seems to be ralated to _BCM/_BQC/etc methods used acpi_video driver.

>     VDRV: 00 -> 01

Looks like this variable should tell if OS has ACPI Video driver, to be precise
if _BCL method was invoked at least once.
Looks like in your case the driver doesn't attach for some reason?..
Unfortunately, I don't remember if or where you provided your dmesg.

> 
> (Note that C1ON is 0 just as with FreeBSD, and yet powertop does
> report C2 and C4).

Hmm, this is the strangest thing.  According to my analysis of all the ASL code
that we extracted if C1ON is zero, then no deep C-states should be reported by
_CST method.
As such, I wonder where does Linux get C-states information from?  Or what else
could be going on here.  Maybe they somehow query them directly from HW
by-passing ACPI in this case...

Actually, it seems that they have them simply hardcoded:
http://lxr.linux.no/#linux+v2.6.39/drivers/idle/intel_idle.c#L171
I am not sure how to check on Linux which cpuidle driver is being used.  If you
know, could please check that?  And if the driver is intel_idle, then there is
no mystery, they use those hardcoded values.

> Then, after about 4 minutes of uptime, C1ON changes to 1 (and
> powertop still reports the same states).

OK, no difference here.  So it's probably done by firmware based on some unknown
logic.

-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4E0DB58F.4070906>