summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorRavi Babu <ravibabu@ti.com>2013-04-02 13:22:42 +0530
committerFelipe Balbi <balbi@ti.com>2013-04-02 11:42:50 +0300
commit538bf07d897008e87eca49cde5970545f3814ac7 (patch)
treebd1e62f349ab838c9f494184f5da9ee199671fff /drivers/usb
parent96449f097e3874af0e8ddd721d3ebeed2ec389da (diff)
downloadlinux-3.10-538bf07d897008e87eca49cde5970545f3814ac7.tar.gz
linux-3.10-538bf07d897008e87eca49cde5970545f3814ac7.tar.bz2
linux-3.10-538bf07d897008e87eca49cde5970545f3814ac7.zip
usb: musb: gadget: read ep0 fifo only if rxcount is non zero
avoid reading fifo rxcount is zero of fifo is empty, hence read fifo only if rxcount is non-zero Signed-off-by: Ravi Babu <ravibabu@ti.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/musb/musb_gadget_ep0.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/usb/musb/musb_gadget_ep0.c b/drivers/usb/musb/musb_gadget_ep0.c
index c9c1ac4e075..2af45a0c893 100644
--- a/drivers/usb/musb/musb_gadget_ep0.c
+++ b/drivers/usb/musb/musb_gadget_ep0.c
@@ -505,8 +505,10 @@ static void ep0_rxstate(struct musb *musb)
req->status = -EOVERFLOW;
count = len;
}
- musb_read_fifo(&musb->endpoints[0], count, buf);
- req->actual += count;
+ if (count > 0) {
+ musb_read_fifo(&musb->endpoints[0], count, buf);
+ req->actual += count;
+ }
csr = MUSB_CSR0_P_SVDRXPKTRDY;
if (count < 64 || req->actual == req->length) {
musb->ep0_state = MUSB_EP0_STAGE_STATUSIN;