Browse Source

usb: dwc3: gadget: don't force 'LST' always

the LST bit is to be set on the last of a series
of consecutive TRBs. We had a workaround for a
problem where data would get corrupted but that
doesn't happen anymore. It's likely that it was
caused by some FPGA instability during development
phase.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Felipe Balbi 13 years ago
parent
commit
42f8eb7a10
1 changed files with 4 additions and 10 deletions
  1. 4 10
      drivers/usb/dwc3/gadget.c

+ 4 - 10
drivers/usb/dwc3/gadget.c

@@ -672,16 +672,10 @@ static void dwc3_prepare_trbs(struct dwc3_ep *dep, bool starting)
 		if (list_empty(&dep->request_list))
 			last_one = 1;
 
-		/*
-		 * FIXME we shouldn't need to set LST bit always but we are
-		 * facing some weird problem with the Hardware where it doesn't
-		 * complete even though it has been previously started.
-		 *
-		 * While we're debugging the problem, as a workaround to
-		 * multiple TRBs handling, use only one TRB at a time.
-		 */
-		dwc3_prepare_one_trb(dep, req, true);
-		break;
+		dwc3_prepare_one_trb(dep, req, last_one);
+
+		if (last_one)
+			break;
 	}
 }