usb: fix EP0 does not handle req->zero bug
authorlyz <lyz@rock-chips.com>
Wed, 23 Oct 2013 07:50:05 +0000 (15:50 +0800)
committerlyz <lyz@rock-chips.com>
Wed, 23 Oct 2013 07:50:18 +0000 (15:50 +0800)
drivers/usb/dwc_otg/dwc_otg_pcd.c

index 16222daa83b919c6ceed7d866e41915c8909d9ba..e116c65e0f7d6bb74981ca879135f4c6f54647cd 100755 (executable)
@@ -652,8 +652,10 @@ static int dwc_otg_pcd_ep_queue(struct usb_ep *_ep,
                                DWC_DEBUGPL(DBG_PCD, 
                                                                "%s ep0: EP0_IN_DATA_PHASE\n", 
                                                                __func__);
-                           if((_req->length % MAX_EP0_SIZE) == 0)
-                               ep->dwc_ep.sent_zlp = 1;
+                           if((_req->length % MAX_EP0_SIZE) == 0){
+                               if(_req->zero)
+                                   ep->dwc_ep.sent_zlp = 1;
+                               }
                                break;
 
                        case EP0_OUT_DATA_PHASE: