]> git.karo-electronics.de Git - karo-tx-linux.git/commit
USB: Don't use EHCI port sempahore for USB 3.0 hubs.
authorSarah Sharp <sarah.a.sharp@linux.intel.com>
Fri, 8 Mar 2013 00:24:19 +0000 (16:24 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 14 Mar 2013 18:29:51 +0000 (11:29 -0700)
commitac79dc9b4a929bd8c0d9e4a2fccd3b7215cbaee4
treea35a070a9f7dfc07f0de6945b0de1442ae032a77
parentd2c96b7257048e9a558f2ebe4fe884b51fd9016f
USB: Don't use EHCI port sempahore for USB 3.0 hubs.

[This is upstream commit 0fe51aa5eee51db7c7ecd201d42a977ad79c58b6.
It needs to be backported to kernels as old as 3.2, because it fixes the
buggy commit 9dbcaec830cd97f44a0b91b315844e0d7144746b "USB: Handle warm
reset failure on empty port."]

The EHCI host controller needs to prevent EHCI initialization when the
UHCI or OHCI companion controller is in the middle of a port reset.  It
uses ehci_cf_port_reset_rwsem to do this.  USB 3.0 hubs can't be under
an EHCI host controller, so it makes no sense to down the semaphore for
USB 3.0 hubs.  It also makes the warm port reset code more complex.

Don't down ehci_cf_port_reset_rwsem for USB 3.0 hubs.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/core/hub.c