On Sat, Apr 18, 2020 at 12:36:43PM -0400, Sasha Levin wrote: > On Sat, Apr 18, 2020 at 12:53:25PM +0200, Greg KH wrote: > > On Sat, Apr 18, 2020 at 12:25:16PM +0200, Delio Brignoli wrote: > > > Please apply the following commit: > > > > > > Commit subject: usb: dwc3: gadget: Don't clear flags before transfer ended > > > Commit ID: a114c4ca64bd522aec1790c7e5c60c882f699d8f > > > Apply to: at least 4.19 stable, and 5.4 stable if possible. Note that all kernels from v4.18-rc1 up to 5.7-rc1 are affected. > > > > > > Why apply it: > > > <https://github.com/torvalds/linux/commit/a114c4ca64bd522aec1790c7e5c60c882f699d8f> fixes <https://github.com/torvalds/linux/commit/6d8a019614f3a7630e0a2c1be4bf1cfc23acf56e>. Without this fix the built-in USB function source/sink test module fails to work with isochronous endpoints [1]. A side-effect of setting dep->flags = DWC3_EP_ENABLED; in dwc3_gadget_ep_cleanup_completed_requests() as part of disabling an ep is that a subsequent attempt to enable the endpoint will skip __dwc3_gadget_ep_enable() effectively leaving the ep disabled. > > > > > > [1] Our gadget driver on TI AM5729 fails to work exactly like the built-in USB function source/sink test module when switching to alternate interface 1 because of the issue described above. > > > > > > TI is currently using 4.19 and 5.4 stable kernels as the basis for their processor SDK kernels for their AM57x SoC and may switch to 5.4 stable at a later time. Thank you. > > > > It does not apply to the 4.19.y kernel tree, can you provide a working > > backport of it please so that I can apply it? > > I took this as a dependency: > > c5353b225df9 ("usb: dwc3: gadget: don't enable interrupt when disabling endpoint") > > And worked around context conflicts caused by: > > 25abad6a0584 ("usb: dwc3: gadget: return errors from __dwc3_gadget_start_isoc()") > d92021f66063 ("usb: dwc3: Add workaround for isoc start transfer failure") > > And queued a114c4ca64bd for 4.19. Thanks for doing this!