+++ /dev/null
-From 308c316d16cbad99bb834767382baa693ac42169 Mon Sep 17 00:00:00 2001
-From: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
-Date: Tue, 25 Oct 2022 15:10:20 -0700
-Subject: usb: dwc3: gadget: Don't set IMI for no_interrupt
-
-From: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
-
-commit 308c316d16cbad99bb834767382baa693ac42169 upstream.
-
-The gadget driver may have a certain expectation of how the request
-completion flow should be from to its configuration. Make sure the
-controller driver respect that. That is, don't set IMI (Interrupt on
-Missed Isoc) when usb_request->no_interrupt is set. Also, the driver
-should only set IMI to the last TRB of a chain.
-
-Fixes: 72246da40f37 ("usb: Introduce DesignWare USB3 DRD Driver")
-Cc: stable@vger.kernel.org
-Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
-Reviewed-by: Jeff Vanhoof <jdv1029@gmail.com>
-Tested-by: Jeff Vanhoof <jdv1029@gmail.com>
-Link: https://lore.kernel.org/r/ced336c84434571340c07994e3667a0ee284fefe.1666735451.git.Thinh.Nguyen@synopsys.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/usb/dwc3/gadget.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/drivers/usb/dwc3/gadget.c
-+++ b/drivers/usb/dwc3/gadget.c
-@@ -873,8 +873,8 @@ static void dwc3_prepare_one_trb(struct
- trb->ctrl = DWC3_TRBCTL_ISOCHRONOUS;
- }
-
-- /* always enable Interrupt on Missed ISOC */
-- trb->ctrl |= DWC3_TRB_CTRL_ISP_IMI;
-+ if (!no_interrupt && !chain)
-+ trb->ctrl |= DWC3_TRB_CTRL_ISP_IMI;
- break;
-
- case USB_ENDPOINT_XFER_BULK: