Lines Matching defs:itd

260 ehci_free_itd_locked(ehci_softc_t *sc, ehci_soft_itd_t *itd)
263 LIST_INSERT_HEAD(&sc->sc_freeitds, itd, free_list);
1018 ehci_soft_itd_t *itd;
1031 itd = ex->ex_itdend;
1034 * check no active transfers in last itd, meaning we're finished
1037 usb_syncmem(&itd->dma, itd->offs + offsetof(ehci_itd_t, itd_ctl),
1038 sizeof(itd->itd.itd_ctl),
1042 if (le32toh(itd->itd.itd_ctl[i]) & EHCI_ITD_ACTIVE)
1050 usb_syncmem(&itd->dma, itd->offs + offsetof(ehci_itd_t, itd_ctl),
1051 sizeof(itd->itd.itd_ctl), BUS_DMASYNC_PREREAD);
1053 DPRINTFN(10, "ex %#jx itd %#jx still active",
1140 struct ehci_soft_itd *itd;
1154 for (itd = ex->ex_itdstart; itd != NULL; itd = itd->xfer_next) {
1155 usb_syncmem(&itd->dma,
1156 itd->offs + offsetof(ehci_itd_t,itd_ctl),
1157 sizeof(itd->itd.itd_ctl),
1171 status = le32toh(itd->itd.itd_ctl[i]);
1179 usb_syncmem(&itd->dma,
1180 itd->offs + offsetof(ehci_itd_t,itd_ctl),
1181 sizeof(itd->itd.itd_ctl), BUS_DMASYNC_PREREAD);
1859 ehci_dump_itds(ehci_soft_itd_t *itd)
1865 for (i = 0; itd && i < 20 && !stop; itd = itd->xfer_next, i++) {
1866 ehci_dump_itd(itd);
1867 usb_syncmem(&itd->dma,
1868 itd->offs + offsetof(ehci_itd_t, itd_next),
1869 sizeof(itd->itd),
1871 stop = itd->itd.itd_next & htole32(EHCI_LINK_TERMINATE);
1872 usb_syncmem(&itd->dma,
1873 itd->offs + offsetof(ehci_itd_t, itd_next),
1874 sizeof(itd->itd), BUS_DMASYNC_PREREAD);
1881 ehci_dump_itd(struct ehci_soft_itd *itd)
1889 DPRINTF("ITD: next phys = %#jx", itd->itd.itd_next, 0, 0, 0);
1892 t = le32toh(itd->itd.itd_ctl[i]);
1902 EHCI_ITD_GET_BPTR(le32toh(itd->itd.itd_bufr[i])), 0, 0, 0);
1904 b = le32toh(itd->itd.itd_bufr[0]);
1905 b2 = le32toh(itd->itd.itd_bufr[1]);
1906 b3 = le32toh(itd->itd.itd_bufr[2]);
1914 ehci_dump_sitd(struct ehci_soft_itd *itd)
1919 (uintptr_t)itd, (uintptr_t)itd->frame_list.next,
1920 (uintptr_t)itd->frame_list.prev, 0);
1922 (uintptr_t)itd->xfer_next, itd->physaddr, itd->slot, 0);
2317 ehci_remove_itd_chain(ehci_softc_t *sc, struct ehci_soft_itd *itd)
2322 for (; itd != NULL; itd = itd->xfer_next) {
2323 struct ehci_soft_itd *prev = itd->frame_list.prev;
2325 /* Unlink itd from hardware chain, or frame array */
2327 sc->sc_softitds[itd->slot] = itd->frame_list.next;
2328 sc->sc_flist[itd->slot] = itd->itd.itd_next;
2330 sizeof(ehci_link_t) * itd->slot,
2334 if (itd->frame_list.next != NULL)
2335 itd->frame_list.next->frame_list.prev = NULL;
2338 prev->itd.itd_next = itd->itd.itd_next;
2339 usb_syncmem(&itd->dma,
2340 itd->offs + offsetof(ehci_itd_t, itd_next),
2341 sizeof(itd->itd.itd_next), BUS_DMASYNC_PREWRITE);
2343 prev->frame_list.next = itd->frame_list.next;
2344 if (itd->frame_list.next != NULL)
2345 itd->frame_list.next->frame_list.prev = prev;
2351 ehci_free_itd_chain(ehci_softc_t *sc, struct ehci_soft_itd *itd)
2357 for (; itd != NULL; itd = next) {
2358 next = itd->xfer_next;
2359 ehci_free_itd_locked(sc, itd);
3216 struct ehci_soft_itd *itd, *freeitd;
3244 itd = KERNADDR(&dma, offs);
3245 itd->physaddr = BUS_ADDR_LO32(baddr);
3246 itd->dma = dma;
3247 itd->offs = offs;
3249 LIST_INSERT_HEAD(&sc->sc_freeitds, itd, free_list);
3254 itd = freeitd;
3255 LIST_REMOVE(itd, free_list);
3257 memset(&itd->itd, 0, sizeof(ehci_itd_t));
3259 itd->frame_list.next = NULL;
3260 itd->frame_list.prev = NULL;
3261 itd->xfer_next = NULL;
3262 itd->slot = 0;
3264 return itd;
3475 struct ehci_soft_itd *itd;
3522 for (itd = exfer->ex_itdstart; itd != NULL;
3523 itd = itd->xfer_next) {
3524 usb_syncmem(&itd->dma,
3525 itd->offs + offsetof(ehci_itd_t, itd_ctl),
3526 sizeof(itd->itd.itd_ctl),
3530 trans_status = le32toh(itd->itd.itd_ctl[i]);
3532 itd->itd.itd_ctl[i] = htole32(trans_status);
3535 usb_syncmem(&itd->dma,
3536 itd->offs + offsetof(ehci_itd_t, itd_ctl),
3537 sizeof(itd->itd.itd_ctl),
4623 ehci_soft_itd_t *itd, *prev, *start, *stop;
4632 itd = NULL;
4655 for (i = 0, prev = NULL; i < frames; i++, prev = itd) {
4656 itd = ehci_alloc_itd(sc);
4657 if (itd == NULL) {
4664 prev->itd.itd_next =
4665 htole32(itd->physaddr | EHCI_LINK_ITD);
4667 prev->xfer_next = itd;
4669 start = itd;
4676 itd->itd.itd_bufr[0] = htole32(
4683 itd->itd.itd_bufr[1] |= htole32(
4688 itd->itd.itd_bufr[2] |=
4692 stop = itd;
4702 for (itd = start; itd; itd = next) {
4703 next = itd->xfer_next;
4704 ehci_free_itd_locked(sc, itd);
4729 ehci_soft_itd_t *itd, *prev;
4739 itd = NULL;
4792 itd = exfer->ex_itdstart;
4793 for (i = 0; i < frames; i++, itd = itd->xfer_next) {
4797 prev->itd.itd_next =
4798 htole32(itd->physaddr | EHCI_LINK_ITD);
4801 sizeof(prev->itd.itd_next), BUS_DMASYNC_POSTWRITE);
4802 prev->xfer_next = itd;
4822 itd->itd.itd_ctl[j] = htole32 ( EHCI_ITD_ACTIVE |
4831 itd->itd.itd_ctl[j] |= htole32(EHCI_ITD_IOC);
4854 itd->itd.itd_bufr[j] = htole32(EHCI_ITD_SET_BPTR(page));
4855 itd->itd.itd_bufr_hi[j] = htole32(page >> 32);
4862 itd->itd.itd_bufr[0] |= htole32(EHCI_ITD_SET_EP(UE_GET_ADDR(k)) |
4868 itd->itd.itd_bufr[1] |= htole32(EHCI_ITD_SET_DIR(k) |
4872 itd->itd.itd_bufr[2] |=
4875 usb_syncmem(&itd->dma, itd->offs, sizeof(ehci_itd_t),
4878 prev = itd;
4911 itd = exfer->ex_itdstart;
4913 KASSERTMSG(itd != NULL, "frame %d\n", j);
4920 itd->itd.itd_next = sc->sc_flist[frindex];
4921 if (itd->itd.itd_next == 0)
4926 itd->itd.itd_next = EHCI_NULL;
4928 usb_syncmem(&itd->dma,
4929 itd->offs + offsetof(ehci_itd_t, itd_next),
4930 sizeof(itd->itd.itd_next),
4933 sc->sc_flist[frindex] = htole32(EHCI_LINK_ITD | itd->physaddr);
4940 itd->frame_list.next = sc->sc_softitds[frindex];
4941 sc->sc_softitds[frindex] = itd;
4942 if (itd->frame_list.next != NULL)
4943 itd->frame_list.next->frame_list.prev = itd;
4944 itd->slot = frindex;
4945 itd->frame_list.prev = NULL;
4951 itd = itd->xfer_next;