usb: dwc3: fix implementation of endpoint wedge
authorAlan Stern <stern@rowland.harvard.edu>
Fri, 1 Nov 2013 16:05:12 +0000 (12:05 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 20 Dec 2013 15:48:54 +0000 (07:48 -0800)
commit14d9ceaf84edebb520b2b7c1f8800fef5364ccbf
tree8210b2f9594c8a84926cbe070748d9f2d63b1e62
parentfb4e47f9e933441aa17bb7aa8f505444927ea10b
usb: dwc3: fix implementation of endpoint wedge

commit a535d81c92615b8ffb99b7e1fd1fb01effaed1af upstream.

The dwc3 UDC driver doesn't implement endpoint wedging correctly.
When an endpoint is wedged, the gadget driver should be allowed to
clear the wedge by calling usb_ep_clear_halt().  Only the host is
prevented from resetting the endpoint.

This patch fixes the implementation.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Tested-by: Pratyush Anand <pratyush.anand@st.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/dwc3/ep0.c
drivers/usb/dwc3/gadget.c