Lines Matching refs:td

19 		struct td	*td;  in urb_free_priv()  local
22 td = urb_priv->td [i]; in urb_free_priv()
23 if (td) in urb_free_priv()
24 td_free (hc, td); in urb_free_priv()
412 struct td *td; in ed_get() local
423 td = td_alloc (ohci, GFP_ATOMIC); in ed_get()
424 if (!td) { in ed_get()
430 ed->dummy = td; in ed_get()
431 ed->hwTailP = cpu_to_hc32 (ohci, td->td_dma); in ed_get()
518 struct td *td, *td_pt; in td_fill() local
541 td_pt = urb_priv->td [index]; in td_fill()
544 td = urb_priv->td [index] = urb_priv->ed->dummy; in td_fill()
547 td->ed = urb_priv->ed; in td_fill()
548 td->next_dl_td = NULL; in td_fill()
549 td->index = index; in td_fill()
550 td->urb = urb; in td_fill()
551 td->data_dma = data; in td_fill()
555 td->hwINFO = cpu_to_hc32 (ohci, info); in td_fill()
557 td->hwCBP = cpu_to_hc32 (ohci, data & 0xFFFFF000); in td_fill()
558 *ohci_hwPSWp(ohci, td, 0) = cpu_to_hc16 (ohci, in td_fill()
561 td->hwCBP = cpu_to_hc32 (ohci, data); in td_fill()
564 td->hwBE = cpu_to_hc32 (ohci, data + len - 1); in td_fill()
566 td->hwBE = 0; in td_fill()
567 td->hwNextTD = cpu_to_hc32 (ohci, td_pt->td_dma); in td_fill()
570 list_add_tail (&td->td_list, &td->ed->td_list); in td_fill()
573 hash = TD_HASH_FUNC (td->td_dma); in td_fill()
574 td->td_hash = ohci->td_hash [hash]; in td_fill()
575 ohci->td_hash [hash] = td; in td_fill()
579 td->ed->hwTailP = td->hwNextTD; in td_fill()
754 static int td_done(struct ohci_hcd *ohci, struct urb *urb, struct td *td) in td_done() argument
756 u32 tdINFO = hc32_to_cpup (ohci, &td->hwINFO); in td_done()
760 list_del (&td->td_list); in td_done()
764 u16 tdPSW = ohci_hwPSW(ohci, td, 0); in td_done()
776 dlen = urb->iso_frame_desc [td->index].length; in td_done()
784 urb->iso_frame_desc [td->index].actual_length = dlen; in td_done()
785 urb->iso_frame_desc [td->index].status = cc_to_error [cc]; in td_done()
790 urb, td, 1 + td->index, dlen, cc); in td_done()
798 u32 tdBE = hc32_to_cpup (ohci, &td->hwBE); in td_done()
810 if ((type != PIPE_CONTROL || td->index != 0) && tdBE != 0) { in td_done()
811 if (td->hwCBP == 0) in td_done()
812 urb->actual_length += tdBE - td->data_dma + 1; in td_done()
815 hc32_to_cpup (ohci, &td->hwCBP) in td_done()
816 - td->data_dma; in td_done()
822 urb, td, 1 + td->index, cc, in td_done()
831 static void ed_halted(struct ohci_hcd *ohci, struct td *td, int cc) in ed_halted() argument
833 struct urb *urb = td->urb; in ed_halted()
835 struct ed *ed = td->ed; in ed_halted()
836 struct list_head *tmp = td->td_list.next; in ed_halted()
851 struct td *next; in ed_halted()
853 next = list_entry (tmp, struct td, td_list); in ed_halted()
891 hc32_to_cpu (ohci, td->hwINFO), in ed_halted()
897 static void add_to_done_list(struct ohci_hcd *ohci, struct td *td) in add_to_done_list() argument
899 struct td *td2, *td_prev; in add_to_done_list()
902 if (td->next_dl_td) in add_to_done_list()
906 ed = td->ed; in add_to_done_list()
907 td2 = td_prev = td; in add_to_done_list()
924 ohci->dl_end = td->next_dl_td = td; in add_to_done_list()
936 struct td *td = NULL; in update_done_list() local
948 td = dma_to_td (ohci, td_dma); in update_done_list()
949 if (!td) { in update_done_list()
954 td->hwINFO |= cpu_to_hc32 (ohci, TD_DONE); in update_done_list()
955 cc = TD_CC_GET (hc32_to_cpup (ohci, &td->hwINFO)); in update_done_list()
962 && (td->ed->hwHeadP & cpu_to_hc32 (ohci, ED_H))) in update_done_list()
963 ed_halted(ohci, td, cc); in update_done_list()
965 td_dma = hc32_to_cpup (ohci, &td->hwNextTD); in update_done_list()
966 add_to_done_list(ohci, td); in update_done_list()
994 struct td *td; in finish_unlinks() local
997 td = list_first_entry(&ed->td_list, struct td, td_list); in finish_unlinks()
1001 if (td->td_dma != head && in finish_unlinks()
1006 if (td->next_dl_td) in finish_unlinks()
1034 struct td *td; in finish_unlinks() local
1040 td = list_entry (entry, struct td, td_list); in finish_unlinks()
1041 urb = td->urb; in finish_unlinks()
1042 urb_priv = td->urb->hcpriv; in finish_unlinks()
1045 prev = &td->hwNextTD; in finish_unlinks()
1051 *prev = td->hwNextTD | savebits; in finish_unlinks()
1058 tdINFO = hc32_to_cpup(ohci, &td->hwINFO); in finish_unlinks()
1065 td_done (ohci, urb, td); in finish_unlinks()
1145 static void takeback_td(struct ohci_hcd *ohci, struct td *td) in takeback_td() argument
1147 struct urb *urb = td->urb; in takeback_td()
1149 struct ed *ed = td->ed; in takeback_td()
1153 status = td_done(ohci, urb, td); in takeback_td()
1168 td = list_entry(ed->td_list.next, struct td, td_list); in takeback_td()
1169 if (!(td->hwINFO & cpu_to_hc32(ohci, TD_DONE))) { in takeback_td()
1195 struct td *td; in process_done_list() local
1198 td = ohci->dl_start; in process_done_list()
1199 if (td == ohci->dl_end) in process_done_list()
1202 ohci->dl_start = td->next_dl_td; in process_done_list()
1204 takeback_td(ohci, td); in process_done_list()