Lines Matching refs:pQh
115 union ehci_qh_shadow *pQh = &pEhci->pshadow [u32Frame]; in ms_periodic_usecs() local
118 while (pQh->ptr) in ms_periodic_usecs()
122 if (pQh->qh->hw_ep_state2 & (1 << u32uFrame)) in ms_periodic_usecs()
123 u32uSecs += pQh->qh->u8Usecs; in ms_periodic_usecs()
124 if (pQh->qh->hw_ep_state2 & (1 << (8 + u32uFrame))) in ms_periodic_usecs()
125 u32uSecs += pQh->qh->c_usecs; in ms_periodic_usecs()
126 phw_p = &pQh->qh->hw_next_qh; // patch from Linux, move hardware pointer too in ms_periodic_usecs()
127 pQh = &pQh->qh->qh_next; in ms_periodic_usecs()
193 static int ms_qh_schedule (struct ehci_hcd *pEhci, struct ehci_qh *pQh);
397 const struct ehci_qh *pQh, in ms_check_intr_schedule() argument
405 if (pQh->c_usecs && u32uFrame >= 6) /* may be FSTN */ in ms_check_intr_schedule()
408 if (!ms_check_period (pEhci, u32Frame, u32uFrame, pQh->u16Period, pQh->u8Usecs)) in ms_check_intr_schedule()
410 if (!pQh->c_usecs) in ms_check_intr_schedule()
418 mask = 0x03 << (u32uFrame + pQh->u8Gap_uf); in ms_check_intr_schedule()
420 *c_maskp = (0x03 << (8 + u32uFrame + pQh->u8Gap_uf)); in ms_check_intr_schedule()
423 if (ms_tt_no_collision (pEhci, pQh->u16Period, pQh->dev, u32Frame, mask)) { in ms_check_intr_schedule()
424 if (!ms_check_period (pEhci, u32Frame, u32uFrame + pQh->u8Gap_uf + 1, in ms_check_intr_schedule()
425 pQh->u16Period, pQh->c_usecs)) in ms_check_intr_schedule()
427 if (!ms_check_period (pEhci, u32Frame, u32uFrame + pQh->u8Gap_uf, in ms_check_intr_schedule()
428 pQh->u16Period, pQh->c_usecs)) in ms_check_intr_schedule()
434 if (!ms_check_period (pEhci, u32Frame, u32uFrame + pQh->u8Gap_uf + 1, in ms_check_intr_schedule()
435 pQh->u16Period, pQh->c_usecs)) in ms_check_intr_schedule()
437 if (!ms_check_period (pEhci, u32Frame, u32uFrame + pQh->u8Gap_uf, in ms_check_intr_schedule()
438 pQh->u16Period, pQh->c_usecs)) in ms_check_intr_schedule()
441 *c_maskp = (0x03 << (8 + u32uFrame + pQh->u8Gap_uf)); in ms_check_intr_schedule()
509 static int ms_qh_schedule (struct ehci_hcd *pEhci, struct ehci_qh *pQh) in ms_qh_schedule() argument
516 pQh->hw_next_qh = EHCI_LIST_END; in ms_qh_schedule()
517 u32Frame1 = pQh->u16Start; in ms_qh_schedule()
519 if (u32Frame1 < pQh->u16Period) in ms_qh_schedule()
521 u32uFrame1 = ms_find_1st_set (pQh->hw_ep_state2 & 0x00ff); in ms_qh_schedule()
523 pQh, &u32_C_mask1); in ms_qh_schedule()
535 if (pQh->u16Period) { in ms_qh_schedule()
541 for (i = pQh->u16Period; iStatus && i > 0; --i) { in ms_qh_schedule()
543 u32Frame1 = ++pEhci->u32random_frm % pQh->u16Period; in ms_qh_schedule()
546 iStatus = ms_check_intr_schedule (pEhci, u32Frame1, u32uFrame1, pQh, &u32_C_mask1); in ms_qh_schedule()
558 iStatus = ms_check_intr_schedule (pEhci, 0, 0, pQh, &u32_C_mask1); in ms_qh_schedule()
565 pQh->u16Start = u32Frame1; in ms_qh_schedule()
567 pQh->hw_ep_state2 &= ~0xffff; // clear QH_CMASK and QH_SMASK in ms_qh_schedule()
568 pQh->hw_ep_state2 |= (pQh->u16Period ? (1 << u32uFrame1) : QH_SMASK) | u32_C_mask1; in ms_qh_schedule()
571 ms_debug_msg ("reused previous pQh %p schedule", pQh); in ms_qh_schedule()
577 …pQh->hw_ep_state2 & (QH_CMASK | QH_SMASK), pQh->u8Usecs, pQh->c_usecs, pQh->u16Period, (int)u32Fra… in ms_qh_schedule()
579 pQh->qh_status = QH_STS_LINKED; in ms_qh_schedule()
581 pQh, pQh->u8Usecs, pQh->c_usecs, pQh->u16Period, (int)u32Frame1, (int)u32uFrame1, pQh->u8Gap_uf); in ms_qh_schedule()
590 pEhci->pshadow [u32Frame1].qh = ms_qh_get (pQh); in ms_qh_schedule()
591 pEhci->pPeriodic [u32Frame1] = QH_NEXT (pQh->qh_dma_addr); in ms_qh_schedule()
594 u32Frame1 += pQh->u16Period; in ms_qh_schedule()
664 struct ehci_qh *pQh, in ms_intr_complete() argument
669 if ((pQh->hw_token & QTD_STS_ACT) != 0) in ms_intr_complete()
672 if (ms_is_empty_list (&pQh->qtd_list)) in ms_intr_complete()
674 ms_debug_msg ("[intr qh] %p no TDs?", pQh); in ms_intr_complete()
678 u32Count = ms_qh_completions (pEhci, pQh, pRegs); in ms_intr_complete()
679 if (ms_is_empty_list (&pQh->qtd_list)) in ms_intr_complete()
680 ms_intr_deschedule (pEhci, pQh); in ms_intr_complete()