aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorPaul Zimmerman <Paul.Zimmerman@synopsys.com>2011-09-30 03:58:44 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-10-04 13:25:53 -0400
commit5275455a6e6ae6b57303834b0afd267bb9657ffc (patch)
treea8ff14919fc0f62459771e667a101439ec9cbc65 /drivers
parent82828ca77b8b63b817d9bb540145a4cafa9be582 (diff)
usb: dwc3: gadget: make DWC3_EP_WEDGE do the right thing
This makes DWC3_EP_WEDGE do the right thing, which is prevent DWC3_EP_WEDGE from ever being cleared by a ClearFeature(HALT) command. [ balbi@ti.com : allowed set_wedge to send SetHalt command to controller ] Signed-off-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/dwc3/gadget.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index fd5d2bd9b7ef..16f2ba614fc0 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -894,6 +894,9 @@ int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value)
894 else 894 else
895 dep->flags |= DWC3_EP_STALL; 895 dep->flags |= DWC3_EP_STALL;
896 } else { 896 } else {
897 if (dep->flags & DWC3_EP_WEDGE)
898 return 0;
899
897 ret = dwc3_send_gadget_ep_cmd(dwc, dep->number, 900 ret = dwc3_send_gadget_ep_cmd(dwc, dep->number,
898 DWC3_DEPCMD_CLEARSTALL, &params); 901 DWC3_DEPCMD_CLEARSTALL, &params);
899 if (ret) 902 if (ret)
@@ -903,6 +906,7 @@ int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value)
903 else 906 else
904 dep->flags &= ~DWC3_EP_STALL; 907 dep->flags &= ~DWC3_EP_STALL;
905 } 908 }
909
906 return ret; 910 return ret;
907} 911}
908 912
@@ -936,7 +940,7 @@ static int dwc3_gadget_ep_set_wedge(struct usb_ep *ep)
936 940
937 dep->flags |= DWC3_EP_WEDGE; 941 dep->flags |= DWC3_EP_WEDGE;
938 942
939 return usb_ep_set_halt(ep); 943 return dwc3_gadget_ep_set_halt(ep, 1);
940} 944}
941 945
942/* -------------------------------------------------------------------------- */ 946/* -------------------------------------------------------------------------- */