Re: 2.6.0-test6: APM unable to suspend (the 2.6.0-test2 saga continues)

From: Russell King
Date: Tue Dec 30 2003 - 14:55:17 EST


On Tue, Dec 30, 2003 at 07:40:03PM +0000, Russell King wrote:
> On Tue, Dec 30, 2003 at 10:47:10AM -0800, Linus Torvalds wrote:
> > On Tue, 30 Dec 2003, Russell King wrote:
> > >
> > > - i8042_noaux=1 - this doesn't seem to make any difference, although
> > > this does appear to leave the CTR set as 0x65, which appears to be
> > > the BIOS-set value.
> >
> > Doesn't that leave the kbd mask the same? In particular, it still sets the
> > "disable" bit, aka I8042_CTR_KBDDIS later on..
>
> Seems to. With noaux unset, CTR is set to 0x47.
>
> > What happens if you just define I8042_CTR_KBDDIS to zero?
>
> That still causes suspend to fail. I've separately tested I8042_CTR_KBDINT
> set to zero as well, and that still causes failure.

I just tried this change to i8042.c, and suspend magically started
working.

@@ -814,8 +815,8 @@
i8042_port_register(&i8042_kbd_values, &i8042_kbd_port);

init_timer(&i8042_timer);
- i8042_timer.function = i8042_timer_func;
- mod_timer(&i8042_timer, jiffies + I8042_POLL_PERIOD);
+// i8042_timer.function = i8042_timer_func;
+// mod_timer(&i8042_timer, jiffies + I8042_POLL_PERIOD);

register_reboot_notifier(&i8042_notifier);

So it looks like i8042 could do with hooking some power management
to disable this timer before suspend and resume it afterwards.

Vojtech?

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/