Trouble with APM suspend in 5.3-R
Gleb Smirnoff
glebius at freebsd.org
Mon Nov 15 12:18:59 PST 2004
On Mon, Nov 15, 2004 at 10:27:10AM +0300, Andrew Belashov wrote:
A> Gleb Smirnoff wrote:
A> >On Wed, Nov 10, 2004 at 02:11:56PM +0300, Andrew Belashov wrote:
A> >A> >1) Merge revision 1.233 of ata-all.c to your 5.3-RELEASE ata-all.c
A> >A>
A> >A> This revision helped me two weeks ago. Now, suspending worked correctly,
A> >A> but resume does not work. Kernel panics by kernel stack overflow.
A> >A> I do't have full back trace, but manualy reconstructed:
A> >
A> >To fix resume you need ata-all.patch. I've sent it to list recently.
A>
A> After resolving problem with kernel stack overflow, I have applied
A> ata-all.patch. It really solves a problem!
A>
A> However, problems of a similar nature arise if USB CardBus inserted.
A> System freeze when resumed and sleep in "usbdly". From sources:
A>
A> ---[sys/dev/usb/usb_subr.c]---------
A> /* Delay for a certain number of ms */
A> void
A> usb_delay_ms(usbd_bus_handle bus, u_int ms)
A> {
A> /* Wait at least two clock ticks so we know the time has passed. */
A> if (bus->use_polling || cold)
A> delay((ms+1) * 1000);
A> else
A> tsleep(&ms, PRIBIO, "usbdly", (ms*hz+999)/1000 + 1);
A> }
A> ---[sys/dev/usb/usb_subr.c]---------
Seems like we need some hardware person to work with this. Short and precise
description of the problem is "tsleep() is broken on APM suspend".
--
Totus tuus, Glebius.
GLEBIUS-RIPN GLEB-RIPE
More information about the freebsd-mobile
mailing list