/* It is common only one intr URB is scheduled on one qh, and given complete() is run in tasklet context, introduce a bit delay to avoid unlink qh too early.  */
static void start_unlink_intr_wait(struct ehci_hcd *ehci, struct ehci_qh *qh)
/* It is common only one intr URB is scheduled on one qh, and given complete() is run in tasklet context, introduce a bit delay to avoid unlink qh too early.  */
static void start_unlink_intr_wait(struct ehci_hcd *ehci, struct ehci_qh *qh)
{
    qh->unlink_cycle = ehci->intr_unlink_wait_cycle;
    list_add_tail(&qh->unlink_node, &ehci->intr_unlink_wait);
    if (ehci->rh_state < EHCI_RH_RUNNING)
        ehci_handle_start_intr_unlinks(ehci);
    else if (ehci->intr_unlink_wait.next == &qh->unlink_node) {
        ehci_enable_event(ehci, EHCI_HRTIMER_START_UNLINK_INTR, true);
        ++ehci->intr_unlink_wait_cycle;
    }
}