Lines Matching refs:xfer

648 octusb_xfer_do_fifo(struct usb_xfer *xfer)
654 td = xfer->td_transfer_cache;
661 if (((void *)td) == xfer->td_transfer_last) {
679 xfer->td_transfer_cache = td;
686 octusb_standard_done(xfer);
692 octusb_standard_done_sub(struct usb_xfer *xfer)
700 td = xfer->td_transfer_cache;
705 if (xfer->aframes != xfer->nframes) {
710 if (len > xfer->frlengths[xfer->aframes]) {
713 xfer->frlengths[xfer->aframes] -= len;
725 if (xfer->flags_int.short_frames_ok) {
749 xfer->td_transfer_cache = td;
755 octusb_standard_done(struct usb_xfer *xfer)
761 DPRINTFN(12, "xfer=%p endpoint=%p transfer done\n",
762 xfer, xfer->endpoint);
766 xfer->td_transfer_cache = xfer->td_transfer_first;
768 if (xfer->flags_int.control_xfr) {
770 if (xfer->flags_int.control_hdr)
771 error = octusb_standard_done_sub(xfer);
773 xfer->aframes = 1;
775 if (xfer->td_transfer_cache == NULL)
778 while (xfer->aframes != xfer->nframes) {
780 error = octusb_standard_done_sub(xfer);
782 xfer->aframes++;
784 if (xfer->td_transfer_cache == NULL)
788 if (xfer->flags_int.control_xfr &&
789 !xfer->flags_int.control_act)
790 error = octusb_standard_done_sub(xfer);
795 qh = xfer->qh_start[0];
798 xfer->endpoint->toggle_next =
803 octusb_device_done(xfer, error);
809 struct usb_xfer *xfer;
817 TAILQ_FOREACH(xfer, &sc->sc_bus.intr_q.head, wait_entry) {
818 if (!octusb_xfer_do_fifo(xfer)) {
826 octusb_start_standard_chain(struct usb_xfer *xfer)
831 if (octusb_xfer_do_fifo(xfer)) {
834 usbd_transfer_enqueue(&xfer->xroot->bus->intr_q, xfer);
837 if (xfer->timeout != 0) {
838 usbd_transfer_timeout_ms(xfer,
839 &octusb_timeout, xfer->timeout);
949 struct usb_xfer *xfer = arg;
951 DPRINTF("xfer=%p\n", xfer);
953 USB_BUS_LOCK_ASSERT(xfer->xroot->bus, MA_OWNED);
956 octusb_device_done(xfer, USB_ERR_TIMEOUT);
996 octusb_setup_standard_chain(struct usb_xfer *xfer)
1003 xfer->address, UE_GET_ADDR(xfer->endpointno),
1004 xfer->sumlen, usbd_get_speed(xfer->xroot->udev));
1007 td = xfer->td_start[0];
1008 xfer->td_transfer_first = td;
1009 xfer->td_transfer_cache = td;
1013 temp.setup_alt_next = xfer->flags_int.short_frames_ok;
1018 if (xfer->flags_int.control_xfr) {
1020 if (xfer->flags_int.control_hdr) {
1023 temp.len = xfer->frlengths[0];
1024 temp.pc = xfer->frbuffers + 0;
1028 if (xfer->nframes == 1) {
1033 if (xfer->flags_int.control_act)
1043 if (x != xfer->nframes) {
1044 if (xfer->endpointno & UE_DIR_IN) {
1045 if (xfer->flags_int.control_xfr)
1050 if (xfer->flags_int.control_xfr)
1057 temp.pc = xfer->frbuffers + x;
1059 while (x != xfer->nframes) {
1063 temp.len = xfer->frlengths[x];
1067 if (x == xfer->nframes) {
1068 if (xfer->flags_int.control_xfr) {
1070 if (xfer->flags_int.control_act)
1086 temp.short_pkt = (xfer->flags.force_short_xfer) ? 0 : 1;
1091 if (xfer->flags_int.isochronous_xfr) {
1096 temp.pc = xfer->frbuffers + x;
1102 if (xfer->flags_int.control_xfr &&
1103 !xfer->flags_int.control_act) {
1115 xfer->td_transfer_last = td;
1120 td->qh->ep_toggle_next = xfer->endpoint->toggle_next ? 1 : 0;
1129 octusb_device_done(struct usb_xfer *xfer, usb_error_t error)
1131 USB_BUS_LOCK_ASSERT(xfer->xroot->bus, MA_OWNED);
1133 DPRINTFN(2, "xfer=%p, endpoint=%p, error=%d\n",
1134 xfer, xfer->endpoint, error);
1141 if ((xfer->flags_int.control_act == 0) || (error != 0)) {
1144 td = xfer->td_start[0];
1149 usbd_transfer_done(xfer, error);
1156 octusb_device_bulk_open(struct usb_xfer *xfer)
1162 octusb_device_bulk_close(struct usb_xfer *xfer)
1164 octusb_device_done(xfer, USB_ERR_CANCELLED);
1168 octusb_device_bulk_enter(struct usb_xfer *xfer)
1174 octusb_device_bulk_start(struct usb_xfer *xfer)
1177 octusb_setup_standard_chain(xfer);
1178 octusb_start_standard_chain(xfer);
1193 octusb_device_ctrl_open(struct usb_xfer *xfer)
1199 octusb_device_ctrl_close(struct usb_xfer *xfer)
1201 octusb_device_done(xfer, USB_ERR_CANCELLED);
1205 octusb_device_ctrl_enter(struct usb_xfer *xfer)
1211 octusb_device_ctrl_start(struct usb_xfer *xfer)
1214 octusb_setup_standard_chain(xfer);
1215 octusb_start_standard_chain(xfer);
1230 octusb_device_intr_open(struct usb_xfer *xfer)
1236 octusb_device_intr_close(struct usb_xfer *xfer)
1238 octusb_device_done(xfer, USB_ERR_CANCELLED);
1242 octusb_device_intr_enter(struct usb_xfer *xfer)
1248 octusb_device_intr_start(struct usb_xfer *xfer)
1251 octusb_setup_standard_chain(xfer);
1252 octusb_start_standard_chain(xfer);
1267 octusb_device_isoc_open(struct usb_xfer *xfer)
1273 octusb_device_isoc_close(struct usb_xfer *xfer)
1275 octusb_device_done(xfer, USB_ERR_CANCELLED);
1279 octusb_device_isoc_enter(struct usb_xfer *xfer)
1281 struct octusb_softc *sc = OCTUSB_BUS2SC(xfer->xroot->bus);
1286 DPRINTFN(5, "xfer=%p next=%d nframes=%d\n",
1287 xfer, xfer->endpoint->isoc_next, xfer->nframes);
1292 &sc->sc_port[xfer->xroot->udev->port_index].state);
1298 temp = (frame_count - xfer->endpoint->isoc_next) & 0x7FF;
1300 if (usbd_get_speed(xfer->xroot->udev) == USB_SPEED_HIGH) {
1301 fs_frames = (xfer->nframes + 7) / 8;
1303 fs_frames = xfer->nframes;
1306 if ((xfer->endpoint->is_synced == 0) || (temp < fs_frames)) {
1313 xfer->endpoint->isoc_next = (frame_count + 3) & 0x7FF;
1314 xfer->endpoint->is_synced = 1;
1315 DPRINTFN(2, "start next=%d\n", xfer->endpoint->isoc_next);
1321 temp = (xfer->endpoint->isoc_next - frame_count) & 0x7FF;
1326 xfer->isoc_time_complete =
1331 xfer->endpoint->isoc_next += fs_frames;
1335 octusb_device_isoc_start(struct usb_xfer *xfer)
1338 octusb_setup_standard_chain(xfer);
1339 octusb_start_standard_chain(xfer);
1730 struct usb_xfer *xfer;
1737 xfer = parm->curr_xfer;
1770 qh->sc = OCTUSB_BUS2SC(xfer->xroot->bus);
1771 qh->max_frame_size = xfer->max_frame_size;
1772 qh->max_packet_size = xfer->max_packet_size;
1773 qh->ep_num = xfer->endpointno;
1774 qh->ep_type = xfer->endpoint->edesc->bmAttributes;
1775 qh->dev_addr = xfer->address;
1776 qh->dev_speed = usbd_get_speed(xfer->xroot->udev);
1777 qh->root_port_index = xfer->xroot->udev->port_index;
1779 hub = xfer->xroot->udev->parent_hub;
1785 switch (xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE) {
1787 if (usbd_get_speed(xfer->xroot->udev) == USB_SPEED_HIGH)
1788 qh->ep_interval = xfer->interval * 8;
1790 qh->ep_interval = xfer->interval * 1;
1793 qh->ep_interval = 1 << xfer->fps_shift;
1800 qh->ep_mult = xfer->max_packet_count & 3;
1801 qh->hs_hub_addr = xfer->xroot->udev->hs_hub_addr;
1802 qh->hs_hub_port = xfer->xroot->udev->hs_port_no;
1804 xfer->qh_start[0] = qh;
1825 ntd = xfer->nframes + 1 /* STATUS */ + 1 /* SYNC */ ;
1847 xfer->td_start[0] = last_obj;
1883 octusb_xfer_unsetup(struct usb_xfer *xfer)