Bug 12571

Summary: ohci-hcd resume problem on Dell Latitude D410
Product: Drivers Reporter: Ross Boswell (drb)
Component: USBAssignee: Greg Kroah-Hartman (greg)
Status: CLOSED DUPLICATE    
Severity: normal CC: rjw, rui.zhang, stern
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.29-rc3 Subsystem:
Regression: Yes Bisected commit-id:
Bug Depends on:    
Bug Blocks: 7216, 12398, 56331    
Attachments: Patch to test
dmesg output after suspend-to-memory and resume

Description Ross Boswell 2009-01-29 03:46:33 UTC
Latest working kernel version:2.6.28
Earliest failing kernel version:2.6.29-rc1
Distribution: Debian
Hardware Environment: Dell Latitude D410
Software Environment:
Problem Description: Suspend-to-memory appears to work, entering sleep state with slowly blinking power LED, but hangs with blank screen on resume.  
Suspend-to-disk hangs before power-off.  Behaviour is similar in -rc1 and -rc3.  

Steps to reproduce: Boot kernel (no X); attempt suspend-resume.
Comment 1 Rafael J. Wysocki 2009-01-30 14:01:59 UTC
Created attachment 20048 [details]
Patch to test

Please check if this patch makes any difference.
Comment 2 Ross Boswell 2009-01-31 01:48:38 UTC
Created attachment 20050 [details]
dmesg output after suspend-to-memory and resume

Better!

With the patch, suspend-to-memory and suspend-to-disk both work, but resume seems slow with a number of (fleeting) error messages of the form:

ohci_hcd 0000:03:00.0: can't restart, -1

I have attached the output from dmesg after suspend-to-memory and resume in the hope that it might give some clues. 

Thanks -- Ross
Comment 3 Zhang Rui 2009-02-08 17:54:20 UTC
what if you unload ohci driver before suspend and load it after resume?
Comment 4 Zhang Rui 2009-02-12 01:09:23 UTC
ping Ross. :)
Comment 5 Ross Boswell 2009-02-12 07:03:42 UTC
Sorry for delay replying -- I'm travelling at present (London today, Seoul tomorrow) and to test the "ohci unload" strategy I had to recompile the kernel with ohci as a module.  

The answer is that unloading ohci makes suspend-resume snappy.  If I then reload ohci, the only hardware I have with me that requires it (a Merlin XU870 HSPD modem) is unrecognised and doesn't work.  

Tentative conclusion:  the remaining problem seems to lie in ohci_hcd  
Comment 6 Zhang Rui 2009-02-12 17:48:22 UTC
re-assign to the usb category, :)
Comment 7 Alan Stern 2009-02-13 07:08:47 UTC
The next step: Build 2.6.29-rc4 with CONFIG_USB_DEBUG enabled and attach the dmesg log showing what happens during the suspend/resume and when ohci-hcd is reloaded and the modem is plugged in.
Comment 8 Rafael J. Wysocki 2009-02-15 06:11:09 UTC
The fix from comment #1 has been merged, so there's only the remaining ohci-hcd issue.

Ross, can you check the patch from
http://marc.info/?l=linux-kernel&m=123456499020575&w=4 and see if it changes anything?
Comment 9 Ross Boswell 2009-02-16 01:12:28 UTC
I have not followed Alan's proposed "next step" [Comment #7] because applying the patch from marc.info suggested by Rafael [Comment #8] has made the problem go away.  

With the fixes from comment #1 and comment #8 both applied, suspend-resume works well whether ohci_hcd is loaded or not.

Thanks everyone for your good work.  From my viewpoint this bug is now completely squashed.  
Comment 10 Rafael J. Wysocki 2009-02-16 08:28:13 UTC

*** This bug has been marked as a duplicate of bug 12659 ***
Comment 11 Rafael J. Wysocki 2009-02-16 08:28:53 UTC
Your last comment means that this is a duplicate of bug #12659.  Closing.