usb: dwc3: gadget: always enable IOC on bulk/interrupt transfers
by setting IOC always, we can recycle TRBs a lot sooner at the expense of some increased CPU load. The extra load seems to be quite minimal on OMAP5 devices (instead of 1 IRQ for one MSC transfer, we get CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS). Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
		
							parent
							
								
									0e06bcac79
								
							
						
					
					
						commit
						f3af36511e
					
				| @ -771,9 +771,6 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep, | |||||||
| 			trb->ctrl = DWC3_TRBCTL_ISOCHRONOUS_FIRST; | 			trb->ctrl = DWC3_TRBCTL_ISOCHRONOUS_FIRST; | ||||||
| 		else | 		else | ||||||
| 			trb->ctrl = DWC3_TRBCTL_ISOCHRONOUS; | 			trb->ctrl = DWC3_TRBCTL_ISOCHRONOUS; | ||||||
| 
 |  | ||||||
| 		if (!req->request.no_interrupt && !chain) |  | ||||||
| 			trb->ctrl |= DWC3_TRB_CTRL_IOC; |  | ||||||
| 		break; | 		break; | ||||||
| 
 | 
 | ||||||
| 	case USB_ENDPOINT_XFER_BULK: | 	case USB_ENDPOINT_XFER_BULK: | ||||||
| @ -788,6 +785,9 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep, | |||||||
| 		BUG(); | 		BUG(); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	if (!req->request.no_interrupt && !chain) | ||||||
|  | 		trb->ctrl |= DWC3_TRB_CTRL_IOC; | ||||||
|  | 
 | ||||||
| 	if (usb_endpoint_xfer_isoc(dep->endpoint.desc)) { | 	if (usb_endpoint_xfer_isoc(dep->endpoint.desc)) { | ||||||
| 		trb->ctrl |= DWC3_TRB_CTRL_ISP_IMI; | 		trb->ctrl |= DWC3_TRB_CTRL_ISP_IMI; | ||||||
| 		trb->ctrl |= DWC3_TRB_CTRL_CSP; | 		trb->ctrl |= DWC3_TRB_CTRL_CSP; | ||||||
| @ -1855,9 +1855,6 @@ static int dwc3_cleanup_done_reqs(struct dwc3 *dwc, struct dwc3_ep *dep, | |||||||
| 		return 1; | 		return 1; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if ((event->status & DEPEVT_STATUS_IOC) && |  | ||||||
| 			(trb->ctrl & DWC3_TRB_CTRL_IOC)) |  | ||||||
| 		return 0; |  | ||||||
| 	return 1; | 	return 1; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user