Lines Matching defs:itd
28 * @periodic: host pointer to qh/itd/sitd
41 return &periodic->itd->itd_next;
432 type = Q_NEXT_TYPE(ehci, here.itd->hw_next);
433 here = here.itd->itd_next;
1186 /* figure out per-uframe itd fields that we'll need later
1235 struct ehci_itd *itd;
1262 itd = list_first_entry(&stream->free_list,
1264 if (itd->frame == ehci->now_frame)
1266 list_del(&itd->itd_list);
1267 itd_dma = itd->itd_dma;
1271 itd = dma_pool_alloc(ehci->itd_pool, mem_flags,
1274 if (!itd) {
1281 memset(itd, 0, sizeof(*itd));
1282 itd->itd_dma = itd_dma;
1283 itd->frame = NO_FRAME;
1284 list_add(&itd->itd_list, &sched->td_list);
1655 struct ehci_itd *itd)
1660 itd->hw_next = EHCI_LIST_END(ehci);
1661 itd->hw_bufp[0] = stream->buf0;
1662 itd->hw_bufp[1] = stream->buf1;
1663 itd->hw_bufp[2] = stream->buf2;
1666 itd->index[i] = -1;
1674 struct ehci_itd *itd,
1681 unsigned pg = itd->pg;
1686 itd->index[uframe] = index;
1688 itd->hw_transaction[uframe] = uf->transaction;
1689 itd->hw_transaction[uframe] |= cpu_to_hc32(ehci, pg << 12);
1690 itd->hw_bufp[pg] |= cpu_to_hc32(ehci, uf->bufp & ~(u32)0);
1691 itd->hw_bufp_hi[pg] |= cpu_to_hc32(ehci, (u32)(uf->bufp >> 32));
1697 itd->pg = ++pg;
1698 itd->hw_bufp[pg] |= cpu_to_hc32(ehci, bufp & ~(u32)0);
1699 itd->hw_bufp_hi[pg] |= cpu_to_hc32(ehci, (u32)(bufp >> 32));
1704 itd_link(struct ehci_hcd *ehci, unsigned frame, struct ehci_itd *itd)
1721 itd->itd_next = here;
1722 itd->hw_next = *hw_p;
1723 prev->itd = itd;
1724 itd->frame = frame;
1726 *hw_p = cpu_to_hc32(ehci, itd->itd_dma | Q_TYPE_ITD);
1740 struct ehci_itd *itd;
1756 for (packet = iso_sched->first_packet, itd = NULL;
1758 if (itd == NULL) {
1764 itd = list_entry(iso_sched->td_list.next,
1766 list_move_tail(&itd->itd_list, &stream->td_list);
1767 itd->stream = stream;
1768 itd->urb = urb;
1769 itd_init(ehci, stream, itd);
1775 itd_patch(ehci, itd, iso_sched, packet, uframe);
1784 itd_link(ehci, frame & (ehci->periodic_size - 1), itd);
1785 itd = NULL;
1810 static bool itd_complete(struct ehci_hcd *ehci, struct ehci_itd *itd)
1812 struct urb *urb = itd->urb;
1817 struct ehci_iso_stream *stream = itd->stream;
1822 if (likely(itd->index[uframe] == -1))
1824 urb_index = itd->index[uframe];
1827 t = hc32_to_cpup(ehci, &itd->hw_transaction[uframe]);
1828 itd->hw_transaction[uframe] = 0;
1862 * ASSERT: it's really the last itd for this urb
1863 * list_for_each_entry (itd, &stream->td_list, itd_list)
1864 * BUG_ON(itd->urb == urb);
1886 itd->urb = NULL;
1889 list_move_tail(&itd->itd_list, &stream->free_list);
2388 if (q.itd->hw_transaction[uf] &
2393 q_p = &q.itd->itd_next;
2394 hw_p = &q.itd->hw_next;
2396 q.itd->hw_next);
2408 *q_p = q.itd->itd_next;
2410 q.itd->hw_next != EHCI_LIST_END(ehci))
2411 *hw_p = q.itd->hw_next;
2414 type = Q_NEXT_TYPE(ehci, q.itd->hw_next);
2416 modified = itd_complete(ehci, q.itd);