Lines Matching defs:xfer
2358 dwc_otg_xfer_do_fifo(struct dwc_otg_softc *sc, struct usb_xfer *xfer)
2367 td = xfer->td_transfer_cache;
2376 if (((void *)td) == xfer->td_transfer_last) {
2398 xfer->td_transfer_cache = td;
2406 xfer->td_transfer_cache = NULL;
2411 dwc_otg_xfer_do_complete_locked(struct dwc_otg_softc *sc, struct usb_xfer *xfer)
2417 td = xfer->td_transfer_cache;
2420 dwc_otg_standard_done(xfer);
2491 struct usb_xfer *xfer;
2510 TAILQ_FOREACH_SAFE(xfer, &sc->sc_bus.intr_q.head, wait_entry, xfer_next) {
2511 td = xfer->td_transfer_cache;
2537 TAILQ_REMOVE(&sc->sc_bus.intr_q.head, xfer, wait_entry);
2538 TAILQ_INSERT_TAIL(&head, xfer, wait_entry);
2541 TAILQ_FOREACH_SAFE(xfer, &sc->sc_bus.intr_q.head, wait_entry, xfer_next) {
2542 td = xfer->td_transfer_cache;
2558 TAILQ_REMOVE(&sc->sc_bus.intr_q.head, xfer, wait_entry);
2559 TAILQ_INSERT_TAIL(&head, xfer, wait_entry);
2562 TAILQ_FOREACH_SAFE(xfer, &sc->sc_bus.intr_q.head, wait_entry, xfer_next) {
2563 td = xfer->td_transfer_cache;
2585 TAILQ_REMOVE(&sc->sc_bus.intr_q.head, xfer, wait_entry);
2586 TAILQ_INSERT_TAIL(&head, xfer, wait_entry);
2589 TAILQ_FOREACH_SAFE(xfer, &sc->sc_bus.intr_q.head, wait_entry, xfer_next) {
2590 td = xfer->td_transfer_cache;
2604 TAILQ_REMOVE(&sc->sc_bus.intr_q.head, xfer, wait_entry);
2605 TAILQ_INSERT_TAIL(&head, xfer, wait_entry);
2609 TAILQ_FOREACH_SAFE(xfer, &sc->sc_bus.intr_q.head, wait_entry, xfer_next) {
2610 td = xfer->td_transfer_cache;
2624 TAILQ_REMOVE(&sc->sc_bus.intr_q.head, xfer, wait_entry);
2625 TAILQ_INSERT_TAIL(&head, xfer, wait_entry);
2633 TAILQ_FOREACH_SAFE(xfer, &sc->sc_bus.intr_q.head, wait_entry, xfer_next) {
2634 td = xfer->td_transfer_cache;
2637 TAILQ_REMOVE(&sc->sc_bus.intr_q.head, xfer, wait_entry);
2638 TAILQ_INSERT_TAIL(&head, xfer, wait_entry);
2644 TAILQ_FOREACH_SAFE(xfer, &sc->sc_bus.intr_q.head, wait_entry, xfer_next) {
2645 td = xfer->td_transfer_cache;
2648 TAILQ_REMOVE(&sc->sc_bus.intr_q.head, xfer, wait_entry);
2649 TAILQ_INSERT_TAIL(&head, xfer, wait_entry);
2679 struct usb_xfer *xfer;
2790 TAILQ_FOREACH(xfer, &sc->sc_bus.intr_q.head, wait_entry)
2791 dwc_otg_xfer_do_fifo(sc, xfer);
2807 struct usb_xfer *xfer;
2810 TAILQ_FOREACH(xfer, &sc->sc_bus.intr_q.head, wait_entry) {
2811 if (dwc_otg_xfer_do_complete_locked(sc, xfer))
3122 dwc_otg_setup_standard_chain(struct usb_xfer *xfer)
3131 xfer->address, UE_GET_ADDR(xfer->endpointno),
3132 xfer->sumlen, usbd_get_speed(xfer->xroot->udev));
3134 temp.max_frame_size = xfer->max_frame_size;
3136 td = xfer->td_start[0];
3137 xfer->td_transfer_first = td;
3138 xfer->td_transfer_cache = td;
3144 temp.td_next = xfer->td_start[0];
3146 temp.setup_alt_next = xfer->flags_int.short_frames_ok ||
3147 xfer->flags_int.isochronous_xfr;
3148 temp.did_stall = !xfer->flags_int.control_stall;
3150 is_host = (xfer->xroot->udev->flags.usb_mode == USB_MODE_HOST);
3154 if (xfer->flags_int.control_xfr) {
3155 if (xfer->flags_int.control_hdr) {
3161 temp.len = xfer->frlengths[0];
3162 temp.pc = xfer->frbuffers + 0;
3166 if (xfer->nframes == 1) {
3168 if (xfer->flags_int.control_act)
3179 if (x != xfer->nframes) {
3180 if (xfer->endpointno & UE_DIR_IN) {
3199 temp.pc = xfer->frbuffers + x;
3203 while (x != xfer->nframes) {
3206 temp.len = xfer->frlengths[x];
3210 if (x == xfer->nframes) {
3211 if (xfer->flags_int.control_xfr) {
3212 if (xfer->flags_int.control_act) {
3227 temp.short_pkt = (xfer->flags.force_short_xfer ? 0 : 1);
3232 if (xfer->flags_int.isochronous_xfr) {
3236 temp.pc = xfer->frbuffers + x;
3240 if (xfer->flags_int.control_xfr) {
3242 temp.pc = xfer->frbuffers + 0;
3255 if (!xfer->flags_int.control_act) {
3260 if (xfer->endpointno & UE_DIR_IN) {
3293 temp.pc = xfer->frbuffers + 0;
3306 xfer->td_transfer_last = td;
3313 sc = DWC_OTG_BUS2SC(xfer->xroot->bus);
3316 td = xfer->td_transfer_first;
3317 td->toggle = (xfer->endpoint->toggle_next ? 1 : 0);
3320 (xfer->address << HCCHAR_DEVADDR_SHIFT) |
3321 ((xfer->endpointno & UE_ADDR) << HCCHAR_EPNUM_SHIFT) |
3322 (xfer->max_packet_size << HCCHAR_MPS_SHIFT) |
3343 if (UE_GET_DIR(xfer->endpointno) == UE_DIR_IN)
3346 switch (xfer->xroot->udev->speed) {
3352 if (dwc_otg_uses_split(xfer->xroot->udev)) {
3354 (xfer->xroot->udev->hs_port_no <<
3356 (xfer->xroot->udev->hs_hub_addr <<
3363 ival = xfer->interval / DWC_OTG_HOST_TIMER_RATE;
3384 hcchar |= ((xfer->max_packet_count & 3)
3386 ival = xfer->interval / DWC_OTG_HOST_TIMER_RATE;
3394 hcchar |= ((xfer->max_packet_count & 3)
3396 td->tmr_res = 1 << usbd_xfer_get_fps_shift(xfer);
3418 if (((void *)td) == xfer->td_transfer_last)
3429 struct usb_xfer *xfer = arg;
3431 DPRINTF("xfer=%p\n", xfer);
3433 USB_BUS_LOCK_ASSERT(xfer->xroot->bus, MA_OWNED);
3436 dwc_otg_device_done(xfer, USB_ERR_TIMEOUT);
3440 dwc_otg_start_standard_chain(struct usb_xfer *xfer)
3442 struct dwc_otg_softc *sc = DWC_OTG_BUS2SC(xfer->xroot->bus);
3454 dwc_otg_xfer_do_fifo(sc, xfer);
3455 if (dwc_otg_xfer_do_complete_locked(sc, xfer))
3458 struct dwc_otg_td *td = xfer->td_transfer_cache;
3466 dwc_otg_xfer_do_fifo(sc, xfer);
3467 if (dwc_otg_xfer_do_complete_locked(sc, xfer))
3473 usbd_transfer_enqueue(&xfer->xroot->bus->intr_q, xfer);
3476 if (xfer->timeout != 0) {
3477 usbd_transfer_timeout_ms(xfer,
3478 &dwc_otg_timeout, xfer->timeout);
3505 dwc_otg_standard_done_sub(struct usb_xfer *xfer)
3513 td = xfer->td_transfer_cache;
3519 xfer->endpoint->toggle_next = td->toggle;
3521 if (xfer->aframes != xfer->nframes) {
3526 if (len > xfer->frlengths[xfer->aframes]) {
3529 xfer->frlengths[xfer->aframes] -= len;
3542 if (xfer->flags_int.short_frames_ok ||
3543 xfer->flags_int.isochronous_xfr) {
3567 xfer->td_transfer_cache = td;
3573 dwc_otg_standard_done(struct usb_xfer *xfer)
3577 DPRINTFN(13, "xfer=%p endpoint=%p transfer done\n",
3578 xfer, xfer->endpoint);
3582 xfer->td_transfer_cache = xfer->td_transfer_first;
3584 if (xfer->flags_int.control_xfr) {
3585 if (xfer->flags_int.control_hdr) {
3586 err = dwc_otg_standard_done_sub(xfer);
3588 xfer->aframes = 1;
3590 if (xfer->td_transfer_cache == NULL) {
3594 while (xfer->aframes != xfer->nframes) {
3595 err = dwc_otg_standard_done_sub(xfer);
3596 xfer->aframes++;
3598 if (xfer->td_transfer_cache == NULL) {
3603 if (xfer->flags_int.control_xfr &&
3604 !xfer->flags_int.control_act) {
3605 err = dwc_otg_standard_done_sub(xfer);
3608 dwc_otg_device_done(xfer, err);
3618 dwc_otg_device_done(struct usb_xfer *xfer, usb_error_t error)
3620 struct dwc_otg_softc *sc = DWC_OTG_BUS2SC(xfer->xroot->bus);
3622 DPRINTFN(9, "xfer=%p, endpoint=%p, error=%d\n",
3623 xfer, xfer->endpoint, error);
3627 if (xfer->flags_int.usb_mode == USB_MODE_DEVICE) {
3632 td = xfer->td_transfer_cache;
3637 usbd_transfer_done(xfer, error);
3643 dwc_otg_xfer_stall(struct usb_xfer *xfer)
3645 dwc_otg_device_done(xfer, USB_ERR_STALLED);
4135 dwc_otg_device_non_isoc_open(struct usb_xfer *xfer)
4140 dwc_otg_device_non_isoc_close(struct usb_xfer *xfer)
4142 dwc_otg_device_done(xfer, USB_ERR_CANCELLED);
4146 dwc_otg_device_non_isoc_enter(struct usb_xfer *xfer)
4151 dwc_otg_device_non_isoc_start(struct usb_xfer *xfer)
4154 dwc_otg_setup_standard_chain(xfer);
4155 dwc_otg_start_standard_chain(xfer);
4170 dwc_otg_device_isoc_open(struct usb_xfer *xfer)
4175 dwc_otg_device_isoc_close(struct usb_xfer *xfer)
4177 dwc_otg_device_done(xfer, USB_ERR_CANCELLED);
4181 dwc_otg_device_isoc_enter(struct usb_xfer *xfer)
4186 dwc_otg_device_isoc_start(struct usb_xfer *xfer)
4188 struct dwc_otg_softc *sc = DWC_OTG_BUS2SC(xfer->xroot->bus);
4192 DPRINTFN(6, "xfer=%p next=%d nframes=%d\n",
4193 xfer, xfer->endpoint->isoc_next, xfer->nframes);
4195 if (xfer->xroot->udev->flags.usb_mode == USB_MODE_HOST) {
4214 xfer, framenum, 0, 1, DWC_OTG_FRAME_MASK, NULL))
4215 DPRINTFN(3, "start next=%d\n", xfer->endpoint->isoc_next);
4218 dwc_otg_setup_standard_chain(xfer);
4221 dwc_otg_start_standard_chain(xfer);
4774 struct usb_xfer *xfer;
4781 xfer = parm->curr_xfer;
4797 ep_type = (xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE);
4800 ntd = xfer->nframes + 1 /* STATUS */ + 1 /* SYNC 1 */
4803 ntd = xfer->nframes + 1 /* SYNC */ ;
4817 ep_no = xfer->endpointno & UE_ADDR;
4822 if (xfer->flags_int.usb_mode == USB_MODE_DEVICE) {
4854 td->max_packet_size = xfer->max_packet_size;
4855 td->max_packet_count = xfer->max_packet_count;
4868 xfer->td_start[0] = last_obj;
4872 dwc_otg_xfer_unsetup(struct usb_xfer *xfer)