Bug 16153

Summary: Missing PM support in xhci
Product: Drivers Reporter: Ben Hutchings (ben)
Component: USBAssignee: Sarah Sharp (sarah)
Status: RESOLVED CODE_FIX    
Severity: normal CC: admin, akpm, alan, greg, jrnieder, mehmet, ozan, rylklee, sarah
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.34 Subsystem:
Regression: No Bisected commit-id:
Attachments: requested dmesg for 2.6.37-2-amd64

Description Ben Hutchings 2010-06-07 20:02:09 UTC
The xhci driver does not support PM and therefore blocks suspend if loaded.

Reported in <http://bugs.debian.org/584830>.
Comment 1 Greg Kroah-Hartman 2010-06-07 20:26:52 UTC
You reported this for the .32 kernel, yet you say this is an issue in .34.  I thought this was resolved in .34, right?
Comment 2 Ben Hutchings 2010-06-07 20:51:20 UTC
(In reply to comment #1)
> You reported this for the .32 kernel, yet you say this is an issue in .34.  I
> thought this was resolved in .34, right?

Sarah said xhci "...doesn't implement PCI and USB bus power management yet." Based on that I assume that this still applies to 2.6.34 (and 2.6.35-rc2).
Comment 3 aix27249 2011-02-25 21:08:16 UTC
I confirm this bug on 2.6.36 branch, including 2.6.36.4.
Comment 4 Sarah Sharp 2011-02-26 02:50:41 UTC
On Fri, Feb 25, 2011 at 09:08:18PM +0000, bugzilla-daemon@bugzilla.kernel.org wrote:
> https://bugzilla.kernel.org/show_bug.cgi?id=16153
> 
> 
> aix27249 <admin@agilialinux.ru> changed:
> 
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>                  CC|                            |admin@agilialinux.ru
> 
> 
> 
> 
> --- Comment #3 from aix27249 <admin@agilialinux.ru>  2011-02-25 21:08:16 ---
> I confirm this bug on 2.6.36 branch, including 2.6.36.4.

Update to 2.6.37.  The patches for PM support was so huge that we didn't
want to back port them.

Sarah Sharp
Comment 5 Ryan Kleeberger 2011-03-28 12:08:01 UTC
Getting the same behavior on 2.6.38-1.
Comment 6 Ryan Kleeberger 2011-03-28 12:15:09 UTC
Same behavior or 2.6.37-2 as well.
Comment 7 Ryan Kleeberger 2011-03-28 12:15:53 UTC
Same behavior on 2.6.37-2 as well.
Comment 8 Sarah Sharp 2011-03-28 21:56:53 UTC
Send me your dmesg for 2.6.37-2.  PM should be there.  When I run git log for v2.6.37 for the xHCI driver files, I see

5535b1d USB: xHCI: PCI power management implementation
9777e3c USB: xHCI: bus power management implementation
5619253 USB: xHCI: port remote wakeup implementation
be88fe4 USB: xHCI: port power management implementation

You should have PM support.
Comment 9 Ryan Kleeberger 2011-03-29 00:16:39 UTC
Created attachment 52402 [details]
requested dmesg for 2.6.37-2-amd64
Comment 10 Ozan Caglayan 2011-06-02 13:27:01 UTC
2.6.35 is a longterm support kernel and has a faulty XHCI code, I think this can't be accepted. BTW, I don't get why XHCI have been merged without PM support.

How many patches there are? Is it impossible to backport them for core changes or will it take too much time?
Comment 11 Sarah Sharp 2011-06-02 17:22:34 UTC
Ozan: it's not the number of patches, it's the size of the patches.  They are just too big to go into the 2.6.35 stable kernel.

sarah@xanatos:~/git/kernels/xhci$ git diff --stat be88fe4^..9777e3c
 drivers/usb/host/xhci-hub.c  |  424 +++++++++++++++++++++++++++++++++++++++++-
 drivers/usb/host/xhci-mem.c  |    4 +
 drivers/usb/host/xhci-pci.c  |    2 +
 drivers/usb/host/xhci-ring.c |  101 +++++++++-
 drivers/usb/host/xhci.c      |    2 +-
 drivers/usb/host/xhci.h      |   30 +++-
 6 files changed, 547 insertions(+), 16 deletions(-)

It's not a "small bug fix" that can be backported to the stable kernel.
Comment 12 Jonathan Nieder 2011-07-26 19:04:55 UTC
FYI:

"This is no longer the case in Linux-2.6.39 (testing, unstable)." -- Thomas Jollans, <http://bugs.debian.org/584830>.

So it looks like the patches worked.  Thanks!