• Home
  • Raw
  • Download

Lines Matching refs:td

109 	struct uhci_td *td;  in uhci_alloc_td()  local
111 td = dma_pool_alloc(uhci->td_pool, GFP_ATOMIC, &dma_handle); in uhci_alloc_td()
112 if (!td) in uhci_alloc_td()
115 td->dma_handle = dma_handle; in uhci_alloc_td()
116 td->frame = -1; in uhci_alloc_td()
118 INIT_LIST_HEAD(&td->list); in uhci_alloc_td()
119 INIT_LIST_HEAD(&td->fl_list); in uhci_alloc_td()
121 return td; in uhci_alloc_td()
124 static void uhci_free_td(struct uhci_hcd *uhci, struct uhci_td *td) in uhci_free_td() argument
126 if (!list_empty(&td->list)) in uhci_free_td()
127 dev_WARN(uhci_dev(uhci), "td %p still in list!\n", td); in uhci_free_td()
128 if (!list_empty(&td->fl_list)) in uhci_free_td()
129 dev_WARN(uhci_dev(uhci), "td %p still in fl_list!\n", td); in uhci_free_td()
131 dma_pool_free(uhci->td_pool, td, td->dma_handle); in uhci_free_td()
134 static inline void uhci_fill_td(struct uhci_hcd *uhci, struct uhci_td *td, in uhci_fill_td() argument
137 td->status = cpu_to_hc32(uhci, status); in uhci_fill_td()
138 td->token = cpu_to_hc32(uhci, token); in uhci_fill_td()
139 td->buffer = cpu_to_hc32(uhci, buffer); in uhci_fill_td()
142 static void uhci_add_td_to_urbp(struct uhci_td *td, struct urb_priv *urbp) in uhci_add_td_to_urbp() argument
144 list_add_tail(&td->list, &urbp->td_list); in uhci_add_td_to_urbp()
147 static void uhci_remove_td_from_urbp(struct uhci_td *td) in uhci_remove_td_from_urbp() argument
149 list_del_init(&td->list); in uhci_remove_td_from_urbp()
156 struct uhci_td *td, unsigned framenum) in uhci_insert_td_in_frame_list() argument
160 td->frame = framenum; in uhci_insert_td_in_frame_list()
169 list_add_tail(&td->fl_list, &ftd->fl_list); in uhci_insert_td_in_frame_list()
171 td->link = ltd->link; in uhci_insert_td_in_frame_list()
173 ltd->link = LINK_TO_TD(uhci, td); in uhci_insert_td_in_frame_list()
175 td->link = uhci->frame[framenum]; in uhci_insert_td_in_frame_list()
177 uhci->frame[framenum] = LINK_TO_TD(uhci, td); in uhci_insert_td_in_frame_list()
178 uhci->frame_cpu[framenum] = td; in uhci_insert_td_in_frame_list()
183 struct uhci_td *td) in uhci_remove_td_from_frame_list() argument
186 if (td->frame == -1) { in uhci_remove_td_from_frame_list()
187 WARN_ON(!list_empty(&td->fl_list)); in uhci_remove_td_from_frame_list()
191 if (uhci->frame_cpu[td->frame] == td) { in uhci_remove_td_from_frame_list()
192 if (list_empty(&td->fl_list)) { in uhci_remove_td_from_frame_list()
193 uhci->frame[td->frame] = td->link; in uhci_remove_td_from_frame_list()
194 uhci->frame_cpu[td->frame] = NULL; in uhci_remove_td_from_frame_list()
198 ntd = list_entry(td->fl_list.next, in uhci_remove_td_from_frame_list()
201 uhci->frame[td->frame] = LINK_TO_TD(uhci, ntd); in uhci_remove_td_from_frame_list()
202 uhci->frame_cpu[td->frame] = ntd; in uhci_remove_td_from_frame_list()
207 ptd = list_entry(td->fl_list.prev, struct uhci_td, fl_list); in uhci_remove_td_from_frame_list()
208 ptd->link = td->link; in uhci_remove_td_from_frame_list()
211 list_del_init(&td->fl_list); in uhci_remove_td_from_frame_list()
212 td->frame = -1; in uhci_remove_td_from_frame_list()
239 struct uhci_td *td; in uhci_unlink_isochronous_tds() local
241 list_for_each_entry(td, &urbp->td_list, list) in uhci_unlink_isochronous_tds()
242 uhci_remove_td_from_frame_list(uhci, td); in uhci_unlink_isochronous_tds()
319 struct uhci_td *td; in uhci_cleanup_queue() local
343 td = list_entry(urbp->td_list.prev, struct uhci_td, in uhci_cleanup_queue()
345 ptd->link = td->link; in uhci_cleanup_queue()
361 td = list_entry(urbp->td_list.next, struct uhci_td, list); in uhci_cleanup_queue()
363 qh->initial_toggle = uhci_toggle(td_token(uhci, td)); in uhci_cleanup_queue()
377 struct uhci_td *td; in uhci_fixup_toggles() local
399 td = list_entry(urbp->td_list.next, struct uhci_td, list); in uhci_fixup_toggles()
400 if (toggle > 1 || uhci_toggle(td_token(uhci, td)) == toggle) { in uhci_fixup_toggles()
401 td = list_entry(urbp->td_list.prev, struct uhci_td, in uhci_fixup_toggles()
403 toggle = uhci_toggle(td_token(uhci, td)) ^ 1; in uhci_fixup_toggles()
407 list_for_each_entry(td, &urbp->td_list, list) { in uhci_fixup_toggles()
408 td->token ^= cpu_to_hc32(uhci, in uhci_fixup_toggles()
490 struct uhci_td *td = list_entry(urbp->td_list.next, in uhci_activate_qh() local
493 qh->element = LINK_TO_TD(uhci, td); in uhci_activate_qh()
744 struct uhci_td *td, *tmp; in uhci_free_urb_priv() local
750 list_for_each_entry_safe(td, tmp, &urbp->td_list, list) { in uhci_free_urb_priv()
751 uhci_remove_td_from_urbp(td); in uhci_free_urb_priv()
752 uhci_free_td(uhci, td); in uhci_free_urb_priv()
793 struct uhci_td *td; in uhci_submit_control() local
813 td = qh->dummy_td; in uhci_submit_control()
814 uhci_add_td_to_urbp(td, urbp); in uhci_submit_control()
815 uhci_fill_td(uhci, td, status, destination | uhci_explen(8), in uhci_submit_control()
817 plink = &td->link; in uhci_submit_control()
845 td = uhci_alloc_td(uhci); in uhci_submit_control()
846 if (!td) in uhci_submit_control()
848 *plink = LINK_TO_TD(uhci, td); in uhci_submit_control()
853 uhci_add_td_to_urbp(td, urbp); in uhci_submit_control()
854 uhci_fill_td(uhci, td, status, in uhci_submit_control()
856 plink = &td->link; in uhci_submit_control()
865 td = uhci_alloc_td(uhci); in uhci_submit_control()
866 if (!td) in uhci_submit_control()
868 *plink = LINK_TO_TD(uhci, td); in uhci_submit_control()
874 uhci_add_td_to_urbp(td, urbp); in uhci_submit_control()
875 uhci_fill_td(uhci, td, status | TD_CTRL_IOC, in uhci_submit_control()
877 plink = &td->link; in uhci_submit_control()
882 td = uhci_alloc_td(uhci); in uhci_submit_control()
883 if (!td) in uhci_submit_control()
885 *plink = LINK_TO_TD(uhci, td); in uhci_submit_control()
887 uhci_fill_td(uhci, td, 0, USB_PID_OUT | uhci_explen(0), 0); in uhci_submit_control()
890 qh->dummy_td = td; in uhci_submit_control()
919 struct uhci_td *td; in uhci_submit_common() local
964 td = qh->dummy_td; in uhci_submit_common()
975 td = uhci_alloc_td(uhci); in uhci_submit_common()
976 if (!td) in uhci_submit_common()
978 *plink = LINK_TO_TD(uhci, td); in uhci_submit_common()
980 uhci_add_td_to_urbp(td, urbp); in uhci_submit_common()
981 uhci_fill_td(uhci, td, status, in uhci_submit_common()
985 plink = &td->link; in uhci_submit_common()
1011 td = uhci_alloc_td(uhci); in uhci_submit_common()
1012 if (!td) in uhci_submit_common()
1014 *plink = LINK_TO_TD(uhci, td); in uhci_submit_common()
1016 uhci_add_td_to_urbp(td, urbp); in uhci_submit_common()
1017 uhci_fill_td(uhci, td, status, in uhci_submit_common()
1021 plink = &td->link; in uhci_submit_common()
1032 td->status |= cpu_to_hc32(uhci, TD_CTRL_IOC); in uhci_submit_common()
1037 td = uhci_alloc_td(uhci); in uhci_submit_common()
1038 if (!td) in uhci_submit_common()
1040 *plink = LINK_TO_TD(uhci, td); in uhci_submit_common()
1042 uhci_fill_td(uhci, td, 0, USB_PID_OUT | uhci_explen(0), 0); in uhci_submit_common()
1045 qh->dummy_td = td; in uhci_submit_common()
1126 struct uhci_td *td; in uhci_fixup_short_transfer() local
1130 td = list_entry(urbp->td_list.prev, struct uhci_td, list); in uhci_fixup_short_transfer()
1137 qh->element = LINK_TO_TD(uhci, td); in uhci_fixup_short_transfer()
1138 tmp = td->list.prev; in uhci_fixup_short_transfer()
1151 td = qh->post_td; in uhci_fixup_short_transfer()
1152 qh->element = td->link; in uhci_fixup_short_transfer()
1159 td = list_entry(tmp, struct uhci_td, list); in uhci_fixup_short_transfer()
1162 uhci_remove_td_from_urbp(td); in uhci_fixup_short_transfer()
1163 uhci_free_td(uhci, td); in uhci_fixup_short_transfer()
1175 struct uhci_td *td, *tmp; in uhci_result_common() local
1179 list_for_each_entry_safe(td, tmp, &urbp->td_list, list) { in uhci_result_common()
1183 ctrlstat = td_status(uhci, td); in uhci_result_common()
1193 uhci_packetout(td_token(uhci, td))); in uhci_result_common()
1209 } else if (len < uhci_expected_length(td_token(uhci, td))) { in uhci_result_common()
1214 if (td->list.next != urbp->td_list.prev) in uhci_result_common()
1223 else if (&td->list != urbp->td_list.prev) in uhci_result_common()
1227 uhci_remove_td_from_urbp(td); in uhci_result_common()
1230 qh->post_td = td; in uhci_result_common()
1244 qh->initial_toggle = uhci_toggle(td_token(uhci, td)) ^ in uhci_result_common()
1258 struct uhci_td *td = NULL; /* Since urb->number_of_packets > 0 */ in uhci_submit_isochronous() local
1338 td = uhci_alloc_td(uhci); in uhci_submit_isochronous()
1339 if (!td) in uhci_submit_isochronous()
1342 uhci_add_td_to_urbp(td, urbp); in uhci_submit_isochronous()
1343 uhci_fill_td(uhci, td, status, destination | in uhci_submit_isochronous()
1350 td->status |= cpu_to_hc32(uhci, TD_CTRL_IOC); in uhci_submit_isochronous()
1354 list_for_each_entry(td, &urbp->td_list, list) { in uhci_submit_isochronous()
1355 uhci_insert_td_in_frame_list(uhci, td, frame); in uhci_submit_isochronous()
1372 struct uhci_td *td, *tmp; in uhci_result_isochronous() local
1376 list_for_each_entry_safe(td, tmp, &urbp->td_list, list) { in uhci_result_isochronous()
1386 ctrlstat = td_status(uhci, td); in uhci_result_isochronous()
1401 uhci_remove_td_from_urbp(td); in uhci_result_isochronous()
1402 uhci_free_td(uhci, td); in uhci_result_isochronous()
1644 struct uhci_td *td = list_entry(urbp->td_list.next, in uhci_scan_qh() local
1647 td->status |= cpu_to_hc32(uhci, TD_CTRL_IOC); in uhci_scan_qh()
1672 struct uhci_td *td; in uhci_advance_check() local
1693 td = list_entry(urbp->td_list.next, struct uhci_td, list); in uhci_advance_check()
1694 status = td_status(uhci, td); in uhci_advance_check()