diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/usb/musb/musb_gadget_ep0.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/usb/musb/musb_gadget_ep0.c b/drivers/usb/musb/musb_gadget_ep0.c index 9378b359c1f0..6a0d0467ec74 100644 --- a/drivers/usb/musb/musb_gadget_ep0.c +++ b/drivers/usb/musb/musb_gadget_ep0.c | |||
@@ -679,6 +679,14 @@ irqreturn_t musb_g_ep0_irq(struct musb *musb) | |||
679 | musb_readb(mbase, MUSB_FADDR), | 679 | musb_readb(mbase, MUSB_FADDR), |
680 | decode_ep0stage(musb->ep0_state)); | 680 | decode_ep0stage(musb->ep0_state)); |
681 | 681 | ||
682 | if (csr & MUSB_CSR0_P_DATAEND) { | ||
683 | /* | ||
684 | * If DATAEND is set we should not call the callback, | ||
685 | * hence the status stage is not complete. | ||
686 | */ | ||
687 | return IRQ_HANDLED; | ||
688 | } | ||
689 | |||
682 | /* I sent a stall.. need to acknowledge it now.. */ | 690 | /* I sent a stall.. need to acknowledge it now.. */ |
683 | if (csr & MUSB_CSR0_P_SENTSTALL) { | 691 | if (csr & MUSB_CSR0_P_SENTSTALL) { |
684 | musb_writew(regs, MUSB_CSR0, | 692 | musb_writew(regs, MUSB_CSR0, |