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

From: Vojtech Pavlik
Date: Tue Dec 30 2003 - 18:10:28 EST


On Tue, Dec 30, 2003 at 07:53:03PM +0000, Russell King wrote:
> 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?

Agreed. There should already be some in -mm kernels, and I'll make sure
the timer is deleted before suspend. Thanks for finding this.

--
Vojtech Pavlik
SuSE Labs, SuSE CR
-
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/