From: Peter Chen Date: Tue, 28 Jul 2015 02:08:32 +0000 (+0800) Subject: usb: chipidea: udc: zero-length packet is only needed for TX X-Git-Tag: v4.3-rc1~156^2~34^2~7 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=a4da4f12b4a7e7072753ebae9b2ccd72b89c3392;p=linux.git usb: chipidea: udc: zero-length packet is only needed for TX The zero-length packet is the sendor tells the receiver that there is no more data, so it is only needed at the TX side. Signed-off-by: Peter Chen --- diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c index 27cbd1c2f47f..aca7a97ee5ff 100644 --- a/drivers/usb/chipidea/udc.c +++ b/drivers/usb/chipidea/udc.c @@ -445,7 +445,7 @@ static int _hardware_enqueue(struct ci_hw_ep *hwep, struct ci_hw_req *hwreq) rest -= count; } - if (hwreq->req.zero && hwreq->req.length + if (hwreq->req.zero && hwreq->req.length && hwep->dir == TX && (hwreq->req.length % hwep->ep.maxpacket == 0)) add_td_to_list(hwep, hwreq, 0);