Lines Matching refs:ed
153 struct ed *ed;
160 /* every endpoint has a ed, locate and maybe (re)initialize it */
161 ed = ed_get(ohci, urb->ep, urb->dev, pipe, urb->interval);
162 if (! ed)
166 switch (ed->type) {
198 urb_priv->ed = ed;
225 /* schedule the ed if needed */
226 if (ed->state == ED_IDLE) {
227 retval = ed_schedule (ohci, ed);
241 list_add(&ed->in_use_list, &ohci->eds_in_use);
243 if (ed->type == PIPE_ISOCHRONOUS) {
247 frame += max_t (u16, 8, ed->interval);
248 frame &= ~(ed->interval - 1);
249 frame |= ed->branch;
251 ed->last_iso = frame + ed->interval * (size - 1);
253 } else if (ed->type == PIPE_ISOCHRONOUS) {
255 u16 frame = ed->last_iso + ed->interval;
256 u16 length = ed->interval * (size - 1);
263 frame += (next - frame + ed->interval - 1) &
264 -ed->interval;
280 ed->interval);
290 ed->last_iso = frame + length;
293 /* fill the TDs and link them to the ed; and
329 if (urb_priv->ed->state == ED_OPER)
330 start_ed_unlink(ohci, urb_priv->ed);
352 struct ed *ed = ep->hcpriv;
358 if (!ed)
366 ed->state = ED_IDLE;
370 switch (ed->state) {
381 if (list_empty (&ed->td_list)) {
382 td_free (ohci, ed->dummy);
383 ed_free (ohci, ed);
389 * that's not our job. can't recover; must leak ed.
391 ohci_err (ohci, "leak ed %p (#%02x) state %d%s\n",
392 ed, ep->desc.bEndpointAddress, ed->state,
393 list_empty (&ed->td_list) ? "" : " (has tds)");
394 td_free (ohci, ed->dummy);
753 struct ed *ed;
783 list_for_each_entry(ed, &ohci->eds_in_use, in_use_list) {
784 if (ed->pending_td) {
786 OKAY_TO_TAKEBACK(ohci, ed)) {
787 unsigned tmp = hc32_to_cpu(ohci, ed->hwINFO);
793 add_to_done_list(ohci, ed->pending_td);
798 td = ed->pending_td;
802 list_for_each_entry(td_next, &ed->td_list, td_list) {
810 head = hc32_to_cpu(ohci, READ_ONCE(ed->hwHeadP)) & TD_MASK;
812 td_next = list_prepare_entry(td, &ed->td_list, td_list);
813 list_for_each_entry_continue(td_next, &ed->td_list, td_list) {
824 ed->takeback_wdh_cnt = ohci->wdh_cnt + 2;
825 ed->pending_td = td;
1045 struct ed *ed = priv->ed;
1047 switch (ed->state) {
1049 ed->state = ED_UNLINK;
1050 ed->hwINFO |= cpu_to_hc32(ohci, ED_DEQUEUE);
1051 ed_deschedule (ohci, ed);
1053 ed->ed_next = ohci->ed_rm_list;
1054 ed->ed_prev = NULL;
1055 ohci->ed_rm_list = ed;
1060 ohci_dbg(ohci, "bogus ed %p state %d\n",
1061 ed, ed->state);
1274 pr_debug ("%s: block sizes: ed %zd td %zd\n", hcd_name,
1275 sizeof (struct ed), sizeof (struct td));