Loading drivers/usb/dwc3/gadget.c +9 −2 Original line number Original line Diff line number Diff line Loading @@ -862,6 +862,8 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep, { { struct dwc3 *dwc = dep->dwc; struct dwc3 *dwc = dep->dwc; struct dwc3_trb *trb; struct dwc3_trb *trb; bool zlp_appended = false; unsigned rlen; dev_vdbg(dwc->dev, "%s: req %p dma %08llx length %d%s%s\n", dev_vdbg(dwc->dev, "%s: req %p dma %08llx length %d%s%s\n", dep->name, req, (unsigned long long) dma, dep->name, req, (unsigned long long) dma, Loading Loading @@ -929,13 +931,18 @@ update_trb: trb->ctrl |= DWC3_TRB_CTRL_HWO; trb->ctrl |= DWC3_TRB_CTRL_HWO; if (req->request.zero && length && rlen = req->request.length; (length % usb_endpoint_maxp(dep->endpoint.desc) == 0)) { if (!zlp_appended && !chain && req->request.zero && rlen && (rlen % usb_endpoint_maxp(dep->endpoint.desc) == 0)) { zlp_appended = true; /* Skip the LINK-TRB on ISOC */ /* Skip the LINK-TRB on ISOC */ if (((dep->free_slot & DWC3_TRB_MASK) == DWC3_TRB_NUM - 1) && if (((dep->free_slot & DWC3_TRB_MASK) == DWC3_TRB_NUM - 1) && usb_endpoint_xfer_isoc(dep->endpoint.desc)) usb_endpoint_xfer_isoc(dep->endpoint.desc)) dep->free_slot++; dep->free_slot++; trb->ctrl |= DWC3_TRB_CTRL_CHN; trb = &dep->trb_pool[dep->free_slot & DWC3_TRB_MASK]; trb = &dep->trb_pool[dep->free_slot & DWC3_TRB_MASK]; dep->free_slot++; dep->free_slot++; Loading Loading
drivers/usb/dwc3/gadget.c +9 −2 Original line number Original line Diff line number Diff line Loading @@ -862,6 +862,8 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep, { { struct dwc3 *dwc = dep->dwc; struct dwc3 *dwc = dep->dwc; struct dwc3_trb *trb; struct dwc3_trb *trb; bool zlp_appended = false; unsigned rlen; dev_vdbg(dwc->dev, "%s: req %p dma %08llx length %d%s%s\n", dev_vdbg(dwc->dev, "%s: req %p dma %08llx length %d%s%s\n", dep->name, req, (unsigned long long) dma, dep->name, req, (unsigned long long) dma, Loading Loading @@ -929,13 +931,18 @@ update_trb: trb->ctrl |= DWC3_TRB_CTRL_HWO; trb->ctrl |= DWC3_TRB_CTRL_HWO; if (req->request.zero && length && rlen = req->request.length; (length % usb_endpoint_maxp(dep->endpoint.desc) == 0)) { if (!zlp_appended && !chain && req->request.zero && rlen && (rlen % usb_endpoint_maxp(dep->endpoint.desc) == 0)) { zlp_appended = true; /* Skip the LINK-TRB on ISOC */ /* Skip the LINK-TRB on ISOC */ if (((dep->free_slot & DWC3_TRB_MASK) == DWC3_TRB_NUM - 1) && if (((dep->free_slot & DWC3_TRB_MASK) == DWC3_TRB_NUM - 1) && usb_endpoint_xfer_isoc(dep->endpoint.desc)) usb_endpoint_xfer_isoc(dep->endpoint.desc)) dep->free_slot++; dep->free_slot++; trb->ctrl |= DWC3_TRB_CTRL_CHN; trb = &dep->trb_pool[dep->free_slot & DWC3_TRB_MASK]; trb = &dep->trb_pool[dep->free_slot & DWC3_TRB_MASK]; dep->free_slot++; dep->free_slot++; Loading