Lines Matching defs:qh
110 if (!chan->qh)
113 if (chan->qh->dev_speed == USB_SPEED_HIGH)
121 chan->qh->tt_buffer_dirty = 1;
122 chan->qh->tt_buffer_dirty = 0;
135 struct dwc2_qh *qh;
152 qh = list_entry(qh_entry, struct dwc2_qh, qh_list_entry);
154 if (dwc2_frame_num_le(qh->sched_frame, hsotg->frame_number))
156 * Move QH to the ready list to be executed next
159 list_move(&qh->qh_list_entry,
448 } else if (chan->qh->do_split) {
498 usb_syncmem(urb->usbdma, 0, chan->qh->dw_align_buf_size,
503 chan->qh->dw_align_buf, xfer_length);
504 usb_syncmem(urb->usbdma, 0, chan->qh->dw_align_buf_size,
538 * saved in the QH for non-control transfers and it's saved in the QTD for
550 chan->qh->data_toggle = DWC2_HC_PID_DATA0;
552 chan->qh->data_toggle = DWC2_HC_PID_DATA1;
595 usb_dma_t *ud = &chan->qh->dw_align_buf_usbdma;
597 usb_syncmem(ud, 0, chan->qh->dw_align_buf_size,
603 chan->qh->dw_align_buf,
605 usb_syncmem(ud, 0, chan->qh->dw_align_buf_size,
639 usb_dma_t *ud = &chan->qh->dw_align_buf_usbdma;
641 usb_syncmem(ud, 0, chan->qh->dw_align_buf_size,
647 chan->qh->dw_align_buf,
649 usb_syncmem(ud, 0, chan->qh->dw_align_buf_size,
655 if (chan->qh->do_split &&
684 * Frees the first QTD in the QH's list if free_qtd is 1. For non-periodic
685 * QHs, removes the QH from the active non-periodic schedule. If any QTDs are
686 * still linked to the QH, the QH is added to the end of the inactive
687 * non-periodic schedule. For periodic QHs, removes the QH from the periodic
688 * schedule if no more QTDs are linked to the QH.
690 static void dwc2_deactivate_qh(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh,
696 if (dbg_qh(qh))
698 hsotg, qh, free_qtd);
700 if (list_empty(&qh->qtd_list)) {
705 qtd = list_first_entry(&qh->qtd_list, struct dwc2_qtd, qtd_list_entry);
714 dwc2_hcd_qtd_unlink_and_free(hsotg, qtd, qh);
719 if (qh->channel)
720 qh->channel->align_buf = 0;
721 qh->channel = NULL;
722 dwc2_hcd_qh_deactivate(hsotg, qh, continue_split);
770 * The QTD has already been removed and the QH has been
785 dwc2_deactivate_qh(hsotg, chan->qh, free_qtd);
810 * descheduled (i.e. when the QH is removed from the
872 * Move the QH from the periodic queued schedule to
877 list_move(&chan->qh->qh_list_entry,
913 chan->qh->ping_state = 1;
987 usb_syncmem(qtd->urb->usbdma, chan->qh->dw_align_buf_dma,
988 chan->qh->dw_align_buf_size, BUS_DMASYNC_POSTREAD);
990 qtd->isoc_split_offset, chan->qh->dw_align_buf, len);
991 usb_syncmem(qtd->urb->usbdma, chan->qh->dw_align_buf_dma,
992 chan->qh->dw_align_buf_size, BUS_DMASYNC_PREREAD);
1048 if (chan->qh->do_split) {
1185 chan->qh->data_toggle = 0;
1219 usb_dma_t *ud = &chan->qh->dw_align_buf_usbdma;
1221 usb_syncmem(ud, 0, chan->qh->dw_align_buf_size,
1226 chan->qh->dw_align_buf,
1228 usb_syncmem(ud, 0, chan->qh->dw_align_buf_size,
1289 * this qh until the beginning of the next frame
1294 chan->qh->nak_frame = dwc2_hcd_get_frame_number(hsotg);
1302 qtd->qh->want_wait = qtd->num_naks >= dwc2_naks_before_delay;
1333 qtd->qh->want_wait = qtd->num_naks >= dwc2_out_naks_before_delay;
1335 if (!chan->qh->ping_state) {
1341 chan->qh->ping_state = 1;
1422 if (chan->qh->ping_state) {
1423 chan->qh->ping_state = 0;
1484 dwc2_full_frame_num(chan->qh->sched_frame)) {
1511 chan->qh->ping_state = 1;
1687 if (!chan->qh->ping_state) {
1693 chan->qh->ping_state = 1;
2034 static bool dwc2_check_qtd_still_ok(struct dwc2_qtd *qtd, struct dwc2_qh *qh)
2038 if (qh == NULL)
2041 cur_head = list_first_entry(&qh->qtd_list, struct dwc2_qtd,
2095 if (list_empty(&chan->qh->qtd_list)) {
2111 qtd = list_first_entry(&chan->qh->qtd_list, struct dwc2_qtd,
2131 if (!dwc2_check_qtd_still_ok(qtd, chan->qh))
2136 if (!dwc2_check_qtd_still_ok(qtd, chan->qh))
2141 if (!dwc2_check_qtd_still_ok(qtd, chan->qh))
2146 if (!dwc2_check_qtd_still_ok(qtd, chan->qh))
2151 if (!dwc2_check_qtd_still_ok(qtd, chan->qh))
2156 if (!dwc2_check_qtd_still_ok(qtd, chan->qh))
2161 qh))
2166 if (!dwc2_check_qtd_still_ok(qtd, chan->qh))
2171 if (!dwc2_check_qtd_still_ok(qtd, chan->qh))
2176 if (!dwc2_check_qtd_still_ok(qtd, chan->qh))