Messages in this thread | | | Date | Thu, 15 May 2008 15:55:56 -0400 (EDT) | From | Alan Stern <> | Subject | Re: Problems with suspend and USB storage |
| |
On Thu, 15 May 2008, Rafael J. Wysocki wrote:
> On Thursday, 15 of May 2008, Bill Nottingham wrote: > > > > I've been testing suspend/hibernate with various USB devices under > > 2.6.25.2. Test box is a Thinkpad T60 (uhci, ehci). > > The results are somewhat dismal. > > > > Using USB as a hibernate device: > > - A directly connected USB stick works OK as a hibernate device > > - A directly connected USB hard drive works OK as a hibernate device > > - A USB stick connected via an ExpressCard reader does not - it appears > > to just not be there when the hibernate code attemps to write > > the data. > > > > On resume (from either hibernate or suspend from RAM): > > - Any 'in use' USB storage, whether it be as swap (a hibernate device), > > or a mounted filesystem, immediately generates errors on resume. It > > appears the filesystem and/or swap tasks are woken up before the > > actual USB device - it enumerates the disks after the errors have > > already been thrown. > > - As a consequence, the USB devices shift their device names > > - Using USB_PERSIST has no effect on this problem > > - This appears to happen for all USB connection types (hard drive, > > stick, via ExpressCard reader.) > > > > Is there any way to get sane behavior out of suspend/resume with > > USB storage? > > Well, the problem is that USB storage devices are disconnected during suspend > and hibernation and connected once again during resume. Then, however, we > are not able to tell whether the device in the slot is the same that was in > there before the system was put into the sleep state. > > I'm not sure if there's any workaround available in the current mainline.
You can try applying one of the gregkh-04-usb-* patches at
http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
They include changes to the way hub-resume handling works, as well as more debugging output. Be sure to enable CONFIG_USB_DEBUG and post the relevant dmesg log.
Alan Stern
| |