UPSTREAM: usb: dwc3: gadget: don't interrupt when chained
authorFelipe Balbi <felipe.balbi@linux.intel.com>
Wed, 6 Apr 2016 07:01:14 +0000 (10:01 +0300)
committerHuang, Tao <huangtao@rock-chips.com>
Tue, 16 Aug 2016 12:48:19 +0000 (20:48 +0800)
It makes no sense to interrupt in the middle of
chained transfer. This patch just makes sure we
don't do that.

Change-Id: Ic90f7482b1f4367532199155c51fb790c3566cdc
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
(cherry picked from commit 8e7046b71daeb6dfbf8c6eaa164e55d4e1dcb5c8)

drivers/usb/dwc3/gadget.c

index 92f3e76bfbca077286d7e65c54f501d638e1b55a..d7668e7bc61a9069e3ea5a229c1bdf8b01d53667 100644 (file)
@@ -804,7 +804,7 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep,
        /* always enable Continue on Short Packet */
        trb->ctrl |= DWC3_TRB_CTRL_CSP;
 
        /* always enable Continue on Short Packet */
        trb->ctrl |= DWC3_TRB_CTRL_CSP;
 
-       if (!req->request.no_interrupt)
+       if (!req->request.no_interrupt && !chain)
                trb->ctrl |= DWC3_TRB_CTRL_IOC | DWC3_TRB_CTRL_ISP_IMI;
 
        if (last)
                trb->ctrl |= DWC3_TRB_CTRL_IOC | DWC3_TRB_CTRL_ISP_IMI;
 
        if (last)