Lines Matching refs:xfer

650 uss820dci_xfer_do_fifo(struct usb_xfer *xfer)
652 struct uss820dci_softc *sc = USS820_DCI_BUS2SC(xfer->xroot->bus);
657 td = xfer->td_transfer_cache;
666 if (((void *)td) == xfer->td_transfer_last) {
684 xfer->td_transfer_cache = td;
690 xfer->td_transfer_cache = NULL;
695 uss820dci_xfer_do_complete(struct usb_xfer *xfer)
701 td = xfer->td_transfer_cache;
704 uss820dci_standard_done(xfer);
713 struct usb_xfer *xfer;
715 TAILQ_FOREACH(xfer, &sc->sc_bus.intr_q.head, wait_entry)
716 uss820dci_xfer_do_fifo(xfer);
722 struct usb_xfer *xfer;
724 TAILQ_FOREACH(xfer, &sc->sc_bus.intr_q.head, wait_entry) {
725 if (uss820dci_xfer_do_complete(xfer))
882 uss820dci_setup_standard_chain(struct usb_xfer *xfer)
891 xfer->address, UE_GET_ADDR(xfer->endpointno),
892 xfer->sumlen, usbd_get_speed(xfer->xroot->udev));
894 temp.max_frame_size = xfer->max_frame_size;
896 td = xfer->td_start[0];
897 xfer->td_transfer_first = td;
898 xfer->td_transfer_cache = td;
904 temp.td_next = xfer->td_start[0];
906 temp.setup_alt_next = xfer->flags_int.short_frames_ok ||
907 xfer->flags_int.isochronous_xfr;
908 temp.did_stall = !xfer->flags_int.control_stall;
910 sc = USS820_DCI_BUS2SC(xfer->xroot->bus);
911 ep_no = (xfer->endpointno & UE_ADDR);
915 if (xfer->flags_int.control_xfr) {
916 if (xfer->flags_int.control_hdr) {
919 temp.len = xfer->frlengths[0];
920 temp.pc = xfer->frbuffers + 0;
923 if (xfer->nframes == 1) {
925 if (xfer->flags_int.control_act)
936 if (x != xfer->nframes) {
937 if (xfer->endpointno & UE_DIR_IN) {
944 temp.pc = xfer->frbuffers + x;
946 while (x != xfer->nframes) {
950 temp.len = xfer->frlengths[x];
954 if (x == xfer->nframes) {
955 if (xfer->flags_int.control_xfr) {
956 if (xfer->flags_int.control_act) {
973 temp.short_pkt = (xfer->flags.force_short_xfer) ? 0 : 1;
978 if (xfer->flags_int.isochronous_xfr) {
982 temp.pc = xfer->frbuffers + x;
987 if (xfer->flags_int.control_xfr) {
991 temp.pc = xfer->frbuffers + 0;
997 if (!xfer->flags_int.control_act) {
1003 if (xfer->endpointno & UE_DIR_IN) {
1023 xfer->td_transfer_last = td;
1029 struct usb_xfer *xfer = arg;
1031 DPRINTF("xfer=%p\n", xfer);
1033 USB_BUS_LOCK_ASSERT(xfer->xroot->bus, MA_OWNED);
1036 uss820dci_device_done(xfer, USB_ERR_TIMEOUT);
1040 uss820dci_intr_set(struct usb_xfer *xfer, uint8_t set)
1042 struct uss820dci_softc *sc = USS820_DCI_BUS2SC(xfer->xroot->bus);
1043 uint8_t ep_no = (xfer->endpointno & UE_ADDR);
1047 DPRINTFN(15, "endpoint 0x%02x\n", xfer->endpointno);
1058 if (xfer->flags_int.control_xfr) {
1059 if (xfer->flags_int.control_hdr) {
1065 if (!(xfer->endpointno & UE_DIR_IN)) {
1079 uss820dci_start_standard_chain(struct usb_xfer *xfer)
1081 struct uss820dci_softc *sc = USS820_DCI_BUS2SC(xfer->xroot->bus);
1088 uss820dci_xfer_do_fifo(xfer);
1090 if (uss820dci_xfer_do_complete(xfer) == 0) {
1096 uss820dci_intr_set(xfer, 1);
1099 usbd_transfer_enqueue(&xfer->xroot->bus->intr_q, xfer);
1102 if (xfer->timeout != 0) {
1103 usbd_transfer_timeout_ms(xfer,
1104 &uss820dci_timeout, xfer->timeout);
1125 uss820dci_standard_done_sub(struct usb_xfer *xfer)
1133 td = xfer->td_transfer_cache;
1138 if (xfer->aframes != xfer->nframes) {
1143 if (len > xfer->frlengths[xfer->aframes]) {
1146 xfer->frlengths[xfer->aframes] -= len;
1158 if (xfer->flags_int.short_frames_ok ||
1159 xfer->flags_int.isochronous_xfr) {
1183 xfer->td_transfer_cache = td;
1190 uss820dci_standard_done(struct usb_xfer *xfer)
1194 DPRINTFN(13, "xfer=%p endpoint=%p transfer done\n",
1195 xfer, xfer->endpoint);
1199 xfer->td_transfer_cache = xfer->td_transfer_first;
1201 if (xfer->flags_int.control_xfr) {
1203 if (xfer->flags_int.control_hdr) {
1205 err = uss820dci_standard_done_sub(xfer);
1207 xfer->aframes = 1;
1209 if (xfer->td_transfer_cache == NULL) {
1213 while (xfer->aframes != xfer->nframes) {
1215 err = uss820dci_standard_done_sub(xfer);
1216 xfer->aframes++;
1218 if (xfer->td_transfer_cache == NULL) {
1223 if (xfer->flags_int.control_xfr &&
1224 !xfer->flags_int.control_act) {
1226 err = uss820dci_standard_done_sub(xfer);
1229 uss820dci_device_done(xfer, err);
1239 uss820dci_device_done(struct usb_xfer *xfer, usb_error_t error)
1241 struct uss820dci_softc *sc = USS820_DCI_BUS2SC(xfer->xroot->bus);
1243 USB_BUS_LOCK_ASSERT(xfer->xroot->bus, MA_OWNED);
1245 DPRINTFN(2, "xfer=%p, endpoint=%p, error=%d\n",
1246 xfer, xfer->endpoint, error);
1250 if (xfer->flags_int.usb_mode == USB_MODE_DEVICE) {
1251 uss820dci_intr_set(xfer, 0);
1254 usbd_transfer_done(xfer, error);
1260 uss820dci_xfer_stall(struct usb_xfer *xfer)
1262 uss820dci_device_done(xfer, USB_ERR_STALLED);
1599 uss820dci_device_bulk_open(struct usb_xfer *xfer)
1605 uss820dci_device_bulk_close(struct usb_xfer *xfer)
1607 uss820dci_device_done(xfer, USB_ERR_CANCELLED);
1611 uss820dci_device_bulk_enter(struct usb_xfer *xfer)
1617 uss820dci_device_bulk_start(struct usb_xfer *xfer)
1620 uss820dci_setup_standard_chain(xfer);
1621 uss820dci_start_standard_chain(xfer);
1636 uss820dci_device_ctrl_open(struct usb_xfer *xfer)
1642 uss820dci_device_ctrl_close(struct usb_xfer *xfer)
1644 uss820dci_device_done(xfer, USB_ERR_CANCELLED);
1648 uss820dci_device_ctrl_enter(struct usb_xfer *xfer)
1654 uss820dci_device_ctrl_start(struct usb_xfer *xfer)
1657 uss820dci_setup_standard_chain(xfer);
1658 uss820dci_start_standard_chain(xfer);
1673 uss820dci_device_intr_open(struct usb_xfer *xfer)
1679 uss820dci_device_intr_close(struct usb_xfer *xfer)
1681 uss820dci_device_done(xfer, USB_ERR_CANCELLED);
1685 uss820dci_device_intr_enter(struct usb_xfer *xfer)
1691 uss820dci_device_intr_start(struct usb_xfer *xfer)
1694 uss820dci_setup_standard_chain(xfer);
1695 uss820dci_start_standard_chain(xfer);
1710 uss820dci_device_isoc_fs_open(struct usb_xfer *xfer)
1716 uss820dci_device_isoc_fs_close(struct usb_xfer *xfer)
1718 uss820dci_device_done(xfer, USB_ERR_CANCELLED);
1722 uss820dci_device_isoc_fs_enter(struct usb_xfer *xfer)
1724 struct uss820dci_softc *sc = USS820_DCI_BUS2SC(xfer->xroot->bus);
1728 DPRINTFN(6, "xfer=%p next=%d nframes=%d\n",
1729 xfer, xfer->endpoint->isoc_next, xfer->nframes);
1739 temp = (nframes - xfer->endpoint->isoc_next) & USS820_SOFL_MASK;
1741 if ((xfer->endpoint->is_synced == 0) ||
1742 (temp < xfer->nframes)) {
1749 xfer->endpoint->isoc_next = (nframes + 3) & USS820_SOFL_MASK;
1750 xfer->endpoint->is_synced = 1;
1751 DPRINTFN(3, "start next=%d\n", xfer->endpoint->isoc_next);
1757 temp = (xfer->endpoint->isoc_next - nframes) & USS820_SOFL_MASK;
1762 xfer->isoc_time_complete =
1764 xfer->nframes;
1767 xfer->endpoint->isoc_next += xfer->nframes;
1770 uss820dci_setup_standard_chain(xfer);
1774 uss820dci_device_isoc_fs_start(struct usb_xfer *xfer)
1777 uss820dci_start_standard_chain(xfer);
2270 struct usb_xfer *xfer;
2277 xfer = parm->curr_xfer;
2295 ntd = xfer->nframes + 1 /* STATUS */ + 1 /* SYNC */ ;
2299 ntd = xfer->nframes + 1 /* SYNC */ ;
2303 ntd = xfer->nframes + 1 /* SYNC */ ;
2307 ntd = xfer->nframes + 1 /* SYNC */ ;
2330 ep_no = xfer->endpointno & UE_ADDR;
2355 td->max_packet_size = xfer->max_packet_size;
2368 xfer->td_start[0] = last_obj;
2372 uss820dci_xfer_unsetup(struct usb_xfer *xfer)