• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/drivers/usb/host/

Lines Matching refs:qtd

26  * Control, bulk, and interrupt traffic all use "qh" lists.  They list "qtd"
43 /* fill a qtd, returning how much of the buffer we were able to queue up */
46 qtd_fill (struct ehci_qtd *qtd, dma_addr_t buf, size_t len,
53 qtd->hw_buf [0] = cpu_to_le32 ((u32)addr);
54 qtd->hw_buf_hi [0] = cpu_to_le32 ((u32)(addr >> 32));
62 /* per-qtd limit: from 16K to 20K (best alignment) */
65 qtd->hw_buf [i] = cpu_to_le32 ((u32)addr);
66 qtd->hw_buf_hi [i] = cpu_to_le32 ((u32)(addr >> 32));
78 qtd->hw_token = cpu_to_le32 ((count << 16) | token);
79 qtd->length = count;
87 qh_update (struct ehci_hcd *ehci, struct ehci_qh *qh, struct ehci_qtd *qtd)
92 qh->hw_qtd_next = QTD_NEXT (qtd->qtd_dma);
103 is_out = !(qtd->hw_token & cpu_to_le32(1 << 8));
111 /* HC must see latest qtd and qh data before we clear ACTIVE+HALT */
123 struct ehci_qtd *qtd;
126 qtd = qh->dummy;
128 qtd = list_entry (qh->qtd_list.next,
130 /* first qtd may already be partially processed */
131 if (cpu_to_le32 (qtd->qtd_dma) == qh->hw_current)
132 qtd = NULL;
135 if (qtd)
136 qh_update (ehci, qh, qtd);
189 "dev%d ep%d%s qtd token %08x --> status %d\n",
287 struct ehci_qtd *qtd;
291 qtd = list_entry (entry, struct ehci_qtd, qtd_list);
292 urb = qtd->urb;
297 if (qtd->qtd_list.prev != &qtdc_this->cache) {
299 last = list_entry (qtd->qtd_list.prev,
301 last->hw_next = qtd->hw_next;
303 list_del (&qtd->qtd_list);
308 ehci_qtd_free (ehci, qtd);
361 struct ehci_qtd *qtd;
365 qtd = list_entry (entry, struct ehci_qtd, qtd_list);
366 urb = qtd->urb;
379 if (qtd == end)
382 /* hardware copies qtd out of qh overlay */
384 token = le32_to_cpu (qtd->hw_token);
396 && !(qtd->hw_alt_next & EHCI_LIST_END)) {
412 /* ignore active urbs unless some previous qtd
428 && cpu_to_le32 (qtd->qtd_dma)
445 qtd_copy_status (ehci, urb, qtd->length, token);
450 if (stopped && qtd->qtd_list.prev != &qh->qtd_list) {
451 last = list_entry (qtd->qtd_list.prev,
453 last->hw_next = qtd->hw_next;
455 list_del (&qtd->qtd_list);
456 last = qtd;
471 * overlaying the dummy qtd (which reduces DMA chatter).
515 struct ehci_qtd *qtd;
517 qtd = list_entry (entry, struct ehci_qtd, qtd_list);
518 list_del (&qtd->qtd_list);
519 ehci_qtd_free (ehci, qtd);
533 struct ehci_qtd *qtd, *qtd_prev;
542 qtd = ehci_qtd_alloc (ehci, flags);
543 if (unlikely (!qtd))
545 list_add_tail (&qtd->qtd_list, head);
546 qtd->urb = urb;
556 qtd_fill (qtd, urb->setup_dma, sizeof (struct usb_ctrlrequest),
561 qtd_prev = qtd;
562 qtd = ehci_qtd_alloc (ehci, flags);
563 if (unlikely (!qtd))
565 qtd->urb = urb;
566 qtd_prev->hw_next = QTD_NEXT (qtd->qtd_dma);
567 list_add_tail (&qtd->qtd_list, head);
593 this_qtd_len = qtd_fill (qtd, buf, len, token, maxpacket);
597 qtd->hw_alt_next = ehci->async->hw_alt_next;
599 /* qh makes control packets use qtd toggle; maybe switch it */
606 qtd_prev = qtd;
607 qtd = ehci_qtd_alloc (ehci, flags);
608 if (unlikely (!qtd))
610 qtd->urb = urb;
611 qtd_prev->hw_next = QTD_NEXT (qtd->qtd_dma);
612 list_add_tail (&qtd->qtd_list, head);
620 qtd->hw_alt_next = EHCI_LIST_END;
639 qtd_prev = qtd;
640 qtd = ehci_qtd_alloc (ehci, flags);
641 if (unlikely (!qtd))
643 qtd->urb = urb;
644 qtd_prev->hw_next = QTD_NEXT (qtd->qtd_dma);
645 list_add_tail (&qtd->qtd_list, head);
648 qtd_fill (qtd, 0, 0, token, 0);
654 qtd->hw_token |= __constant_cpu_to_le32 (QTD_IOC);
672 * Each QH holds a qtd list; a QH is used for everything except iso.
769 info1 |= 1 << 14; /* toggle from qtd */
800 info1 |= 1 << 14; /* toggle from qtd */
868 /* qtd completions reported later by interrupt */
906 struct ehci_qtd *qtd;
909 qtd = NULL;
911 qtd = list_entry (qtd_list->next, struct ehci_qtd,
934 /* just one way to queue requests: swap with the dummy qtd.
937 if (likely (qtd != NULL)) {
947 token = qtd->hw_token;
948 qtd->hw_token = HALT_BIT;
953 *dummy = *qtd;
956 list_del (&qtd->qtd_list);
960 ehci_qtd_init (qtd, qtd->qtd_dma);
961 qh->dummy = qtd;
964 dma = qtd->qtd_dma;
965 qtd = list_entry (qh->qtd_list.prev,
967 qtd->hw_next = QTD_NEXT (dma);
989 struct ehci_qtd *qtd;
995 qtd = list_entry (qtd_list->next, struct ehci_qtd, qtd_list);
1000 "%s %s urb %p ep%d%s len %d, qtd %p [qh %p]\n",
1004 qtd, ep->hcpriv);
1032 /* Link the hw_next when there're cached qtd's in qtdc_hit */
1062 qtd = list_entry (entry, struct ehci_qtd, qtd_list);
1063 urb = qtd->urb;