Lines Matching refs:ed
44 struct ed *ed;
61 ed = td->ed;
62 if (ed->mode == FHCI_TF_ISO) {
63 if (ed->td_list.next->next != &ed->td_list) {
65 list_entry(ed->td_list.next->next, struct td,
83 ed->state = FHCI_ED_HALTED;
118 fhci_move_td_from_ed_to_done_list(usb, ed);
155 static int add_packet(struct fhci_usb *usb, struct ed *ed, struct td *td)
163 td->toggle = ed->toggle_carry;
165 switch (ed->mode) {
173 len = min(td->len - td->actual_len, ed->max_pkt_size);
179 len = min(td->len, ed->max_pkt_size);
181 ((td->len + CRC_SIZE) >= ed->max_pkt_size)))
239 } else if (fhci_host_transaction(usb, pkt, td->type, ed->dev_addr,
240 ed->ep_addr, ed->mode, ed->speed, td->toggle)) {
279 struct ed *ed;
284 list_for_each_entry(ed, list, node) {
285 td = ed->td_head;
290 if (ed->state != FHCI_ED_OPER) {
291 if (ed->state == FHCI_ED_URB_DEL) {
293 fhci_move_td_from_ed_to_done_list(usb, ed);
294 ed->state = FHCI_ED_SKIP;
308 if (add_packet(usb, ed, td) < 0)
634 struct ed *ed;
647 ed = td->ed;
662 ed->state == FHCI_ED_SKIP) {
663 fhci_del_ed_list(fhci, ed);
664 ed->state = FHCI_ED_OPER;
665 } else if (ed->state == FHCI_ED_HALTED) {
667 ed->state = FHCI_ED_URB_DEL;
668 fhci_del_ed_list(fhci, ed);
669 ed->state = FHCI_ED_OPER;
699 struct ed *ed = urb->ep->hcpriv;
707 if (ed == NULL) {
708 ed = fhci_get_empty_ed(fhci);
709 ed->dev_addr = usb_pipedevice(urb->pipe);
710 ed->ep_addr = usb_pipeendpoint(urb->pipe);
713 ed->mode = FHCI_TF_CTRL;
716 ed->mode = FHCI_TF_BULK;
719 ed->mode = FHCI_TF_INTR;
722 ed->mode = FHCI_TF_ISO;
727 ed->speed = (urb->dev->speed == USB_SPEED_LOW) ?
729 ed->max_pkt_size = usb_endpoint_maxp(&urb->ep->desc);
730 urb->ep->hcpriv = ed;
732 ed->speed, ed->max_pkt_size);
736 if (ed->mode == FHCI_TF_ISO) {
738 urb->start_frame = ed->td_head ? ed->next_iso :
740 ed->next_iso = (urb->start_frame + urb->interval *
758 urb_priv->ed = ed;
764 switch (ed->mode) {
772 fhci_td_fill(fhci, urb, urb_priv, ed, cnt,
783 fhci_td_fill(fhci, urb, urb_priv, ed, cnt,
791 fhci_td_fill(fhci, urb, urb_priv, ed, cnt,
800 fhci_td_fill(fhci, urb, urb_priv, ed, cnt++,
806 ed->dev_addr = usb_pipedevice(urb->pipe);
807 ed->max_pkt_size = usb_endpoint_maxp(&urb->ep->desc);
810 fhci_td_fill(fhci, urb, urb_priv, ed, cnt++, FHCI_TA_SETUP,
815 fhci_td_fill(fhci, urb, urb_priv, ed, cnt++,
824 fhci_td_fill(fhci, urb, urb_priv, ed, cnt++,
829 fhci_td_fill(fhci, urb, urb_priv, ed, cnt++,
846 fhci_td_fill(fhci, urb, urb_priv, ed, cnt,
869 if (!ed->td_head) {
870 ed->state = FHCI_ED_OPER;
871 switch (ed->mode) {
873 list_add(&ed->node, &fhci->hc_list->ctrl_list);
876 list_add(&ed->node, &fhci->hc_list->bulk_list);
879 list_add(&ed->node, &fhci->hc_list->intr_list);
882 list_add(&ed->node, &fhci->hc_list->iso_list);
889 fhci_add_tds_to_ed(ed, urb_priv->tds, urb_priv->num_of_tds);