Hi Minas, Am 07.12.2017 um 18:08 schrieb Stefan Wahren: > According databook in Buffer and External DMA mode > non-split periodic channels can't be halted. do you know of any consequences not having this patch applied? > > Signed-off-by: Minas Harutyunyan <hminas@xxxxxxxxxxxx> Please add a fixes tag. Thanks Stefan > --- > drivers/usb/dwc2/hcd.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c > index 614bb9603def..987122497408 100644 > --- a/drivers/usb/dwc2/hcd.c > +++ b/drivers/usb/dwc2/hcd.c > @@ -985,6 +985,25 @@ void dwc2_hc_halt(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, > > if (dbg_hc(chan)) > dev_vdbg(hsotg->dev, "%s()\n", __func__); > + > + /* > + * In buffer DMA or external DMA mode channel can't be halted > + * for non-split periodic channels. At the end of the next > + * uframe/frame (in the worst case), the core generates a channel > + * halted and disables the channel automatically. > + */ > + if ((hsotg->core_params->dma_enable > 0 && > + hsotg->core_params->dma_desc_enable <= 0) || > + hsotg->hw_params.arch == GHWCFG2_EXT_DMA_ARCH) { > + if (!chan->do_split && > + (chan->ep_type == USB_ENDPOINT_XFER_ISOC || > + chan->ep_type == USB_ENDPOINT_XFER_INT)) { > + dev_err(hsotg->dev, "%s() Channel can't be halted\n", > + __func__); > + return; > + } > + } > + > if (halt_status == DWC2_HC_XFER_NO_HALT_STATUS) > dev_err(hsotg->dev, "!!! halt_status = %d !!!\n", halt_status); > -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html