Lines Matching refs:dwc3_ep

724 	usb_dwc3_endpoint_t *dwc3_ep = ((ep->is_in) ? &dwc3_handle->IN_ep[ep->num] :  in dwc3_ep_start_xfer()  local
727 VERBOSE("%s PHYEP%d %x\n", __func__, dwc3_ep->phy_epnum, dwc3_ep->flags); in dwc3_ep_start_xfer()
731 ((dwc3_ep->flags & USB_DWC3_EP_ISOC_START_PENDING) == 0U) && in dwc3_ep_start_xfer()
732 ((dwc3_ep->flags & USB_DWC3_EP_ISOC_STARTED) == 0U)) { in dwc3_ep_start_xfer()
733 dwc3_ep->flags |= USB_DWC3_EP_ISOC_START_PENDING; in dwc3_ep_start_xfer()
739 ((dwc3_ep->flags & USB_DWC3_EP_ISOC_START_PENDING) != 0U)) { in dwc3_ep_start_xfer()
740 dwc3_ep->flags &= ~USB_DWC3_EP_ISOC_START_PENDING; in dwc3_ep_start_xfer()
743 dwc3_ep->trb_addr->bpl = lower_32_bits(dwc3_ep->dma_addr); in dwc3_ep_start_xfer()
744 dwc3_ep->trb_addr->bph = upper_32_bits(dwc3_ep->dma_addr); in dwc3_ep_start_xfer()
745 dwc3_ep->trb_addr->size = DWC3_TRB_SIZE_LENGTH(ep->xfer_len); in dwc3_ep_start_xfer()
747 dwc3_ep->trb_addr->ctrl = dwc3_get_trb_ctltype(dwc3_ep->trb_flag & USB_DWC3_TRBCTL_MASK); in dwc3_ep_start_xfer()
749 dwc3_ep->trb_addr->ctrl |= ((ep->num == 0U) ? DWC3_TRB_CTRL_ISP_IMI : 0U); in dwc3_ep_start_xfer()
751 dwc3_ep->trb_addr->ctrl |= DWC3_TRB_CTRL_IOC; in dwc3_ep_start_xfer()
753 if ((ep->type == EP_TYPE_ISOC) && ((dwc3_ep->flags & USB_DWC3_EP_ISOC_STARTED) != 0U)) { in dwc3_ep_start_xfer()
760 dwc3_ep->trb_addr->ctrl |= DWC3_TRB_CTRL_LST; in dwc3_ep_start_xfer()
763 dwc3_ep->trb_addr->ctrl |= DWC3_TRB_CTRL_HWO; in dwc3_ep_start_xfer()
768 params.param0 = upper_32_bits(dwc3_ep->trb_dma_addr); in dwc3_ep_start_xfer()
769 params.param1 = lower_32_bits(dwc3_ep->trb_dma_addr); in dwc3_ep_start_xfer()
772 dwc3_ep->flags |= USB_DWC3_EP_REQ_QUEUED; in dwc3_ep_start_xfer()
775 dwc3_ep->flags |= USB_DWC3_EP_ISOC_STARTED; in dwc3_ep_start_xfer()
779 ep->num, ep->is_in ? "IN" : "OUT", dwc3_ep->trb_addr, in dwc3_ep_start_xfer()
780 (uint32_t)dwc3_ep->trb_addr->bph, (uint32_t)dwc3_ep->trb_addr->bpl, in dwc3_ep_start_xfer()
781 (uint32_t)dwc3_ep->trb_addr->size, (uint32_t)dwc3_ep->trb_addr->ctrl, in dwc3_ep_start_xfer()
782 ep->xfer_len, dwc3_ep->flags); in dwc3_ep_start_xfer()
784 ret = dwc3_execute_dep_cmd(dwc3_handle, dwc3_ep->phy_epnum, cmd, &params); in dwc3_ep_start_xfer()
786 dwc3_ep->flags &= ~USB_DWC3_EP_REQ_QUEUED; in dwc3_ep_start_xfer()
789 dwc3_ep->flags &= ~USB_DWC3_EP_ISOC_STARTED; in dwc3_ep_start_xfer()
795 dwc3_ep->resc_idx = in dwc3_ep_start_xfer()
797 DWC3_DEPCMD(dwc3_ep->phy_epnum))); in dwc3_ep_start_xfer()
806 usb_dwc3_endpoint_t *dwc3_ep = ((ep->is_in) ? &dwc3_handle->IN_ep[ep->num] : in usb_dwc3_ep_start_xfer() local
810 if (!dwc3_is_ep_enabled(dwc3_handle, dwc3_ep->phy_epnum) && ep->num != 0U) { in usb_dwc3_ep_start_xfer()
821 dwc3_ep->xfer_dest_buff = ep->xfer_buff; in usb_dwc3_ep_start_xfer()
822 dwc3_ep->xfer_dest_len = ep->xfer_len; in usb_dwc3_ep_start_xfer()
823 ep->xfer_buff = dwc3_ep->bounce_buf; in usb_dwc3_ep_start_xfer()
831 dwc3_ep->dma_addr = ((ep->xfer_buff != 0) ? in usb_dwc3_ep_start_xfer()
840 dwc3_ep->trb_flag = USB_DWC3_TRBCTL_CONTROL_STATUS2; in usb_dwc3_ep_start_xfer()
842 dwc3_ep->trb_flag = USB_DWC3_TRBCTL_CONTROL_STATUS3; in usb_dwc3_ep_start_xfer()
846 dwc3_ep->trb_flag = USB_DWC3_TRBCTL_CONTROL_DATA; in usb_dwc3_ep_start_xfer()
850 dwc3_ep->trb_flag = USB_DWC3_TRBCTL_NORMAL; in usb_dwc3_ep_start_xfer()
852 dwc3_ep->trb_flag = USB_DWC3_TRBCTL_ISOCHRONOUS_FIRST; in usb_dwc3_ep_start_xfer()
910 usb_dwc3_endpoint_t *dwc3_ep = ((ep->is_in) ? &dwc3_handle->IN_ep[ep->num] : in dwc3_ep_stop_xfer() local
916 VERBOSE("%s PHYEP%d %x\n", __func__, dwc3_ep->phy_epnum, dwc3_ep->flags); in dwc3_ep_stop_xfer()
920 dwc3_ep->flags &= ~(USB_DWC3_EP_ISOC_START_PENDING | USB_DWC3_EP_ISOC_STARTED); in dwc3_ep_stop_xfer()
923 if ((dwc3_ep->flags & USB_DWC3_EP_REQ_QUEUED) == 0U) { in dwc3_ep_stop_xfer()
929 DWC3_DEPCMD_PARAM((uint32_t)dwc3_ep->resc_idx); in dwc3_ep_stop_xfer()
931 ret = dwc3_execute_dep_cmd(dwc3_handle, dwc3_ep->phy_epnum, cmd, &params); in dwc3_ep_stop_xfer()
935 ep->xfer_count = ep->xfer_len - (dwc3_ep->trb_addr->size & DWC3_TRB_SIZE_MASK); in dwc3_ep_stop_xfer()
937 dwc3_ep->flags &= ~USB_DWC3_EP_REQ_QUEUED; in dwc3_ep_stop_xfer()
947 const usb_dwc3_endpoint_t *dwc3_ep) in dwc3_ep_set_stall() argument
953 return dwc3_execute_dep_cmd(dwc3_handle, dwc3_ep->phy_epnum, USB_DWC3_DEPCMD_SETSTALL, in dwc3_ep_set_stall()
1045 usb_dwc3_endpoint_t *dwc3_ep = ((ep->is_in) ? &dwc3_handle->IN_ep[ep->num] : in usb_dwc3_ep_set_stall() local
1048 if (dwc3_ep->is_stall) { in usb_dwc3_ep_set_stall()
1052 dwc3_ep->is_stall = true; in usb_dwc3_ep_set_stall()
1054 return dwc3_ep_set_stall(dwc3_handle, dwc3_ep); in usb_dwc3_ep_set_stall()
1116 usb_dwc3_endpoint_t *dwc3_ep; in dwc3_epaddr_set_stall() local
1120 dwc3_ep = &dwc3_handle->IN_ep[ep_addr & ADDRESS_MASK]; in dwc3_epaddr_set_stall()
1123 dwc3_ep = &dwc3_handle->OUT_ep[ep_addr]; in dwc3_epaddr_set_stall()
1135 if (dwc3_ep->is_stall) { in dwc3_epaddr_set_stall()
1139 dwc3_ep->is_stall = true; in dwc3_epaddr_set_stall()
1143 ret = dwc3_ep_set_stall(dwc3_handle, dwc3_ep); in dwc3_epaddr_set_stall()
1260 usb_dwc3_endpoint_t *dwc3_ep; in dwc3_handle_ep_event() local
1268 dwc3_ep = &dwc3_handle->IN_ep[ep_num]; in dwc3_handle_ep_event()
1271 dwc3_ep = &dwc3_handle->OUT_ep[ep_num]; in dwc3_handle_ep_event()
1289 (dwc3_get_ep_trbstatus(dwc3_ep) == USB_DWC3_TRBSTS_SETUP_PENDING)) { in dwc3_handle_ep_event()
1295 ep_num, ep->is_in ? "IN" : "OUT", dwc3_ep->trb_addr, in dwc3_handle_ep_event()
1296 (uint32_t)dwc3_ep->trb_addr->bph, (uint32_t)dwc3_ep->trb_addr->bpl, in dwc3_handle_ep_event()
1297 (uint32_t)dwc3_ep->trb_addr->size, (uint32_t)dwc3_ep->trb_addr->ctrl, in dwc3_handle_ep_event()
1298 dwc3_get_ep_trbstatus(dwc3_ep)); in dwc3_handle_ep_event()
1301 ep->xfer_count = ep->xfer_len - dwc3_get_ep_trblen(dwc3_ep); in dwc3_handle_ep_event()
1303 dwc3_ep->flags &= ~USB_DWC3_EP_REQ_QUEUED; in dwc3_handle_ep_event()
1306 api_unmapdmaaddr(dwc3_ep->dma_addr, ep->xfer_len, 1); in dwc3_handle_ep_event()
1341 ep->xfer_count = ep->xfer_len - dwc3_get_ep_trblen(dwc3_ep); in dwc3_handle_ep_event()
1343 dwc3_ep->flags &= ~USB_DWC3_EP_REQ_QUEUED; in dwc3_handle_ep_event()
1350 dwc3_ep->is_stall = false; in dwc3_handle_ep_event()
1368 api_unmapdmaaddr(dwc3_ep->dma_addr, ep->xfer_len, 0); in dwc3_handle_ep_event()
1371 if (ep->xfer_buff == dwc3_ep->bounce_buf) { in dwc3_handle_ep_event()
1372 api_memcpy(dwc3_ep->xfer_dest_buff, ep->xfer_buff, in dwc3_handle_ep_event()
1374 ep->xfer_buff = dwc3_ep->xfer_dest_buff; in dwc3_handle_ep_event()
1527 static enum usb_status dwc3_ep_clear_stall(dwc3_handle_t *dwc3_handle, usb_dwc3_endpoint_t *dwc3_ep) in dwc3_ep_clear_stall() argument
1533 return dwc3_execute_dep_cmd(dwc3_handle, dwc3_ep->phy_epnum, USB_DWC3_DEPCMD_CLEARSTALL, in dwc3_ep_clear_stall()