Lines Matching refs:xfer

560 avr32dci_xfer_do_fifo(struct usb_xfer *xfer)
566 td = xfer->td_transfer_cache;
572 if (((void *)td) == xfer->td_transfer_last) {
591 xfer->td_transfer_cache = td;
598 avr32dci_standard_done(xfer);
605 struct usb_xfer *xfer;
608 TAILQ_FOREACH(xfer, &sc->sc_bus.intr_q.head, wait_entry) {
609 if (!avr32dci_xfer_do_fifo(xfer)) {
749 avr32dci_setup_standard_chain(struct usb_xfer *xfer)
759 xfer->address, UE_GET_ADDR(xfer->endpointno),
760 xfer->sumlen, usbd_get_speed(xfer->xroot->udev));
762 temp.max_frame_size = xfer->max_frame_size;
764 td = xfer->td_start[0];
765 xfer->td_transfer_first = td;
766 xfer->td_transfer_cache = td;
772 temp.td_next = xfer->td_start[0];
774 temp.setup_alt_next = xfer->flags_int.short_frames_ok ||
775 xfer->flags_int.isochronous_xfr;
776 temp.did_stall = !xfer->flags_int.control_stall;
778 sc = AVR32_BUS2SC(xfer->xroot->bus);
779 ep_no = (xfer->endpointno & UE_ADDR);
783 if (xfer->flags_int.control_xfr) {
784 if (xfer->flags_int.control_hdr) {
787 temp.len = xfer->frlengths[0];
788 temp.pc = xfer->frbuffers + 0;
791 if (xfer->nframes == 1) {
793 if (xfer->flags_int.control_act)
803 if (x != xfer->nframes) {
804 if (xfer->endpointno & UE_DIR_IN) {
813 temp.pc = xfer->frbuffers + x;
817 while (x != xfer->nframes) {
821 temp.len = xfer->frlengths[x];
825 if (x == xfer->nframes) {
826 if (xfer->flags_int.control_xfr) {
827 if (xfer->flags_int.control_act) {
844 temp.short_pkt = (xfer->flags.force_short_xfer) ? 0 : 1;
849 if (xfer->flags_int.isochronous_xfr) {
853 temp.pc = xfer->frbuffers + x;
857 if (xfer->flags_int.control_xfr) {
860 temp.pc = xfer->frbuffers + 0;
872 if (!xfer->flags_int.control_act) {
878 if (xfer->endpointno & UE_DIR_IN) {
896 xfer->td_transfer_last = td;
902 struct usb_xfer *xfer = arg;
904 DPRINTF("xfer=%p\n", xfer);
906 USB_BUS_LOCK_ASSERT(xfer->xroot->bus, MA_OWNED);
909 avr32dci_device_done(xfer, USB_ERR_TIMEOUT);
913 avr32dci_start_standard_chain(struct usb_xfer *xfer)
918 if (avr32dci_xfer_do_fifo(xfer)) {
919 uint8_t ep_no = xfer->endpointno & UE_ADDR;
920 struct avr32dci_softc *sc = AVR32_BUS2SC(xfer->xroot->bus);
925 usbd_transfer_enqueue(&xfer->xroot->bus->intr_q, xfer);
928 if (xfer->timeout != 0) {
929 usbd_transfer_timeout_ms(xfer,
930 &avr32dci_timeout, xfer->timeout);
950 avr32dci_standard_done_sub(struct usb_xfer *xfer)
958 td = xfer->td_transfer_cache;
963 if (xfer->aframes != xfer->nframes) {
968 if (len > xfer->frlengths[xfer->aframes]) {
971 xfer->frlengths[xfer->aframes] -= len;
983 if (xfer->flags_int.short_frames_ok ||
984 xfer->flags_int.isochronous_xfr) {
1008 xfer->td_transfer_cache = td;
1015 avr32dci_standard_done(struct usb_xfer *xfer)
1019 DPRINTFN(13, "xfer=%p pipe=%p transfer done\n",
1020 xfer, xfer->endpoint);
1024 xfer->td_transfer_cache = xfer->td_transfer_first;
1026 if (xfer->flags_int.control_xfr) {
1028 if (xfer->flags_int.control_hdr) {
1030 err = avr32dci_standard_done_sub(xfer);
1032 xfer->aframes = 1;
1034 if (xfer->td_transfer_cache == NULL) {
1038 while (xfer->aframes != xfer->nframes) {
1040 err = avr32dci_standard_done_sub(xfer);
1041 xfer->aframes++;
1043 if (xfer->td_transfer_cache == NULL) {
1048 if (xfer->flags_int.control_xfr &&
1049 !xfer->flags_int.control_act) {
1051 err = avr32dci_standard_done_sub(xfer);
1054 avr32dci_device_done(xfer, err);
1064 avr32dci_device_done(struct usb_xfer *xfer, usb_error_t error)
1066 struct avr32dci_softc *sc = AVR32_BUS2SC(xfer->xroot->bus);
1071 DPRINTFN(9, "xfer=%p, pipe=%p, error=%d\n",
1072 xfer, xfer->endpoint, error);
1074 if (xfer->flags_int.usb_mode == USB_MODE_DEVICE) {
1075 ep_no = (xfer->endpointno & UE_ADDR);
1083 usbd_transfer_done(xfer, error);
1087 avr32dci_xfer_stall(struct usb_xfer *xfer)
1089 avr32dci_device_done(xfer, USB_ERR_STALLED);
1320 avr32dci_device_non_isoc_open(struct usb_xfer *xfer)
1326 avr32dci_device_non_isoc_close(struct usb_xfer *xfer)
1328 avr32dci_device_done(xfer, USB_ERR_CANCELLED);
1332 avr32dci_device_non_isoc_enter(struct usb_xfer *xfer)
1338 avr32dci_device_non_isoc_start(struct usb_xfer *xfer)
1341 avr32dci_setup_standard_chain(xfer);
1342 avr32dci_start_standard_chain(xfer);
1357 avr32dci_device_isoc_fs_open(struct usb_xfer *xfer)
1363 avr32dci_device_isoc_fs_close(struct usb_xfer *xfer)
1365 avr32dci_device_done(xfer, USB_ERR_CANCELLED);
1369 avr32dci_device_isoc_fs_enter(struct usb_xfer *xfer)
1371 struct avr32dci_softc *sc = AVR32_BUS2SC(xfer->xroot->bus);
1376 DPRINTFN(6, "xfer=%p next=%d nframes=%d\n",
1377 xfer, xfer->endpoint->isoc_next, xfer->nframes);
1380 ep_no = xfer->endpointno & UE_ADDR;
1389 temp = (nframes - xfer->endpoint->isoc_next) & AVR32_FRAME_MASK;
1391 if ((xfer->endpoint->is_synced == 0) ||
1392 (temp < xfer->nframes)) {
1399 xfer->endpoint->isoc_next = (nframes + 3) & AVR32_FRAME_MASK;
1400 xfer->endpoint->is_synced = 1;
1401 DPRINTFN(3, "start next=%d\n", xfer->endpoint->isoc_next);
1407 temp = (xfer->endpoint->isoc_next - nframes) & AVR32_FRAME_MASK;
1412 xfer->isoc_time_complete =
1414 xfer->nframes;
1417 xfer->endpoint->isoc_next += xfer->nframes;
1420 avr32dci_setup_standard_chain(xfer);
1424 avr32dci_device_isoc_fs_start(struct usb_xfer *xfer)
1427 avr32dci_start_standard_chain(xfer);
1952 struct usb_xfer *xfer;
1959 xfer = parm->curr_xfer;
1975 if ((xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE) == UE_CONTROL) {
1977 ntd = xfer->nframes + 1 /* STATUS */ + 1 /* SYNC 1 */
1981 ntd = xfer->nframes + 1 /* SYNC */ ;
1998 ep_no = xfer->endpointno & UE_ADDR;
2019 td->max_packet_size = xfer->max_packet_size;
2035 xfer->td_start[0] = last_obj;
2039 avr32dci_xfer_unsetup(struct usb_xfer *xfer)