usb: cdns3: gadget: clear trb->length as zero after preparing every trb
It clears trb->length as zero before preparing td, but if scatter
buffer is used for td, there are several trbs within td, it needs to clear
every trb->length as zero, otherwise, the default value for trb->length
may not be zero after it begins to use the second round of trb rings.
Fixes: abc6b57904 ("usb: cdns3: gadget: using correct sg operations")
Signed-off-by: Peter Chen <peter.chen@nxp.com>
			
			
This commit is contained in:
		
							parent
							
								
									6703052fe3
								
							
						
					
					
						commit
						24fdaeeb29
					
				| @ -1260,6 +1260,7 @@ static int cdns3_ep_run_transfer(struct cdns3_endpoint *priv_ep, | ||||
| 		priv_req->end_trb = priv_ep->enqueue; | ||||
| 		cdns3_ep_inc_enq(priv_ep); | ||||
| 		trb = priv_ep->trb_pool + priv_ep->enqueue; | ||||
| 		trb->length = 0; | ||||
| 	} while (sg_iter < num_trb); | ||||
| 
 | ||||
| 	trb = priv_req->trb; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user