Lines Matching refs:queue

43  * We turn on FSBR whenever a queue that wants it is advancing,
261 INIT_LIST_HEAD(&qh->queue);
296 if (!list_empty(&qh->queue))
309 * When a queue is stopped and a dequeued URB is given back, adjust
310 * the previous TD link (if the URB isn't first on the queue) or
332 /* If the URB isn't first on its queue, adjust the link pointer
335 if (qh->queue.next != &urbp->node) {
370 * Fix up the data toggles for URBs in a queue, when one of them
382 * queue (the short URB is the first). */
384 urbp = list_entry(qh->queue.next, struct urb_priv, node);
391 /* Fix up the toggle for the URBs in the queue. Normally this
393 * occurs, the queue usually gets emptied. */
394 urbp = list_prepare_entry(urbp, &qh->queue, node);
395 list_for_each_entry_continue(urbp, &qh->queue, node) {
416 pipe = list_entry(qh->queue.next, struct urb_priv, node)->urb->pipe;
483 WARN_ON(list_empty(&qh->queue));
488 struct urb_priv *urbp = list_entry(qh->queue.next,
496 /* Treat the queue as if it has just advanced */
892 /* Low-speed transfers get a different queue, and won't hog the bus.
894 * to do that is to put URBs on the low-speed queue while the device
1087 /* Figure out which power-of-two queue to use */
1134 * the queue at the status stage transaction, which is
1144 * fix up the toggles of the following URBs on the queue
1145 * before restarting the queue at the next URB. */
1239 /* Note that the queue has stopped and save
1293 if (list_empty(&qh->queue)) {
1298 lurb = list_entry(qh->queue.prev,
1359 if (list_empty(&qh->queue)) {
1457 list_add_tail(&urbp->node, &qh->queue);
1462 * queue isn't stopped. */
1463 if (qh->queue.next == &urbp->node && !qh->is_stopped) {
1532 /* When giving back the first URB in an Isochronous queue,
1535 urbp->node.prev == &qh->queue &&
1536 urbp->node.next != &qh->queue) {
1544 /* Take the URB off the QH's queue. If the queue is now empty,
1547 if (list_empty(&qh->queue) && qh->needs_fixup) {
1560 /* If the queue is now empty, we can unlink the QH and give up its
1562 if (list_empty(&qh->queue)) {
1570 * Scan the URBs in a QH's queue
1582 while (!list_empty(&qh->queue)) {
1583 urbp = list_entry(qh->queue.next, struct urb_priv, node);
1616 list_for_each_entry(urbp, &qh->queue, node) {
1634 * queue, the QH can now be re-activated. */
1635 if (!list_empty(&qh->queue)) {
1639 /* If the first URB on the queue wants FSBR but its time
1642 urbp = list_entry(qh->queue.next, struct urb_priv, node);
1653 /* The queue is empty. The QH can become idle if it is fully
1661 * Returns 0 if the queue is not Isochronous, is ACTIVE, and
1665 * not to advance when a TD completes successfully. The queue remains
1679 /* Treat an UNLINKING queue as though it hasn't advanced.
1683 * for an UNLINKING queue not to have any URBs at all, or
1692 urbp = list_entry(qh->queue.next, struct urb_priv, node);
1697 /* We're okay, the queue has advanced */
1705 /* The queue hasn't advanced; check for timeout */
1724 * completion. That way we'll know as soon as the queue
1773 list_entry(qh->queue.next, struct urb_priv, node));