On 07/07/07 16:07 -0400, Marcelo Tosatti wrote:
On Sat, Jul 07, 2007 at 03:35:01PM -0400, Marcelo Tosatti wrote:
Hi folks,
I was reading olpc-pm.c while I stumbled across this code
static int olpc_pm_interrupt(int irq, void *id)
{
uint32_t sts, gpe = 0;
sts = inl(acpi_base + PM1_STS);
outl(sts | 0x, acpi_base + PM1_STS);
if (olpc_get_rev() = OLPC_REV_B2) {
gpe = inl(acpi_base + PM_GPE0_STS);
outl(0x, acpi_base + PM_GPE0_STS);
}
if (sts CS5536_PM_PWRBTN) {
input_report_key(pm_inputdev, KEY_POWER, 1);
input_sync(pm_inputdev);
/* Do we need to delay this (and hence schedule_work)? */
input_report_key(pm_inputdev, KEY_POWER, 0);
input_sync(pm_inputdev);
}
So we report the KEY_POWER event down to userspace, which is probably
the reason why we're seeing the powerdown sequence being started.
Jordan,
I remember you mentioned that reading PM1_STS might be unreliable...
Can you shed more light into the issue?
Hmm - I don't remember that. PM1_STS should be reliable at this point,
assuming nobody has touched it since we resumed.
Jordan
--
Jordan Crouse
Systems Software Development Engineer
Advanced Micro Devices, Inc.
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel