Lines Matching refs:ed
215 static int ep_link(ohci_t * ohci, ed_t * ed);
216 static int ep_unlink(ohci_t * ohci, ed_t * ed);
242 static inline void ed_free(struct ed *ed) in ed_free() argument
244 ed->usb_dev = NULL; in ed_free()
333 ed_t *ed = (ed_t *)m32_swap(ed_p); in ep_print_int_eds() local
334 invalidate_dcache_ed(ed); in ep_print_int_eds()
335 printf(" ed: %4x;", ed->hwINFO); in ep_print_int_eds()
336 ed_p = &ed->hwNextED; in ep_print_int_eds()
515 ed_t *ed; in sohci_submit_job() local
536 ed = ep_add_ed(ohci_dev, dev, pipe, interval, 1); in sohci_submit_job()
537 if (!ed) { in sohci_submit_job()
556 ed->purb = urb; in sohci_submit_job()
566 purb_priv->ed = ed; in sohci_submit_job()
581 if (ed->state == ED_NEW || (ed->state & ED_DEL)) { in sohci_submit_job()
588 if (ed->state != ED_OPER) in sohci_submit_job()
589 ep_link(ohci, ed); in sohci_submit_job()
669 volatile ed_t *ed = edi; in ep_link() local
677 ed->state = ED_OPER; in ep_link()
678 ed->int_interval = 0; in ep_link()
680 switch (ed->type) { in ep_link()
682 ed->hwNextED = 0; in ep_link()
683 flush_dcache_ed(ed); in ep_link()
685 ohci_writel((uintptr_t)ed, &ohci->regs->ed_controlhead); in ep_link()
688 m32_swap((unsigned long)ed); in ep_link()
690 ed->ed_prev = ohci->ed_controltail; in ep_link()
700 ed->hwNextED = 0; in ep_link()
701 flush_dcache_ed(ed); in ep_link()
703 ohci_writel((uintptr_t)ed, &ohci->regs->ed_bulkhead); in ep_link()
706 m32_swap((unsigned long)ed); in ep_link()
708 ed->ed_prev = ohci->ed_bulktail; in ep_link()
718 load = ed->int_load; in ep_link()
719 interval = ep_2_n_interval(ed->int_period); in ep_link()
720 ed->int_interval = interval; in ep_link()
722 ed->int_branch = int_branch; in ep_link()
733 ed->hwNextED = *ed_p; in ep_link()
734 flush_dcache_ed(ed); in ep_link()
735 *ed_p = m32_swap((unsigned long)ed); in ep_link()
746 static void periodic_unlink(struct ohci *ohci, volatile struct ed *ed, in periodic_unlink() argument
756 if (((struct ed *)(uintptr_t) in periodic_unlink()
757 m32_swap((unsigned long)ed_p)) == ed) { in periodic_unlink()
758 *ed_p = ed->hwNextED; in periodic_unlink()
765 ed_p = &(((struct ed *)(uintptr_t) in periodic_unlink()
778 volatile ed_t *ed = edi; in ep_unlink() local
781 ed->hwINFO |= m32_swap(OHCI_ED_SKIP); in ep_unlink()
782 flush_dcache_ed(ed); in ep_unlink()
784 switch (ed->type) { in ep_unlink()
786 if (ed->ed_prev == NULL) { in ep_unlink()
787 if (!ed->hwNextED) { in ep_unlink()
792 ohci_writel(m32_swap(*((__u32 *)&ed->hwNextED)), in ep_unlink()
795 ed->ed_prev->hwNextED = ed->hwNextED; in ep_unlink()
796 flush_dcache_ed(ed->ed_prev); in ep_unlink()
798 if (ohci->ed_controltail == ed) { in ep_unlink()
799 ohci->ed_controltail = ed->ed_prev; in ep_unlink()
802 *((__u32 *)&ed->hwNextED)))->ed_prev = ed->ed_prev; in ep_unlink()
807 if (ed->ed_prev == NULL) { in ep_unlink()
808 if (!ed->hwNextED) { in ep_unlink()
813 ohci_writel(m32_swap(*((__u32 *)&ed->hwNextED)), in ep_unlink()
816 ed->ed_prev->hwNextED = ed->hwNextED; in ep_unlink()
817 flush_dcache_ed(ed->ed_prev); in ep_unlink()
819 if (ohci->ed_bulktail == ed) { in ep_unlink()
820 ohci->ed_bulktail = ed->ed_prev; in ep_unlink()
823 *((__u32 *)&ed->hwNextED)))->ed_prev = ed->ed_prev; in ep_unlink()
828 periodic_unlink(ohci, ed, 0, 1); in ep_unlink()
829 for (i = ed->int_branch; i < 32; i += ed->int_interval) in ep_unlink()
830 ohci->ohci_int_load[i] -= ed->int_load; in ep_unlink()
833 ed->state = ED_UNLINK; in ep_unlink()
852 volatile ed_t *ed; in ep_add_ed() local
854 ed = ed_ret = &ohci_dev->ed[(usb_pipeendpoint(pipe) << 1) | in ep_add_ed()
857 if ((ed->state & ED_DEL) || (ed->state & ED_URB_DEL)) { in ep_add_ed()
863 if (ed->state == ED_NEW) { in ep_add_ed()
866 ed->hwTailP = m32_swap((unsigned long)td); in ep_add_ed()
867 ed->hwHeadP = ed->hwTailP; in ep_add_ed()
868 ed->state = ED_UNLINK; in ep_add_ed()
869 ed->type = usb_pipetype(pipe); in ep_add_ed()
873 ed->hwINFO = m32_swap(usb_pipedevice(pipe) in ep_add_ed()
881 if (ed->type == PIPE_INTERRUPT && ed->state == ED_UNLINK) { in ep_add_ed()
882 ed->int_period = interval; in ep_add_ed()
883 ed->int_load = load; in ep_add_ed()
886 flush_dcache_ed(ed); in ep_add_ed()
918 (m32_swap(urb_priv->ed->hwTailP) & ~0xf); in td_fill()
920 td->ed = urb_priv->ed; in td_fill()
945 td->ed->hwTailP = td->hwNextTD; in td_fill()
946 flush_dcache_ed(td->ed); in td_fill()
1049 urb_priv_t *lurb_priv = td->ed->purb; in dl_transfer_length()
1068 urb_priv_t *lurb_priv = td_list->ed->purb; in check_status()
1070 __u32 *phwHeadP = &td_list->ed->hwHeadP; in check_status()
1077 invalidate_dcache_ed(td_list->ed); in check_status()
1090 flush_dcache_ed(td_list->ed); in check_status()
1138 ed_t *ed; in takeback_td() local
1148 ed = td_list->ed; in takeback_td()
1149 lurb_priv = ed->purb; in takeback_td()
1165 finish_urb(ohci, lurb_priv, ed->state); in takeback_td()
1170 if (ed->state != ED_NEW && (!usb_pipeint(lurb_priv->pipe))) { in takeback_td()
1171 invalidate_dcache_ed(ed); in takeback_td()
1172 edHeadP = m32_swap(ed->hwHeadP) & 0xfffffff0; in takeback_td()
1173 edTailP = m32_swap(ed->hwTailP); in takeback_td()
1176 if ((edHeadP == edTailP) && (ed->state == ED_OPER)) in takeback_td()
1177 ep_unlink(ohci, ed); in takeback_td()