Lines Matching refs:chan

87 				    struct dwc2_host_chan *chan,  in dwc2_hc_handle_tt_clear()  argument
92 if (!chan->qh) in dwc2_hc_handle_tt_clear()
95 if (chan->qh->dev_speed == USB_SPEED_HIGH) in dwc2_hc_handle_tt_clear()
106 chan->qh->tt_buffer_dirty = 1; in dwc2_hc_handle_tt_clear()
109 chan->qh->tt_buffer_dirty = 0; in dwc2_hc_handle_tt_clear()
162 struct dwc2_host_chan *chan; in dwc2_rx_fifo_level_intr() local
169 chan = hsotg->hc_ptr_array[chnum]; in dwc2_rx_fifo_level_intr()
170 if (!chan) { in dwc2_rx_fifo_level_intr()
184 chan->data_pid_start); in dwc2_rx_fifo_level_intr()
192 dwc2_read_packet(hsotg, chan->xfer_buf, bcnt); in dwc2_rx_fifo_level_intr()
195 chan->xfer_count += bcnt; in dwc2_rx_fifo_level_intr()
196 chan->xfer_buf += bcnt; in dwc2_rx_fifo_level_intr()
404 struct dwc2_host_chan *chan, int chnum, in dwc2_get_actual_xfer_length() argument
414 if (chan->ep_is_in) { in dwc2_get_actual_xfer_length()
417 length = chan->xfer_len - count; in dwc2_get_actual_xfer_length()
420 } else if (chan->qh->do_split) { in dwc2_get_actual_xfer_length()
423 length = chan->xfer_len; in dwc2_get_actual_xfer_length()
436 length = (chan->start_pkt_count - count) * chan->max_packet; in dwc2_get_actual_xfer_length()
452 struct dwc2_host_chan *chan, int chnum, in dwc2_update_urb_state() argument
459 int xfer_length = dwc2_get_actual_xfer_length(hsotg, chan, chnum, qtd, in dwc2_update_urb_state()
469 if (chan->align_buf && xfer_length) { in dwc2_update_urb_state()
471 dma_unmap_single(hsotg->dev, chan->qh->dw_align_buf_dma, in dwc2_update_urb_state()
472 chan->qh->dw_align_buf_size, in dwc2_update_urb_state()
473 chan->ep_is_in ? in dwc2_update_urb_state()
475 if (chan->ep_is_in) in dwc2_update_urb_state()
477 chan->qh->dw_align_buf, xfer_length); in dwc2_update_urb_state()
484 if (xfer_length && chan->ep_type == USB_ENDPOINT_XFER_BULK && in dwc2_update_urb_state()
487 !(urb->length % chan->max_packet)) { in dwc2_update_urb_state()
496 __func__, (chan->ep_is_in ? "IN" : "OUT"), chnum); in dwc2_update_urb_state()
497 dev_vdbg(hsotg->dev, " chan->xfer_len %d\n", chan->xfer_len); in dwc2_update_urb_state()
514 struct dwc2_host_chan *chan, int chnum, in dwc2_hcd_save_data_toggle() argument
520 if (chan->ep_type != USB_ENDPOINT_XFER_CONTROL) { in dwc2_hcd_save_data_toggle()
522 chan->qh->data_toggle = DWC2_HC_PID_DATA0; in dwc2_hcd_save_data_toggle()
524 chan->qh->data_toggle = DWC2_HC_PID_DATA1; in dwc2_hcd_save_data_toggle()
544 struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, in dwc2_update_isoc_urb_state() argument
560 chan, chnum, qtd, halt_status, NULL); in dwc2_update_isoc_urb_state()
563 if (chan->align_buf && frame_desc->actual_length) { in dwc2_update_isoc_urb_state()
566 dma_unmap_single(hsotg->dev, chan->qh->dw_align_buf_dma, in dwc2_update_isoc_urb_state()
567 chan->qh->dw_align_buf_size, in dwc2_update_isoc_urb_state()
568 chan->ep_is_in ? in dwc2_update_isoc_urb_state()
570 if (chan->ep_is_in) in dwc2_update_isoc_urb_state()
573 chan->qh->dw_align_buf, in dwc2_update_isoc_urb_state()
579 if (chan->ep_is_in) in dwc2_update_isoc_urb_state()
594 chan, chnum, qtd, halt_status, NULL); in dwc2_update_isoc_urb_state()
597 if (chan->align_buf && frame_desc->actual_length) { in dwc2_update_isoc_urb_state()
600 dma_unmap_single(hsotg->dev, chan->qh->dw_align_buf_dma, in dwc2_update_isoc_urb_state()
601 chan->qh->dw_align_buf_size, in dwc2_update_isoc_urb_state()
602 chan->ep_is_in ? in dwc2_update_isoc_urb_state()
604 if (chan->ep_is_in) in dwc2_update_isoc_urb_state()
607 chan->qh->dw_align_buf, in dwc2_update_isoc_urb_state()
612 if (chan->qh->do_split && in dwc2_update_isoc_urb_state()
613 chan->ep_type == USB_ENDPOINT_XFER_ISOC && chan->ep_is_in && in dwc2_update_isoc_urb_state()
696 struct dwc2_host_chan *chan, in dwc2_release_channel() argument
704 if (dbg_hc(chan)) in dwc2_release_channel()
706 __func__, chan->hc_num, halt_status); in dwc2_release_channel()
742 dwc2_deactivate_qh(hsotg, chan->qh, free_qtd); in dwc2_release_channel()
750 if (!list_empty(&chan->hc_list_entry)) in dwc2_release_channel()
751 list_del(&chan->hc_list_entry); in dwc2_release_channel()
752 dwc2_hc_cleanup(hsotg, chan); in dwc2_release_channel()
753 list_add_tail(&chan->hc_list_entry, &hsotg->free_hc_list); in dwc2_release_channel()
758 switch (chan->ep_type) { in dwc2_release_channel()
775 haintmsk &= ~(1 << chan->hc_num); in dwc2_release_channel()
795 struct dwc2_host_chan *chan, struct dwc2_qtd *qtd, in dwc2_halt_channel() argument
798 if (dbg_hc(chan)) in dwc2_halt_channel()
802 if (dbg_hc(chan)) in dwc2_halt_channel()
804 dwc2_release_channel(hsotg, chan, qtd, halt_status); in dwc2_halt_channel()
809 dwc2_hc_halt(hsotg, chan, halt_status); in dwc2_halt_channel()
811 if (chan->halt_on_queue) { in dwc2_halt_channel()
815 if (chan->ep_type == USB_ENDPOINT_XFER_CONTROL || in dwc2_halt_channel()
816 chan->ep_type == USB_ENDPOINT_XFER_BULK) { in dwc2_halt_channel()
834 list_move(&chan->qh->qh_list_entry, in dwc2_halt_channel()
855 struct dwc2_host_chan *chan, in dwc2_complete_non_periodic_xfer() argument
863 if (chan->hcint & HCINTMSK_NYET) { in dwc2_complete_non_periodic_xfer()
870 chan->qh->ping_state = 1; in dwc2_complete_non_periodic_xfer()
883 if (chan->ep_is_in) { in dwc2_complete_non_periodic_xfer()
889 dwc2_halt_channel(hsotg, chan, qtd, halt_status); in dwc2_complete_non_periodic_xfer()
895 dwc2_release_channel(hsotg, chan, qtd, halt_status); in dwc2_complete_non_periodic_xfer()
905 struct dwc2_host_chan *chan, int chnum, in dwc2_complete_periodic_xfer() argument
913 if (!chan->ep_is_in || (hctsiz & TSIZ_PKTCNT_MASK) == 0) in dwc2_complete_periodic_xfer()
915 dwc2_release_channel(hsotg, chan, qtd, halt_status); in dwc2_complete_periodic_xfer()
918 dwc2_halt_channel(hsotg, chan, qtd, halt_status); in dwc2_complete_periodic_xfer()
922 struct dwc2_host_chan *chan, int chnum, in dwc2_xfercomp_isoc_split_in() argument
932 len = dwc2_get_actual_xfer_length(hsotg, chan, chnum, qtd, in dwc2_xfercomp_isoc_split_in()
942 if (chan->align_buf) { in dwc2_xfercomp_isoc_split_in()
944 dma_unmap_single(hsotg->dev, chan->qh->dw_align_buf_dma, in dwc2_xfercomp_isoc_split_in()
945 chan->qh->dw_align_buf_size, DMA_FROM_DEVICE); in dwc2_xfercomp_isoc_split_in()
947 qtd->isoc_split_offset, chan->qh->dw_align_buf, len); in dwc2_xfercomp_isoc_split_in()
961 dwc2_release_channel(hsotg, chan, qtd, in dwc2_xfercomp_isoc_split_in()
964 dwc2_release_channel(hsotg, chan, qtd, in dwc2_xfercomp_isoc_split_in()
976 struct dwc2_host_chan *chan, int chnum, in dwc2_hc_xfercomp_intr() argument
984 if (dbg_hc(chan)) in dwc2_hc_xfercomp_intr()
995 dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum, halt_status); in dwc2_hc_xfercomp_intr()
1003 if (chan->qh->do_split) { in dwc2_hc_xfercomp_intr()
1004 if (chan->ep_type == USB_ENDPOINT_XFER_ISOC && chan->ep_is_in && in dwc2_hc_xfercomp_intr()
1007 dwc2_xfercomp_isoc_split_in(hsotg, chan, chnum, in dwc2_hc_xfercomp_intr()
1029 urb_xfer_done = dwc2_update_urb_state(hsotg, chan, in dwc2_hc_xfercomp_intr()
1036 dwc2_hcd_save_data_toggle(hsotg, chan, chnum, in dwc2_hc_xfercomp_intr()
1050 dwc2_complete_non_periodic_xfer(hsotg, chan, chnum, qtd, in dwc2_hc_xfercomp_intr()
1055 urb_xfer_done = dwc2_update_urb_state(hsotg, chan, chnum, urb, in dwc2_hc_xfercomp_intr()
1064 dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd); in dwc2_hc_xfercomp_intr()
1065 dwc2_complete_non_periodic_xfer(hsotg, chan, chnum, qtd, in dwc2_hc_xfercomp_intr()
1070 urb_xfer_done = dwc2_update_urb_state(hsotg, chan, chnum, urb, in dwc2_hc_xfercomp_intr()
1084 dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd); in dwc2_hc_xfercomp_intr()
1085 dwc2_complete_periodic_xfer(hsotg, chan, chnum, qtd, in dwc2_hc_xfercomp_intr()
1092 halt_status = dwc2_update_isoc_urb_state(hsotg, chan, in dwc2_hc_xfercomp_intr()
1094 dwc2_complete_periodic_xfer(hsotg, chan, chnum, qtd, in dwc2_hc_xfercomp_intr()
1108 struct dwc2_host_chan *chan, int chnum, in dwc2_hc_stall_intr() argument
1118 dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum, in dwc2_hc_stall_intr()
1141 chan->qh->data_toggle = 0; in dwc2_hc_stall_intr()
1145 dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_STALL); in dwc2_hc_stall_intr()
1158 struct dwc2_host_chan *chan, int chnum, in dwc2_update_urb_state_abn() argument
1163 u32 xfer_length = dwc2_get_actual_xfer_length(hsotg, chan, chnum, in dwc2_update_urb_state_abn()
1173 if (chan->align_buf && xfer_length && chan->ep_is_in) { in dwc2_update_urb_state_abn()
1175 dma_unmap_single(hsotg->dev, chan->qh->dw_align_buf_dma, in dwc2_update_urb_state_abn()
1176 chan->qh->dw_align_buf_size, in dwc2_update_urb_state_abn()
1177 chan->ep_is_in ? in dwc2_update_urb_state_abn()
1179 if (chan->ep_is_in) in dwc2_update_urb_state_abn()
1181 chan->qh->dw_align_buf, in dwc2_update_urb_state_abn()
1189 __func__, (chan->ep_is_in ? "IN" : "OUT"), chnum); in dwc2_update_urb_state_abn()
1191 chan->start_pkt_count); in dwc2_update_urb_state_abn()
1194 dev_vdbg(hsotg->dev, " chan->max_packet %d\n", chan->max_packet); in dwc2_update_urb_state_abn()
1208 struct dwc2_host_chan *chan, int chnum, in dwc2_hc_nak_intr() argument
1221 if (dbg_hc(chan)) in dwc2_hc_nak_intr()
1229 if (chan->do_split) { in dwc2_hc_nak_intr()
1230 if (chan->complete_split) in dwc2_hc_nak_intr()
1233 dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_NAK); in dwc2_hc_nak_intr()
1240 if (hsotg->core_params->dma_enable > 0 && chan->ep_is_in) { in dwc2_hc_nak_intr()
1258 if (!chan->qh->ping_state) { in dwc2_hc_nak_intr()
1259 dwc2_update_urb_state_abn(hsotg, chan, chnum, qtd->urb, in dwc2_hc_nak_intr()
1261 dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd); in dwc2_hc_nak_intr()
1263 if (chan->speed == USB_SPEED_HIGH) in dwc2_hc_nak_intr()
1264 chan->qh->ping_state = 1; in dwc2_hc_nak_intr()
1272 dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_NAK); in dwc2_hc_nak_intr()
1276 dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_NAK); in dwc2_hc_nak_intr()
1294 struct dwc2_host_chan *chan, int chnum, in dwc2_hc_ack_intr() argument
1299 if (dbg_hc(chan)) in dwc2_hc_ack_intr()
1303 if (chan->do_split) { in dwc2_hc_ack_intr()
1305 if (!chan->ep_is_in && in dwc2_hc_ack_intr()
1306 chan->data_pid_start != DWC2_HC_PID_SETUP) in dwc2_hc_ack_intr()
1307 qtd->ssplit_out_xfer_count = chan->xfer_len; in dwc2_hc_ack_intr()
1309 if (chan->ep_type != USB_ENDPOINT_XFER_ISOC || chan->ep_is_in) { in dwc2_hc_ack_intr()
1311 dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_ACK); in dwc2_hc_ack_intr()
1314 switch (chan->xact_pos) { in dwc2_hc_ack_intr()
1345 if (chan->qh->ping_state) { in dwc2_hc_ack_intr()
1346 chan->qh->ping_state = 0; in dwc2_hc_ack_intr()
1354 dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_ACK); in dwc2_hc_ack_intr()
1373 struct dwc2_host_chan *chan, int chnum, in dwc2_hc_nyet_intr() argument
1376 if (dbg_hc(chan)) in dwc2_hc_nyet_intr()
1384 if (chan->do_split && chan->complete_split) { in dwc2_hc_nyet_intr()
1385 if (chan->ep_is_in && chan->ep_type == USB_ENDPOINT_XFER_ISOC && in dwc2_hc_nyet_intr()
1393 dwc2_release_channel(hsotg, chan, qtd, in dwc2_hc_nyet_intr()
1396 dwc2_release_channel(hsotg, chan, qtd, in dwc2_hc_nyet_intr()
1402 if (chan->ep_type == USB_ENDPOINT_XFER_INT || in dwc2_hc_nyet_intr()
1403 chan->ep_type == USB_ENDPOINT_XFER_ISOC) { in dwc2_hc_nyet_intr()
1407 dwc2_full_frame_num(chan->qh->sched_frame)) { in dwc2_hc_nyet_intr()
1423 dwc2_halt_channel(hsotg, chan, qtd, in dwc2_hc_nyet_intr()
1430 dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_NYET); in dwc2_hc_nyet_intr()
1434 chan->qh->ping_state = 1; in dwc2_hc_nyet_intr()
1437 dwc2_update_urb_state_abn(hsotg, chan, chnum, qtd->urb, qtd, in dwc2_hc_nyet_intr()
1439 dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd); in dwc2_hc_nyet_intr()
1445 dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_NYET); in dwc2_hc_nyet_intr()
1456 struct dwc2_host_chan *chan, int chnum, in dwc2_hc_babble_intr() argument
1462 dwc2_hc_handle_tt_clear(hsotg, chan, qtd); in dwc2_hc_babble_intr()
1465 dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum, in dwc2_hc_babble_intr()
1470 if (chan->ep_type != USB_ENDPOINT_XFER_ISOC) { in dwc2_hc_babble_intr()
1472 dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_BABBLE_ERR); in dwc2_hc_babble_intr()
1476 halt_status = dwc2_update_isoc_urb_state(hsotg, chan, chnum, in dwc2_hc_babble_intr()
1478 dwc2_halt_channel(hsotg, chan, qtd, halt_status); in dwc2_hc_babble_intr()
1490 struct dwc2_host_chan *chan, int chnum, in dwc2_hc_ahberr_intr() argument
1506 dwc2_hc_handle_tt_clear(hsotg, chan, qtd); in dwc2_hc_ahberr_intr()
1542 switch (chan->speed) { in dwc2_hc_ahberr_intr()
1570 dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum, in dwc2_hc_ahberr_intr()
1582 dwc2_hc_halt(hsotg, chan, DWC2_HC_XFER_AHB_ERR); in dwc2_hc_ahberr_intr()
1593 struct dwc2_host_chan *chan, int chnum, in dwc2_hc_xacterr_intr() argument
1599 dwc2_hc_handle_tt_clear(hsotg, chan, qtd); in dwc2_hc_xacterr_intr()
1602 dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum, in dwc2_hc_xacterr_intr()
1611 if (!chan->qh->ping_state) { in dwc2_hc_xacterr_intr()
1613 dwc2_update_urb_state_abn(hsotg, chan, chnum, qtd->urb, in dwc2_hc_xacterr_intr()
1615 dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd); in dwc2_hc_xacterr_intr()
1616 if (!chan->ep_is_in && chan->speed == USB_SPEED_HIGH) in dwc2_hc_xacterr_intr()
1617 chan->qh->ping_state = 1; in dwc2_hc_xacterr_intr()
1624 dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_XACT_ERR); in dwc2_hc_xacterr_intr()
1628 if (chan->do_split && chan->complete_split) in dwc2_hc_xacterr_intr()
1630 dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_XACT_ERR); in dwc2_hc_xacterr_intr()
1636 halt_status = dwc2_update_isoc_urb_state(hsotg, chan, in dwc2_hc_xacterr_intr()
1638 dwc2_halt_channel(hsotg, chan, qtd, halt_status); in dwc2_hc_xacterr_intr()
1652 struct dwc2_host_chan *chan, int chnum, in dwc2_hc_frmovrun_intr() argument
1657 if (dbg_hc(chan)) in dwc2_hc_frmovrun_intr()
1661 dwc2_hc_handle_tt_clear(hsotg, chan, qtd); in dwc2_hc_frmovrun_intr()
1668 dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_FRAME_OVERRUN); in dwc2_hc_frmovrun_intr()
1671 halt_status = dwc2_update_isoc_urb_state(hsotg, chan, chnum, in dwc2_hc_frmovrun_intr()
1673 dwc2_halt_channel(hsotg, chan, qtd, halt_status); in dwc2_hc_frmovrun_intr()
1685 struct dwc2_host_chan *chan, int chnum, in dwc2_hc_datatglerr_intr() argument
1691 if (chan->ep_is_in) in dwc2_hc_datatglerr_intr()
1698 dwc2_hc_handle_tt_clear(hsotg, chan, qtd); in dwc2_hc_datatglerr_intr()
1710 struct dwc2_host_chan *chan, int chnum, in dwc2_halt_status_ok() argument
1719 if (chan->halt_status == DWC2_HC_XFER_NO_HALT_STATUS) { in dwc2_halt_status_ok()
1736 chan->hcint, hcintmsk, hcsplt); in dwc2_halt_status_ok()
1756 chan->halt_pending = 0; in dwc2_halt_status_ok()
1757 dwc2_halt_channel(hsotg, chan, qtd, chan->halt_status); in dwc2_halt_status_ok()
1770 struct dwc2_host_chan *chan, int chnum, in dwc2_hc_chhltd_intr_dma() argument
1776 if (dbg_hc(chan)) in dwc2_hc_chhltd_intr_dma()
1786 if (chan->speed == USB_SPEED_HIGH && !chan->ep_is_in && in dwc2_hc_chhltd_intr_dma()
1787 (chan->ep_type == USB_ENDPOINT_XFER_CONTROL || in dwc2_hc_chhltd_intr_dma()
1788 chan->ep_type == USB_ENDPOINT_XFER_BULK)) { in dwc2_hc_chhltd_intr_dma()
1793 if (chan->halt_status == DWC2_HC_XFER_URB_DEQUEUE || in dwc2_hc_chhltd_intr_dma()
1794 (chan->halt_status == DWC2_HC_XFER_AHB_ERR && in dwc2_hc_chhltd_intr_dma()
1797 dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum, in dwc2_hc_chhltd_intr_dma()
1798 chan->halt_status); in dwc2_hc_chhltd_intr_dma()
1806 dwc2_release_channel(hsotg, chan, qtd, in dwc2_hc_chhltd_intr_dma()
1807 chan->halt_status); in dwc2_hc_chhltd_intr_dma()
1813 if (chan->hcint & HCINTMSK_XFERCOMPL) { in dwc2_hc_chhltd_intr_dma()
1821 if (chan->ep_type == USB_ENDPOINT_XFER_ISOC && !chan->ep_is_in) in dwc2_hc_chhltd_intr_dma()
1822 dwc2_hc_ack_intr(hsotg, chan, chnum, qtd); in dwc2_hc_chhltd_intr_dma()
1823 dwc2_hc_xfercomp_intr(hsotg, chan, chnum, qtd); in dwc2_hc_chhltd_intr_dma()
1824 } else if (chan->hcint & HCINTMSK_STALL) { in dwc2_hc_chhltd_intr_dma()
1825 dwc2_hc_stall_intr(hsotg, chan, chnum, qtd); in dwc2_hc_chhltd_intr_dma()
1826 } else if ((chan->hcint & HCINTMSK_XACTERR) && in dwc2_hc_chhltd_intr_dma()
1829 if (chan->hcint & in dwc2_hc_chhltd_intr_dma()
1845 dwc2_hc_xacterr_intr(hsotg, chan, chnum, qtd); in dwc2_hc_chhltd_intr_dma()
1846 } else if ((chan->hcint & HCINTMSK_XCS_XACT) && in dwc2_hc_chhltd_intr_dma()
1848 dwc2_hc_xacterr_intr(hsotg, chan, chnum, qtd); in dwc2_hc_chhltd_intr_dma()
1849 } else if ((chan->hcint & HCINTMSK_AHBERR) && in dwc2_hc_chhltd_intr_dma()
1851 dwc2_hc_ahberr_intr(hsotg, chan, chnum, qtd); in dwc2_hc_chhltd_intr_dma()
1852 } else if (chan->hcint & HCINTMSK_BBLERR) { in dwc2_hc_chhltd_intr_dma()
1853 dwc2_hc_babble_intr(hsotg, chan, chnum, qtd); in dwc2_hc_chhltd_intr_dma()
1854 } else if (chan->hcint & HCINTMSK_FRMOVRUN) { in dwc2_hc_chhltd_intr_dma()
1855 dwc2_hc_frmovrun_intr(hsotg, chan, chnum, qtd); in dwc2_hc_chhltd_intr_dma()
1857 if (chan->hcint & HCINTMSK_NYET) { in dwc2_hc_chhltd_intr_dma()
1864 dwc2_hc_nyet_intr(hsotg, chan, chnum, qtd); in dwc2_hc_chhltd_intr_dma()
1865 } else if ((chan->hcint & HCINTMSK_NAK) && in dwc2_hc_chhltd_intr_dma()
1874 dwc2_hc_nak_intr(hsotg, chan, chnum, qtd); in dwc2_hc_chhltd_intr_dma()
1875 } else if ((chan->hcint & HCINTMSK_ACK) && in dwc2_hc_chhltd_intr_dma()
1884 dwc2_hc_ack_intr(hsotg, chan, chnum, qtd); in dwc2_hc_chhltd_intr_dma()
1886 if (chan->ep_type == USB_ENDPOINT_XFER_INT || in dwc2_hc_chhltd_intr_dma()
1887 chan->ep_type == USB_ENDPOINT_XFER_ISOC) { in dwc2_hc_chhltd_intr_dma()
1897 dwc2_halt_channel(hsotg, chan, qtd, in dwc2_hc_chhltd_intr_dma()
1905 chan->hcint, in dwc2_hc_chhltd_intr_dma()
1913 chan->hcint); in dwc2_hc_chhltd_intr_dma()
1917 dwc2_update_urb_state_abn(hsotg, chan, chnum, qtd->urb, in dwc2_hc_chhltd_intr_dma()
1919 dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd); in dwc2_hc_chhltd_intr_dma()
1920 dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_XACT_ERR); in dwc2_hc_chhltd_intr_dma()
1936 struct dwc2_host_chan *chan, int chnum, in dwc2_hc_chhltd_intr() argument
1939 if (dbg_hc(chan)) in dwc2_hc_chhltd_intr()
1944 dwc2_hc_chhltd_intr_dma(hsotg, chan, chnum, qtd); in dwc2_hc_chhltd_intr()
1946 if (!dwc2_halt_status_ok(hsotg, chan, chnum, qtd)) in dwc2_hc_chhltd_intr()
1948 dwc2_release_channel(hsotg, chan, qtd, chan->halt_status); in dwc2_hc_chhltd_intr()
1974 struct dwc2_host_chan *chan; in dwc2_hc_n_intr() local
1977 chan = hsotg->hc_ptr_array[chnum]; in dwc2_hc_n_intr()
1981 if (!chan) { in dwc2_hc_n_intr()
1987 if (dbg_hc(chan)) { in dwc2_hc_n_intr()
1996 chan->hcint = hcint; in dwc2_hc_n_intr()
2004 if (chan->halt_status == DWC2_HC_XFER_URB_DEQUEUE) { in dwc2_hc_n_intr()
2011 dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum, in dwc2_hc_n_intr()
2012 chan->halt_status); in dwc2_hc_n_intr()
2014 dwc2_release_channel(hsotg, chan, NULL, in dwc2_hc_n_intr()
2015 chan->halt_status); in dwc2_hc_n_intr()
2019 if (list_empty(&chan->qh->qtd_list)) { in dwc2_hc_n_intr()
2028 chan->hcint, hcintmsk, hcint); in dwc2_hc_n_intr()
2029 chan->halt_status = DWC2_HC_XFER_NO_HALT_STATUS; in dwc2_hc_n_intr()
2031 chan->hcint = 0; in dwc2_hc_n_intr()
2035 qtd = list_first_entry(&chan->qh->qtd_list, struct dwc2_qtd, in dwc2_hc_n_intr()
2044 dwc2_hc_xfercomp_intr(hsotg, chan, chnum, qtd); in dwc2_hc_n_intr()
2054 dwc2_hc_chhltd_intr(hsotg, chan, chnum, qtd); in dwc2_hc_n_intr()
2055 if (!dwc2_check_qtd_still_ok(qtd, chan->qh)) in dwc2_hc_n_intr()
2059 dwc2_hc_ahberr_intr(hsotg, chan, chnum, qtd); in dwc2_hc_n_intr()
2060 if (!dwc2_check_qtd_still_ok(qtd, chan->qh)) in dwc2_hc_n_intr()
2064 dwc2_hc_stall_intr(hsotg, chan, chnum, qtd); in dwc2_hc_n_intr()
2065 if (!dwc2_check_qtd_still_ok(qtd, chan->qh)) in dwc2_hc_n_intr()
2069 dwc2_hc_nak_intr(hsotg, chan, chnum, qtd); in dwc2_hc_n_intr()
2070 if (!dwc2_check_qtd_still_ok(qtd, chan->qh)) in dwc2_hc_n_intr()
2074 dwc2_hc_ack_intr(hsotg, chan, chnum, qtd); in dwc2_hc_n_intr()
2075 if (!dwc2_check_qtd_still_ok(qtd, chan->qh)) in dwc2_hc_n_intr()
2079 dwc2_hc_nyet_intr(hsotg, chan, chnum, qtd); in dwc2_hc_n_intr()
2080 if (!dwc2_check_qtd_still_ok(qtd, chan->qh)) in dwc2_hc_n_intr()
2084 dwc2_hc_xacterr_intr(hsotg, chan, chnum, qtd); in dwc2_hc_n_intr()
2085 if (!dwc2_check_qtd_still_ok(qtd, chan->qh)) in dwc2_hc_n_intr()
2089 dwc2_hc_babble_intr(hsotg, chan, chnum, qtd); in dwc2_hc_n_intr()
2090 if (!dwc2_check_qtd_still_ok(qtd, chan->qh)) in dwc2_hc_n_intr()
2094 dwc2_hc_frmovrun_intr(hsotg, chan, chnum, qtd); in dwc2_hc_n_intr()
2095 if (!dwc2_check_qtd_still_ok(qtd, chan->qh)) in dwc2_hc_n_intr()
2099 dwc2_hc_datatglerr_intr(hsotg, chan, chnum, qtd); in dwc2_hc_n_intr()
2100 if (!dwc2_check_qtd_still_ok(qtd, chan->qh)) in dwc2_hc_n_intr()
2105 chan->hcint = 0; in dwc2_hc_n_intr()