usb: dwc2: gadget: Correct dwc2_hsotg_ep_stop_xfr() function
authorVahram Aharonyan <vahrama@synopsys.com>
Tue, 15 Nov 2016 03:16:51 +0000 (19:16 -0800)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Fri, 18 Nov 2016 11:54:48 +0000 (13:54 +0200)
commitae79dd5dddb6fa4051c96c7f14116ded9e0dbdd7
tree1bde7c88c5ce7e8022682e9df2cb83de4121c79a
parentf0afdb424162c896e534a70cac858ccb7a516bad
usb: dwc2: gadget: Correct dwc2_hsotg_ep_stop_xfr() function

Correct dwc2_hsotg_ep_stop_xfr() function to follow dwc2 programming
guide for setting NAK on specific endpoint, disabling it and flushing
corresponding FIFO.

Current code does not take into account whether core acts in shared or
dedicated FIFO mode, current endpoint is periodic or not. It does not
clear EPDISBLD interrupt after programming of DXEPCTL_EPDIS, does not
flush shared TX FIFO and tries to clear global out NAK in wrong manner
instead of setting DCTL_CGOUTNAK.

Signed-off-by: Vahram Aharonyan <vahrama@synopsys.com>
Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/dwc2/gadget.c