diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/usb/dwc3/ep0.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c index d6bfc73dedbd..2f51de57593a 100644 --- a/drivers/usb/dwc3/ep0.c +++ b/drivers/usb/dwc3/ep0.c | |||
@@ -165,10 +165,13 @@ static int __dwc3_gadget_ep0_queue(struct dwc3_ep *dep, | |||
165 | req->request.dma, req->request.length, type); | 165 | req->request.dma, req->request.length, type); |
166 | dep->flags &= ~(DWC3_EP_PENDING_REQUEST | | 166 | dep->flags &= ~(DWC3_EP_PENDING_REQUEST | |
167 | DWC3_EP0_DIR_IN); | 167 | DWC3_EP0_DIR_IN); |
168 | 168 | } else if (dwc->delayed_status) { | |
169 | } else if (dwc->delayed_status && (dwc->ep0state == EP0_STATUS_PHASE)) { | ||
170 | dwc->delayed_status = false; | 169 | dwc->delayed_status = false; |
171 | dwc3_ep0_do_control_status(dwc, 1); | 170 | |
171 | if (dwc->ep0state == EP0_STATUS_PHASE) | ||
172 | dwc3_ep0_do_control_status(dwc, 1); | ||
173 | else | ||
174 | dev_dbg(dwc->dev, "too early for delayed status\n"); | ||
172 | } | 175 | } |
173 | 176 | ||
174 | return ret; | 177 | return ret; |