summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJanusz Dziedzic <januszx.dziedzic@intel.com>2016-07-07 08:39:09 +0200
committerFelipe Balbi <felipe.balbi@linux.intel.com>2016-08-11 15:09:48 +0300
commit79d17482a4091056e128a5048e253f2ed53440cc (patch)
treeebe9df60de93d57ca5d6612befe91af7f82c96d1
parent207707d8fd48ebc977fb2b2794004a020e1ee08e (diff)
downloadop-kernel-dev-79d17482a4091056e128a5048e253f2ed53440cc.zip
op-kernel-dev-79d17482a4091056e128a5048e253f2ed53440cc.tar.gz
usb: dwc3: don't set last bit for ISOC endpoints
According to Synopsys Databook 2.60a, section 8.3.4, it's stated that: The LST bit should be set to 0 (isochronous transfers normally continue until the endpoint is removed entirely, at which time an End Transfer command is used to stop the transfer). This patch makes sure that detail is observed and fixes a regression with Android Audio playback caused by recent changes to DWC3 gadget. Signed-off-by: Janusz Dziedzic <januszx.dziedzic@linux.intel.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
-rw-r--r--drivers/usb/dwc3/gadget.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index eb820e4..7a4d4d2 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -829,7 +829,7 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep,
if (!req->request.no_interrupt && !chain)
trb->ctrl |= DWC3_TRB_CTRL_IOC | DWC3_TRB_CTRL_ISP_IMI;
- if (last)
+ if (last && !usb_endpoint_xfer_isoc(dep->endpoint.desc))
trb->ctrl |= DWC3_TRB_CTRL_LST;
if (chain)
OpenPOWER on IntegriCloud