Lines Matching refs:ed

138 	struct ed	*ed;
149 /* every endpoint has a ed, locate and maybe (re)initialize it */
150 if (! (ed = ed_get (ohci, urb->ep, urb->dev, pipe, urb->interval)))
154 switch (ed->type) {
192 urb_priv->ed = ed;
219 /* schedule the ed if needed */
220 if (ed->state == ED_IDLE) {
221 retval = ed_schedule (ohci, ed);
226 if (ed->type == PIPE_ISOCHRONOUS) {
230 frame += max_t (u16, 8, ed->interval);
231 frame &= ~(ed->interval - 1);
232 frame |= ed->branch;
239 } else if (ed->type == PIPE_ISOCHRONOUS)
240 urb->start_frame = ed->last_iso + ed->interval;
242 /* fill the TDs and link them to the ed; and
285 if (urb_priv->ed->state == ED_OPER)
286 start_ed_unlink (ohci, urb_priv->ed);
311 struct ed *ed = ep->hcpriv;
317 if (!ed)
325 ed->state = ED_IDLE;
326 if (quirk_zfmicro(ohci) && ed->type == PIPE_INTERRUPT)
331 switch (ed->state) {
338 ohci->ed_to_check = ed;
347 if (list_empty (&ed->td_list)) {
348 td_free (ohci, ed->dummy);
349 ed_free (ohci, ed);
355 * that's not our job. can't recover; must leak ed.
357 ohci_err (ohci, "leak ed %p (#%02x) state %d%s\n",
358 ed, ep->desc.bEndpointAddress, ed->state,
359 list_empty (&ed->td_list) ? "" : " (has tds)");
360 td_free (ohci, ed->dummy);
402 static int check_ed(struct ohci_hcd *ohci, struct ed *ed)
404 return (hc32_to_cpu(ohci, ed->hwINFO) & ED_IN) != 0
405 && (hc32_to_cpu(ohci, ed->hwHeadP) & TD_MASK)
406 == (hc32_to_cpu(ohci, ed->hwTailP) & TD_MASK)
407 && !list_empty(&ed->td_list);
421 struct ed **seen = NULL;
437 struct ed *ed = ohci->periodic[i];
439 while (ed) {
444 if (seen[temp] == ed) {
446 ed = NULL;
450 if (!ed)
452 seen[seen_count++] = ed;
453 if (!check_ed(ohci, ed)) {
454 ed = ed->ed_next;
461 ohci->ed_to_check = ed;
840 struct ed *ed = ohci->ed_to_check;
842 if (check_ed(ohci, ed)) {
848 ed->td_list.next,
938 struct ed *ed = priv->ed;
940 switch (ed->state) {
942 ed->state = ED_UNLINK;
943 ed->hwINFO |= cpu_to_hc32(ohci, ED_DEQUEUE);
944 ed_deschedule (ohci, ed);
946 ed->ed_next = ohci->ed_rm_list;
947 ed->ed_prev = NULL;
948 ohci->ed_rm_list = ed;
953 ohci_dbg(ohci, "bogus ed %p state %d\n",
954 ed, ed->state);
1144 pr_debug ("%s: block sizes: ed %Zd td %Zd\n", hcd_name,
1145 sizeof (struct ed), sizeof (struct td));