Lines Matching refs:itd
744 struct ehci_soft_itd *itd = ex->itdend; in ehci_check_itd_intr() local
754 usb_syncmem(&itd->dma, in ehci_check_itd_intr()
755 itd->offs + offsetof(struct ehci_itd, itd_ctl), in ehci_check_itd_intr()
756 sizeof(itd->itd.itd_ctl), in ehci_check_itd_intr()
760 if (letoh32(itd->itd.itd_ctl[i]) & EHCI_ITD_ACTIVE) in ehci_check_itd_intr()
764 usb_syncmem(&itd->dma, in ehci_check_itd_intr()
765 itd->offs + offsetof(struct ehci_sitd, sitd_trans), in ehci_check_itd_intr()
766 sizeof(itd->sitd.sitd_trans), in ehci_check_itd_intr()
769 if (le32toh(itd->sitd.sitd_trans) & EHCI_SITD_ACTIVE) in ehci_check_itd_intr()
784 struct ehci_soft_itd *itd; in ehci_isoc_idone() local
809 for (itd = ex->itdstart; itd != NULL; itd = itd->xfer_next) { in ehci_isoc_idone()
810 usb_syncmem(&itd->dma, in ehci_isoc_idone()
811 itd->offs + offsetof(struct ehci_itd, itd_ctl), in ehci_isoc_idone()
812 sizeof(itd->itd.itd_ctl), BUS_DMASYNC_POSTWRITE | in ehci_isoc_idone()
825 status = letoh32(itd->itd.itd_ctl[i]); in ehci_isoc_idone()
835 for (itd = ex->itdstart; itd != NULL; itd = itd->xfer_next) { in ehci_isoc_idone()
836 usb_syncmem(&itd->dma, in ehci_isoc_idone()
837 itd->offs + offsetof(struct ehci_sitd, sitd_trans), in ehci_isoc_idone()
838 sizeof(itd->sitd.sitd_trans), in ehci_isoc_idone()
841 status = le32toh(itd->sitd.sitd_trans); in ehci_isoc_idone()
1314 ehci_dump_itd(struct ehci_soft_itd *itd) in ehci_dump_itd() argument
1320 printf("ITD: next phys=%X\n", itd->itd.itd_next); in ehci_dump_itd()
1323 t = letoh32(itd->itd.itd_ctl[i]); in ehci_dump_itd()
1331 printf("%X,", EHCI_ITD_GET_BPTR(letoh32(itd->itd.itd_bufr[i]))); in ehci_dump_itd()
1333 b = letoh32(itd->itd.itd_bufr[0]); in ehci_dump_itd()
1334 b2 = letoh32(itd->itd.itd_bufr[1]); in ehci_dump_itd()
1335 b3 = letoh32(itd->itd.itd_bufr[2]); in ehci_dump_itd()
1650 struct ehci_soft_itd *itd, *prev = NULL; in ehci_rem_itd_chain() local
1656 for (itd = ex->itdstart; itd != NULL; itd = itd->xfer_next) { in ehci_rem_itd_chain()
1657 prev = itd->u.frame_list.prev; in ehci_rem_itd_chain()
1660 sc->sc_softitds[itd->slot] = itd->u.frame_list.next; in ehci_rem_itd_chain()
1661 sc->sc_flist[itd->slot] = itd->itd.itd_next; in ehci_rem_itd_chain()
1663 sizeof(uint32_t) * itd->slot, sizeof(uint32_t), in ehci_rem_itd_chain()
1666 if (itd->u.frame_list.next != NULL) in ehci_rem_itd_chain()
1667 itd->u.frame_list.next->u.frame_list.prev = in ehci_rem_itd_chain()
1671 prev->itd.itd_next = itd->itd.itd_next; in ehci_rem_itd_chain()
1672 usb_syncmem(&itd->dma, in ehci_rem_itd_chain()
1673 itd->offs + offsetof(struct ehci_itd, itd_next), in ehci_rem_itd_chain()
1674 sizeof(itd->itd.itd_next), BUS_DMASYNC_PREWRITE); in ehci_rem_itd_chain()
1676 prev->u.frame_list.next = itd->u.frame_list.next; in ehci_rem_itd_chain()
1677 if (itd->u.frame_list.next != NULL) in ehci_rem_itd_chain()
1678 itd->u.frame_list.next->u.frame_list.prev = in ehci_rem_itd_chain()
1687 struct ehci_soft_itd *itd, *prev = NULL; in ehci_free_itd_chain() local
1693 for (itd = ex->itdstart; itd != NULL; itd = itd->xfer_next) { in ehci_free_itd_chain()
1696 prev = itd; in ehci_free_itd_chain()
2509 struct ehci_soft_itd *itd, *freeitd; in ehci_alloc_itd() local
2524 LIST_FOREACH(itd, &sc->sc_freeitds, u.free_list) { in ehci_alloc_itd()
2525 if (itd->slot != frindex && itd->slot != previndex) { in ehci_alloc_itd()
2526 freeitd = itd; in ehci_alloc_itd()
2541 itd = KERNADDR(&dma, offs); in ehci_alloc_itd()
2542 itd->physaddr = DMAADDR(&dma, offs); in ehci_alloc_itd()
2543 itd->dma = dma; in ehci_alloc_itd()
2544 itd->offs = offs; in ehci_alloc_itd()
2545 LIST_INSERT_HEAD(&sc->sc_freeitds, itd, u.free_list); in ehci_alloc_itd()
2550 itd = freeitd; in ehci_alloc_itd()
2551 LIST_REMOVE(itd, u.free_list); in ehci_alloc_itd()
2552 memset(&itd->itd, 0, sizeof(struct ehci_itd)); in ehci_alloc_itd()
2553 usb_syncmem(&itd->dma, itd->offs + offsetof(struct ehci_itd, itd_next), in ehci_alloc_itd()
2554 sizeof(itd->itd.itd_next), BUS_DMASYNC_PREWRITE | in ehci_alloc_itd()
2557 itd->u.frame_list.next = NULL; in ehci_alloc_itd()
2558 itd->u.frame_list.prev = NULL; in ehci_alloc_itd()
2559 itd->xfer_next = NULL; in ehci_alloc_itd()
2560 itd->slot = 0; in ehci_alloc_itd()
2563 return (itd); in ehci_alloc_itd()
2567 ehci_free_itd(struct ehci_softc *sc, struct ehci_soft_itd *itd) in ehci_free_itd() argument
2572 LIST_INSERT_HEAD(&sc->sc_freeitds, itd, u.free_list); in ehci_free_itd()
2721 struct ehci_soft_itd *itd; in ehci_abort_isoc_xfer() local
2752 for (itd = ex->itdstart; itd != NULL; itd = itd->xfer_next) { in ehci_abort_isoc_xfer()
2753 usb_syncmem(&itd->dma, in ehci_abort_isoc_xfer()
2754 itd->offs + offsetof(struct ehci_itd, itd_ctl), in ehci_abort_isoc_xfer()
2755 sizeof(itd->itd.itd_ctl), in ehci_abort_isoc_xfer()
2759 trans_status = le32toh(itd->itd.itd_ctl[i]); in ehci_abort_isoc_xfer()
2761 itd->itd.itd_ctl[i] = htole32(trans_status); in ehci_abort_isoc_xfer()
2764 usb_syncmem(&itd->dma, in ehci_abort_isoc_xfer()
2765 itd->offs + offsetof(struct ehci_itd, itd_ctl), in ehci_abort_isoc_xfer()
2766 sizeof(itd->itd.itd_ctl), in ehci_abort_isoc_xfer()
2770 for (itd = ex->itdstart; itd != NULL; itd = itd->xfer_next) { in ehci_abort_isoc_xfer()
2771 usb_syncmem(&itd->dma, in ehci_abort_isoc_xfer()
2772 itd->offs + offsetof(struct ehci_sitd, sitd_trans), in ehci_abort_isoc_xfer()
2773 sizeof(itd->sitd.sitd_trans), in ehci_abort_isoc_xfer()
2776 trans_status = le32toh(itd->sitd.sitd_trans); in ehci_abort_isoc_xfer()
2778 itd->sitd.sitd_trans = htole32(trans_status); in ehci_abort_isoc_xfer()
2780 usb_syncmem(&itd->dma, in ehci_abort_isoc_xfer()
2781 itd->offs + offsetof(struct ehci_sitd, sitd_trans), in ehci_abort_isoc_xfer()
2782 sizeof(itd->sitd.sitd_trans), in ehci_abort_isoc_xfer()
3263 struct ehci_soft_itd *itd; in ehci_device_isoc_start() local
3344 for (itd = ex->itdstart; itd != NULL; itd = itd->xfer_next) { in ehci_device_isoc_start()
3345 itd->itd.itd_next = sc->sc_flist[frindex]; in ehci_device_isoc_start()
3346 if (itd->itd.itd_next == 0) in ehci_device_isoc_start()
3347 itd->itd.itd_next = htole32(EHCI_LINK_TERMINATE); in ehci_device_isoc_start()
3349 sc->sc_flist[frindex] = htole32(link | itd->physaddr); in ehci_device_isoc_start()
3350 itd->u.frame_list.next = sc->sc_softitds[frindex]; in ehci_device_isoc_start()
3351 sc->sc_softitds[frindex] = itd; in ehci_device_isoc_start()
3352 if (itd->u.frame_list.next != NULL) in ehci_device_isoc_start()
3353 itd->u.frame_list.next->u.frame_list.prev = itd; in ehci_device_isoc_start()
3354 itd->slot = frindex; in ehci_device_isoc_start()
3355 itd->u.frame_list.prev = NULL; in ehci_device_isoc_start()
3379 struct ehci_soft_itd *itd = NULL, *pitd = NULL; in ehci_alloc_itd_chain() local
3412 itd = ehci_alloc_itd(sc); in ehci_alloc_itd_chain()
3413 if (itd == NULL) { in ehci_alloc_itd_chain()
3419 pitd->xfer_next = itd; in ehci_alloc_itd_chain()
3421 ex->itdstart = itd; in ehci_alloc_itd_chain()
3436 itd->itd.itd_ctl[j] = htole32( in ehci_alloc_itd_chain()
3447 itd->itd.itd_ctl[j] |= htole32(EHCI_ITD_IOC); in ehci_alloc_itd_chain()
3471 itd->itd.itd_bufr[j] = htole32(page); in ehci_alloc_itd_chain()
3472 itd->itd.itd_bufr_hi[j] = htole32(page >> 32); in ehci_alloc_itd_chain()
3478 itd->itd.itd_bufr[0] |= htole32( in ehci_alloc_itd_chain()
3483 itd->itd.itd_bufr[1] |= htole32( in ehci_alloc_itd_chain()
3488 itd->itd.itd_bufr[2] |= htole32( in ehci_alloc_itd_chain()
3492 pitd = itd; in ehci_alloc_itd_chain()
3495 ex->itdend = itd; in ehci_alloc_itd_chain()
3506 struct ehci_soft_itd *itd = NULL, *pitd = NULL; in ehci_alloc_sitd_chain() local
3530 itd = ehci_alloc_itd(sc); in ehci_alloc_sitd_chain()
3531 if (itd == NULL) { in ehci_alloc_sitd_chain()
3536 pitd->xfer_next = itd; in ehci_alloc_sitd_chain()
3538 ex->itdstart = itd; in ehci_alloc_sitd_chain()
3540 itd->sitd.sitd_endp = htole32(endp); in ehci_alloc_sitd_chain()
3541 itd->sitd.sitd_back = htole32(EHCI_LINK_TERMINATE); in ehci_alloc_sitd_chain()
3542 itd->sitd.sitd_trans = htole32( in ehci_alloc_sitd_chain()
3570 itd->sitd.sitd_sched = htole32( in ehci_alloc_sitd_chain()
3573 itd->sitd.sitd_bufr[0] = htole32(addr); in ehci_alloc_sitd_chain()
3574 itd->sitd.sitd_bufr[1] = htole32(page); in ehci_alloc_sitd_chain()
3577 pitd = itd; in ehci_alloc_sitd_chain()
3580 ex->itdend = itd; in ehci_alloc_sitd_chain()