Lines Matching refs:qtd
138 dbg_qtd (const char *label, struct fusbh200_hcd *fusbh200, struct fusbh200_qtd *qtd) in dbg_qtd() argument
140 fusbh200_dbg(fusbh200, "%s td %p n%08x %08x t%08x p0=%08x\n", label, qtd, in dbg_qtd()
141 hc32_to_cpup(fusbh200, &qtd->hw_next), in dbg_qtd()
142 hc32_to_cpup(fusbh200, &qtd->hw_alt_next), in dbg_qtd()
143 hc32_to_cpup(fusbh200, &qtd->hw_token), in dbg_qtd()
144 hc32_to_cpup(fusbh200, &qtd->hw_buf [0])); in dbg_qtd()
145 if (qtd->hw_buf [1]) in dbg_qtd()
147 hc32_to_cpup(fusbh200, &qtd->hw_buf[1]), in dbg_qtd()
148 hc32_to_cpup(fusbh200, &qtd->hw_buf[2]), in dbg_qtd()
149 hc32_to_cpup(fusbh200, &qtd->hw_buf[3]), in dbg_qtd()
150 hc32_to_cpup(fusbh200, &qtd->hw_buf[4])); in dbg_qtd()
560 struct fusbh200_qtd *qtd; in fill_periodic_buffer() local
565 list_for_each_entry (qtd, in fill_periodic_buffer()
571 qtd->hw_token) >> 8)) { in fill_periodic_buffer()
1837 static inline void fusbh200_qtd_init(struct fusbh200_hcd *fusbh200, struct fusbh200_qtd *qtd, in fusbh200_qtd_init() argument
1840 memset (qtd, 0, sizeof *qtd); in fusbh200_qtd_init()
1841 qtd->qtd_dma = dma; in fusbh200_qtd_init()
1842 qtd->hw_token = cpu_to_hc32(fusbh200, QTD_STS_HALT); in fusbh200_qtd_init()
1843 qtd->hw_next = FUSBH200_LIST_END(fusbh200); in fusbh200_qtd_init()
1844 qtd->hw_alt_next = FUSBH200_LIST_END(fusbh200); in fusbh200_qtd_init()
1845 INIT_LIST_HEAD (&qtd->qtd_list); in fusbh200_qtd_init()
1850 struct fusbh200_qtd *qtd; in fusbh200_qtd_alloc() local
1853 qtd = dma_pool_alloc (fusbh200->qtd_pool, flags, &dma); in fusbh200_qtd_alloc()
1854 if (qtd != NULL) { in fusbh200_qtd_alloc()
1855 fusbh200_qtd_init(fusbh200, qtd, dma); in fusbh200_qtd_alloc()
1857 return qtd; in fusbh200_qtd_alloc()
1860 static inline void fusbh200_qtd_free (struct fusbh200_hcd *fusbh200, struct fusbh200_qtd *qtd) in fusbh200_qtd_free() argument
1862 dma_pool_free (fusbh200->qtd_pool, qtd, qtd->qtd_dma); in fusbh200_qtd_free()
2038 qtd_fill(struct fusbh200_hcd *fusbh200, struct fusbh200_qtd *qtd, dma_addr_t buf, in qtd_fill() argument
2045 qtd->hw_buf[0] = cpu_to_hc32(fusbh200, (u32)addr); in qtd_fill()
2046 qtd->hw_buf_hi[0] = cpu_to_hc32(fusbh200, (u32)(addr >> 32)); in qtd_fill()
2057 qtd->hw_buf[i] = cpu_to_hc32(fusbh200, (u32)addr); in qtd_fill()
2058 qtd->hw_buf_hi[i] = cpu_to_hc32(fusbh200, in qtd_fill()
2071 qtd->hw_token = cpu_to_hc32(fusbh200, (count << 16) | token); in qtd_fill()
2072 qtd->length = count; in qtd_fill()
2080 qh_update (struct fusbh200_hcd *fusbh200, struct fusbh200_qh *qh, struct fusbh200_qtd *qtd) in qh_update() argument
2087 hw->hw_qtd_next = QTD_NEXT(fusbh200, qtd->qtd_dma); in qh_update()
2116 struct fusbh200_qtd *qtd; in qh_refresh() local
2119 qtd = qh->dummy; in qh_refresh()
2121 qtd = list_entry (qh->qtd_list.next, in qh_refresh()
2130 if (cpu_to_hc32(fusbh200, qtd->qtd_dma) == qh->hw->hw_current) { in qh_refresh()
2131 qh->hw->hw_qtd_next = qtd->hw_next; in qh_refresh()
2132 qtd = NULL; in qh_refresh()
2136 if (qtd) in qh_refresh()
2137 qh_update (fusbh200, qh, qtd); in qh_refresh()
2336 struct fusbh200_qtd *qtd; in qh_completions() local
2340 qtd = list_entry (entry, struct fusbh200_qtd, qtd_list); in qh_completions()
2341 urb = qtd->urb; in qh_completions()
2355 if (qtd == end) in qh_completions()
2360 token = hc32_to_cpu(fusbh200, qtd->hw_token); in qh_completions()
2374 qtd, in qh_completions()
2391 qtd->length - QTD_LENGTH(token), qtd->length, qh->xacterrs); in qh_completions()
2401 qtd->hw_token = cpu_to_hc32(fusbh200, in qh_completions()
2420 && !(qtd->hw_alt_next in qh_completions()
2446 && cpu_to_hc32(fusbh200, qtd->qtd_dma) in qh_completions()
2467 qtd->length, token); in qh_completions()
2469 && (qtd->hw_alt_next in qh_completions()
2496 if (stopped && qtd->qtd_list.prev != &qh->qtd_list) { in qh_completions()
2497 last = list_entry (qtd->qtd_list.prev, in qh_completions()
2499 last->hw_next = qtd->hw_next; in qh_completions()
2503 list_del (&qtd->qtd_list); in qh_completions()
2504 last = qtd; in qh_completions()
2586 struct fusbh200_qtd *qtd; in qtd_list_free() local
2588 qtd = list_entry (entry, struct fusbh200_qtd, qtd_list); in qtd_list_free()
2589 list_del (&qtd->qtd_list); in qtd_list_free()
2590 fusbh200_qtd_free (fusbh200, qtd); in qtd_list_free()
2604 struct fusbh200_qtd *qtd, *qtd_prev; in qh_urb_transaction() local
2615 qtd = fusbh200_qtd_alloc (fusbh200, flags); in qh_urb_transaction()
2616 if (unlikely (!qtd)) in qh_urb_transaction()
2618 list_add_tail (&qtd->qtd_list, head); in qh_urb_transaction()
2619 qtd->urb = urb; in qh_urb_transaction()
2629 qtd_fill(fusbh200, qtd, urb->setup_dma, in qh_urb_transaction()
2635 qtd_prev = qtd; in qh_urb_transaction()
2636 qtd = fusbh200_qtd_alloc (fusbh200, flags); in qh_urb_transaction()
2637 if (unlikely (!qtd)) in qh_urb_transaction()
2639 qtd->urb = urb; in qh_urb_transaction()
2640 qtd_prev->hw_next = QTD_NEXT(fusbh200, qtd->qtd_dma); in qh_urb_transaction()
2641 list_add_tail (&qtd->qtd_list, head); in qh_urb_transaction()
2680 this_qtd_len = qtd_fill(fusbh200, qtd, buf, this_sg_len, token, in qh_urb_transaction()
2692 qtd->hw_alt_next = fusbh200->async->hw->hw_alt_next; in qh_urb_transaction()
2706 qtd_prev = qtd; in qh_urb_transaction()
2707 qtd = fusbh200_qtd_alloc (fusbh200, flags); in qh_urb_transaction()
2708 if (unlikely (!qtd)) in qh_urb_transaction()
2710 qtd->urb = urb; in qh_urb_transaction()
2711 qtd_prev->hw_next = QTD_NEXT(fusbh200, qtd->qtd_dma); in qh_urb_transaction()
2712 list_add_tail (&qtd->qtd_list, head); in qh_urb_transaction()
2722 qtd->hw_alt_next = FUSBH200_LIST_END(fusbh200); in qh_urb_transaction()
2742 qtd_prev = qtd; in qh_urb_transaction()
2743 qtd = fusbh200_qtd_alloc (fusbh200, flags); in qh_urb_transaction()
2744 if (unlikely (!qtd)) in qh_urb_transaction()
2746 qtd->urb = urb; in qh_urb_transaction()
2747 qtd_prev->hw_next = QTD_NEXT(fusbh200, qtd->qtd_dma); in qh_urb_transaction()
2748 list_add_tail (&qtd->qtd_list, head); in qh_urb_transaction()
2751 qtd_fill(fusbh200, qtd, 0, 0, token, 0); in qh_urb_transaction()
2757 qtd->hw_token |= cpu_to_hc32(fusbh200, QTD_IOC); in qh_urb_transaction()
3040 struct fusbh200_qtd *qtd; in qh_append_tds() local
3043 qtd = NULL; in qh_append_tds()
3045 qtd = list_entry (qtd_list->next, struct fusbh200_qtd, in qh_append_tds()
3059 if (likely (qtd != NULL)) { in qh_append_tds()
3069 token = qtd->hw_token; in qh_append_tds()
3070 qtd->hw_token = HALT_BIT(fusbh200); in qh_append_tds()
3075 *dummy = *qtd; in qh_append_tds()
3078 list_del (&qtd->qtd_list); in qh_append_tds()
3082 fusbh200_qtd_init(fusbh200, qtd, qtd->qtd_dma); in qh_append_tds()
3083 qh->dummy = qtd; in qh_append_tds()
3086 dma = qtd->qtd_dma; in qh_append_tds()
3087 qtd = list_entry (qh->qtd_list.prev, in qh_append_tds()
3089 qtd->hw_next = QTD_NEXT(fusbh200, dma); in qh_append_tds()
3119 struct fusbh200_qtd *qtd; in submit_async() local
3120 qtd = list_entry(qtd_list->next, struct fusbh200_qtd, qtd_list); in submit_async()
3126 qtd, urb->ep->hcpriv); in submit_async()