On 20-09-08 09:22:44, Felipe Balbi wrote: > > Hi, > > Peter Chen <peter.chen@xxxxxxx> writes: > > For sg buffer list use case, we need to add ISP for each TRB, and > > add CHAIN bit for each TRB except for the last TRB. > > > > Signed-off-by: Peter Chen <peter.chen@xxxxxxx> > > --- > > drivers/usb/cdns3/gadget.c | 8 +++++++- > > 1 file changed, 7 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/usb/cdns3/gadget.c b/drivers/usb/cdns3/gadget.c > > index 25e3ff1cdf61..a308a694abc5 100644 > > --- a/drivers/usb/cdns3/gadget.c > > +++ b/drivers/usb/cdns3/gadget.c > > @@ -1221,8 +1221,14 @@ static int cdns3_ep_run_transfer(struct cdns3_endpoint *priv_ep, > > else > > priv_req->trb->control = cpu_to_le32(control); > > > > - if (sg_supported) > > + if (sg_supported) { > > + trb->control |= TRB_ISP; > > + /* Don't set chain bit for last TRB */ > > + if (sg_iter < num_trb - 1) > > + trb->control |= TRB_CHAIN; > > + > > s = sg_next(s); > > + } > > is this a bugfix? > The support for sg list is not good at current code, it needs all changes in this patch series to let it work well, so it is better let the whole things in this series as improvement. -- Thanks, Peter Chen