]> git.baikalelectronics.ru Git - kernel.git/commit
usb: otg: mxs-phy: Fix mx23 operation
authorMike Thompson <mpthompson@gmail.com>
Thu, 30 Aug 2012 21:26:25 +0000 (18:26 -0300)
committerFelipe Balbi <balbi@ti.com>
Mon, 10 Sep 2012 16:46:38 +0000 (19:46 +0300)
commit9ddb4841723048988775a1e8f3a8976260412d33
treedf7f080a47500f0ee5bde050b90815f1a5e288ef
parent2f89f3213367f0c6012c574b0fd855781a230659
usb: otg: mxs-phy: Fix mx23 operation

Currently mx23 fails to enumerate a USB device:

[ 1.300000] hub 1-0:1.0: unable to enumerate USB device on port 1
[ 1.520000] hub 1-0:1.0: unable to enumerate USB device on port 1
[ 1.740000] hub 1-0:1.0: unable to enumerate USB device on port 1
[ 1.960000] hub 1-0:1.0: unable to enumerate USB device on port 1
[ 2.180000] hub 1-0:1.0: unable to enumerate USB device on port 1

Use a kernel workqueue to asynchronously delay the setting of
ENHOSTDISCONDETECT bit until after higher level hub connect/reset processing
is complete.  Prematurely setting the bit prevents the connection
processing from completing and not setting it prevents disconnect from being
detected. No delay is needed for clearing of ENHOSTDISCONDETECT.

Successfully tested on mx23-olinuxino (micro, mini and maxi variants) and mx28evk.

Cc: stable@vger.kernel.org # v3.6
Signed-off-by: Mike Thompson <mpthompson@gmail.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/otg/mxs-phy.c