Lines Matching defs:itd
144 dbg_itd(const char *label, struct fotg210_hcd *fotg210, struct fotg210_itd *itd)
146 fotg210_dbg(fotg210, "%s[%d] itd %p, next %08x, urb %p\n", label,
147 itd->frame, itd, hc32_to_cpu(fotg210, itd->hw_next),
148 itd->urb);
152 hc32_to_cpu(fotg210, itd->hw_transaction[0]),
153 hc32_to_cpu(fotg210, itd->hw_transaction[1]),
154 hc32_to_cpu(fotg210, itd->hw_transaction[2]),
155 hc32_to_cpu(fotg210, itd->hw_transaction[3]),
156 hc32_to_cpu(fotg210, itd->hw_transaction[4]),
157 hc32_to_cpu(fotg210, itd->hw_transaction[5]),
158 hc32_to_cpu(fotg210, itd->hw_transaction[6]),
159 hc32_to_cpu(fotg210, itd->hw_transaction[7]));
163 hc32_to_cpu(fotg210, itd->hw_bufp[0]),
164 hc32_to_cpu(fotg210, itd->hw_bufp[1]),
165 hc32_to_cpu(fotg210, itd->hw_bufp[2]),
166 hc32_to_cpu(fotg210, itd->hw_bufp[3]),
167 hc32_to_cpu(fotg210, itd->hw_bufp[4]),
168 hc32_to_cpu(fotg210, itd->hw_bufp[5]),
169 hc32_to_cpu(fotg210, itd->hw_bufp[6]));
172 itd->index[0], itd->index[1], itd->index[2],
173 itd->index[3], itd->index[4], itd->index[5],
174 itd->index[6], itd->index[7]);
602 " itd/%p", p.itd);
603 tag = Q_NEXT_TYPE(fotg210, p.itd->hw_next);
604 p = p.itd->itd_next;
1236 struct fotg210_itd *itd, *n;
1241 list_for_each_entry_safe(itd, n, &fotg210->cached_itd_list, itd_list) {
1242 list_del(&itd->itd_list);
1243 dma_pool_free(fotg210->itd_pool, itd, itd->itd_dma);
1244 if (itd == fotg210->last_itd_to_free)
1979 * ISO traffic uses "ISO TD" (itd) records, and (along with
3270 * @periodic: host pointer to qh/itd
3282 return &periodic->itd->itd_next;
3364 if (q->itd->hw_transaction[uframe])
3365 usecs += q->itd->stream->usecs;
3366 hw_p = &q->itd->hw_next;
3367 q = &q->itd->itd_next;
3413 type = Q_NEXT_TYPE(fotg210, here.itd->hw_next);
3414 here = here.itd->itd_next;
4032 /* figure out per-uframe itd fields that we'll need later
4073 struct fotg210_itd *itd;
4100 itd = list_first_entry(&stream->free_list,
4102 if (itd->frame == fotg210->now_frame)
4104 list_del(&itd->itd_list);
4105 itd_dma = itd->itd_dma;
4109 itd = dma_pool_zalloc(fotg210->itd_pool, mem_flags,
4112 if (!itd) {
4119 itd->itd_dma = itd_dma;
4120 list_add(&itd->itd_list, &sched->td_list);
4280 struct fotg210_iso_stream *stream, struct fotg210_itd *itd)
4285 itd->hw_next = FOTG210_LIST_END(fotg210);
4286 itd->hw_bufp[0] = stream->buf0;
4287 itd->hw_bufp[1] = stream->buf1;
4288 itd->hw_bufp[2] = stream->buf2;
4291 itd->index[i] = -1;
4297 struct fotg210_itd *itd, struct fotg210_iso_sched *iso_sched,
4301 unsigned pg = itd->pg;
4304 itd->index[uframe] = index;
4306 itd->hw_transaction[uframe] = uf->transaction;
4307 itd->hw_transaction[uframe] |= cpu_to_hc32(fotg210, pg << 12);
4308 itd->hw_bufp[pg] |= cpu_to_hc32(fotg210, uf->bufp & ~(u32)0);
4309 itd->hw_bufp_hi[pg] |= cpu_to_hc32(fotg210, (u32)(uf->bufp >> 32));
4315 itd->pg = ++pg;
4316 itd->hw_bufp[pg] |= cpu_to_hc32(fotg210, bufp & ~(u32)0);
4317 itd->hw_bufp_hi[pg] |= cpu_to_hc32(fotg210, (u32)(bufp >> 32));
4322 struct fotg210_itd *itd)
4339 itd->itd_next = here;
4340 itd->hw_next = *hw_p;
4341 prev->itd = itd;
4342 itd->frame = frame;
4344 *hw_p = cpu_to_hc32(fotg210, itd->itd_dma | Q_TYPE_ITD);
4354 struct fotg210_itd *itd;
4370 for (packet = 0, itd = NULL; packet < urb->number_of_packets;) {
4371 if (itd == NULL) {
4376 itd = list_entry(iso_sched->td_list.next,
4378 list_move_tail(&itd->itd_list, &stream->td_list);
4379 itd->stream = stream;
4380 itd->urb = urb;
4381 itd_init(fotg210, stream, itd);
4387 itd_patch(fotg210, itd, iso_sched, packet, uframe);
4397 itd);
4398 itd = NULL;
4424 static bool itd_complete(struct fotg210_hcd *fotg210, struct fotg210_itd *itd)
4426 struct urb *urb = itd->urb;
4431 struct fotg210_iso_stream *stream = itd->stream;
4437 if (likely(itd->index[uframe] == -1))
4439 urb_index = itd->index[uframe];
4442 t = hc32_to_cpup(fotg210, &itd->hw_transaction[uframe]);
4443 itd->hw_transaction[uframe] = 0;
4476 /* ASSERT: it's really the last itd for this urb
4477 * list_for_each_entry (itd, &stream->td_list, itd_list)
4478 * BUG_ON (itd->urb == urb);
4500 itd->urb = NULL;
4503 list_move_tail(&itd->itd_list, &stream->free_list);
4600 if (q.itd->hw_transaction[uf] &
4605 q_p = &q.itd->itd_next;
4606 hw_p = &q.itd->hw_next;
4608 q.itd->hw_next);
4619 *q_p = q.itd->itd_next;
4620 *hw_p = q.itd->hw_next;
4621 type = Q_NEXT_TYPE(fotg210, q.itd->hw_next);
4623 modified = itd_complete(fotg210, q.itd);
5349 /* itd... */
5702 pr_debug("%s: block sizes: qh %zd qtd %zd itd %zd\n",