Resume broken in 8.3-PRERELEASE

Alexey Dokuchaev danfe at nsu.ru
Fri Mar 2 08:51:01 UTC 2012


On Thu, Mar 01, 2012 at 04:55:03PM -0500, Jung-uk Kim wrote:
> On Thursday 01 March 2012 01:53 pm, Hans Petter Selasky wrote:
> > What is output from usbconfig as root, before and after
> > suspend/resume ?

Before suspend (just after reboot, this output is identical to pre/post SVN
r229370):

ugen0.1: <UHCI root HUB Intel> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE
ugen1.1: <UHCI root HUB Intel> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE
ugen2.1: <UHCI root HUB Intel> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE
ugen3.1: <UHCI root HUB Intel> at usbus3, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE
ugen4.1: <EHCI root HUB Intel> at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE
ugen0.2: <US232B FTDI> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
ugen3.2: <Biometric Coprocessor STMicroelectronics> at usbus3, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON

After resume (kernel from Jan 1): all lines are the same, except that last
two lines are swapped (ugen3.2 is listed before ugen0.2).

Presence of US232B does not affect behavior; ugen3.2 is built-in finger print
scanner, and since in USB2 there is no separate ugen(4), I don't know how
to selectively disable it.  Man page for ugen(4) however exists.  :-)

> It does not make a difference for me (i.e., usb suspend/resume still
> broken) but I think I found a typo:
> 
> --- sys/dev/usb/controller/usb_controller.c	(revision 232365)
> +++ sys/dev/usb/controller/usb_controller.c	(working copy)
> @@ -407,7 +407,7 @@ usb_bus_suspend(struct usb_proc_msg *pm)
>  
>  	USB_BUS_UNLOCK(bus);
>  
> -	bus_generic_shutdown(bus->bdev);
> +	bus_generic_suspend(bus->bdev);
>  
>  	usbd_enum_lock(udev);

Same thing here, does not seem to improve anything.  It might suspend,
resume (with keyboard working), then die on next suspend completely.  Or
it may die on the first suspend (without suspending -- fans are spinning,
screen is black and no response to anything except hard power-off), this
actually happens more often.

./danfe

P.S.  Also, doing "ps" in debugger shows that acpiconf(8) is running in
the userland upon resume (and hang).  Not sure if it helps or not though.


More information about the freebsd-stable mailing list