Re: [linux-pm] Linux 2.6.21-rc6



On Sunday 15 April 2007 4:16 am, Rafael J. Wysocki wrote:
On Sunday, 15 April 2007 10:02, Tobias Diedrich wrote:

Yes, it's a Asus M2N-SLI-Deluxe Mainboard with a Athlon64 3200+
single core CPU.

And NVidia southbridge, so OHCI not UHCI (plus EHCI) ... one experiment
would be to disable the EHCI (high speed USB) support in BIOS, to make
for a simpler hardware configuration, and see if that makes BIOS happier.
(Or better, just take EHCI out of your Linux config.) Likewise, taking
the 8042 drivers out of Linux.

I wouldn't be surprised if those factors didn't matter, but it'd be good
to rule them out.


With CONFIG_PM_DEBUG=y and CONFIG_DISABLE_CONSOLE_SUSPEND=y I see
that the second suspend hangs at "i8042 i8042: EARLY resume".
This is kinda interesting because I'm normally using a USB keyboard
and sure enough, if I hook up a normal keyboard and disable USB
legacy support in the BIOS, then suspend to disk works multiple
times. I'd still rather like to use my USB keyboard though. ;)

Well, I think that when you're using the USB keyboard and the USB legacy
support, the i8042 driver thinks it has a keyboard to handle and tries to
handle it during the suspend, which fails. I don't know why it fails during
the second suspend, though.

The "legacy" support in at least some cases involves BIOS having a
small USB stack -- enough to handle a keyboard or mouse in "boot mode"
(plus sometimes a USB disk or CDROM) -- and poking the i8042 chip to
act as if *IT* received the data bytes that really came over USB.

I sure don't know the ins-and-outs of such schemes (ISTR there are
others), but my guess is that either the 8042 or OHCI got confused,
at least in conjunction with the lowlevel magic ACPI was doing.

That's all black magic though, as far as I can understand it ...


Dmitry, could you please have a look?

And I can now confirm that unpatched 2.6.21-rc6 works fine as long
as USB legacy support is disabled (however without legacy support I
can't use the USB keyboard to control grub).

I think using the 'shutdown' mode of suspend would be better. There's a little
point in using 'platform' on desktop systems anyway.

Frankly, I don't know what to do about it. If we move platform_finish() after
device_resume(), some systems may be broken ...

What I'm curious about is exactly why the patch matters. What ACPI
magic is being invoked to confuse, or unconfuse, those controllers?

- Dave



-
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/



Relevant Pages

  • Re: Linux 2.6.21-rc6
    ... [PATCH] ... Which suspend mode do you use? ... I'd still rather like to use my USB keyboard though. ... as USB legacy support is disabled (however without legacy support I ...
    (Linux-Kernel)
  • Re: Linux 2.6.21-rc6
    ... that the second suspend hangs at "i8042 i8042: ... I'd still rather like to use my USB keyboard though. ... as USB legacy support is disabled (however without legacy support I ...
    (Linux-Kernel)
  • Re: [linux-pm] Linux 2.6.21-rc6
    ... I think the disabling of i8042 support might help. ... that the second suspend hangs at "i8042 i8042: ... This is kinda interesting because I'm normally using a USB keyboard ... I'd still rather like to use my USB keyboard though. ...
    (Linux-Kernel)
  • Re: Linux 2.6.21-rc6
    ... that the second suspend hangs at "i8042 i8042: ... This is kinda interesting because I'm normally using a USB keyboard ... I'd still rather like to use my USB keyboard though. ... as USB legacy support is disabled (however without legacy support I ...
    (Linux-Kernel)
  • Re: USB Legacy in BIOS
    ... I wonder why there's even an option to disable the Legacy? ... motherboards I'm talking about can't find a USB keyboard with legacy ... XP seems to know what to do with legacy and USB, ... An example of where legacy support is required of a USB keyboard is real ...
    (microsoft.public.windowsxp.general)