]> git.baikalelectronics.ru Git - kernel.git/commit
xhci: Fix USB 3.0 device restart on resume.
authorSarah Sharp <sarah.a.sharp@linux.intel.com>
Tue, 15 Nov 2011 01:51:39 +0000 (17:51 -0800)
committerSarah Sharp <sarah.a.sharp@linux.intel.com>
Tue, 10 Jan 2012 19:04:53 +0000 (11:04 -0800)
commit470b7f806a9b195745a283d0fa61df750bdaac45
tree3549b42dc7e81dd3fbdeb2dfbbe1c57638f7230a
parent68c9c9db1271fc22a74bf938ba81f74192be6e61
xhci: Fix USB 3.0 device restart on resume.

The xHCI hub port code gets passed a zero-based port number by the USB
core.  It then adds one to in order to find a device slot by port number
and device speed by calling xhci_find_slot_id_by_port.  That function
clearly states it requires a one-based port number.  The xHCI port
status change event handler was using a zero-based port number that it
got from find_faked_portnum_from_hw_portnum, not a one-based port
number.  This lead to the doorbells never being rung for a device after
a resume, or worse, a different device with the same speed having its
doorbell rung (which could lead to bad power management in the xHCI host
controller).

This patch should be backported to kernels as old as 2.6.39.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Acked-by: Andiry Xu <andiry.xu@amd.com>
Cc: stable@vger.kernel.org
drivers/usb/host/xhci-ring.c