Lines Matching refs:qh

104     return &periodic->qh->qh_next;  in periodic_next_shadow()
137 hw_p = &here.qh->hw_next; in periodic_unlink()
150 *hw_p = here.qh->hw_next; in periodic_unlink()
183 if (q->qh->hw_info2 & CPUToLE32 (1 << uframe)) in periodic_usecs()
184 usecs += q->qh->usecs; in periodic_usecs()
186 if (q->qh->hw_info2 & CPUToLE32 (1 << (8 + uframe))) in periodic_usecs()
187 usecs += q->qh->c_usecs; in periodic_usecs()
188 q = &q->qh->qh_next; in periodic_usecs()
411 const struct ehci_qh *qh, in check_intr_schedule() argument
417 if (!check_period (ehci, frame, uframe, qh->period, qh->usecs)) in check_intr_schedule()
420 if (!qh->c_usecs) { in check_intr_schedule()
429 if (!check_period (ehci, frame, uframe + qh->gap_uf + 1, in check_intr_schedule()
430 qh->period, qh->c_usecs)) in check_intr_schedule()
432 if (!check_period (ehci, frame, uframe + qh->gap_uf, in check_intr_schedule()
433 qh->period, qh->c_usecs)) in check_intr_schedule()
436 *c_maskp = CPUToLE32 (0x03 << (8 + uframe + qh->gap_uf)); in check_intr_schedule()
444 static int qh_schedule (struct ehci_hcd *ehci, struct ehci_qh *qh) in qh_schedule() argument
451 qh->hw_next = EHCI_LIST_END; in qh_schedule()
452 frame1 = qh->start; in qh_schedule()
455 if (frame1 < qh->period) { in qh_schedule()
456 uframe1 = ffs (LE32ToCPU(qh->hw_info2) & 0x00ff); in qh_schedule()
458 qh, &c_mask1); in qh_schedule()
467 frame1 = qh->period - 1; in qh_schedule()
471 frame1, uframe1, qh, in qh_schedule()
479 qh->start = frame1; in qh_schedule()
482 qh->hw_info2 &= ~0xffff; in qh_schedule()
483 qh->hw_info2 |= CPUToLE32 (1 << uframe1) | c_mask1; in qh_schedule()
485 dbg ("reused previous qh %p schedule", qh); in qh_schedule()
488 qh->qh_state = QH_STATE_LINKED; in qh_schedule()
490 qh, qh->usecs, qh->c_usecs, in qh_schedule()
491 qh->period, frame1, uframe1, qh->gap_uf); in qh_schedule()
499 ehci->pshadow [frame1].qh = qh_get (qh); in qh_schedule()
501 QH_NEXT (qh->qh_dma); in qh_schedule()
504 frame1 += qh->period; in qh_schedule()
509 (qh->usecs + qh->c_usecs) / qh->period; in qh_schedule()
602 struct ehci_qh *qh, in intr_complete() argument
608 if (likely ((qh->hw_token & CPUToLE32 (QTD_STS_ACTIVE)) in intr_complete()
613 if (unlikely (list_empty (&qh->qtd_list))) { in intr_complete()
614 dbg ("[intr qh] %p no TDs?", qh); in intr_complete()
619 count = qh_completions (ehci, qh, regs); in intr_complete()
622 if (unlikely (list_empty (&qh->qtd_list))) in intr_complete()
623 intr_deschedule (ehci, qh, 0); in intr_complete()
1159 last = (q.qh->hw_next == EHCI_LIST_END); in scan_periodic()
1161 temp = q.qh->qh_next; in scan_periodic()
1163 type = Q_NEXT_TYPE (q.qh->hw_next); in scan_periodic()
1166 qh_get (q.qh), regs); in scan_periodic()
1168 qh_put (ehci, q.qh); in scan_periodic()