isoc
struct auvitek_isoc *isoc = &ax->ax_i[i];
isoc->i_ax = ax;
isoc->i_frlengths =
kmem_alloc(sizeof(isoc->i_frlengths[0]) * nframes,
struct auvitek_isoc *isoc = &ax->ax_i[i];
nframes * uframe_len, 0, ax->ax_nframes, &isoc->i_xfer);
isoc->i_buf = usbd_get_buffer(isoc->i_xfer);
struct auvitek_isoc *isoc = &ax->ax_i[i];
if (isoc->i_xfer != NULL) {
usbd_destroy_xfer(isoc->i_xfer);
isoc->i_xfer = NULL;
if (isoc->i_frlengths != NULL) {
kmem_free(isoc->i_frlengths,
sizeof(isoc->i_frlengths[0]) * ax->ax_nframes);
isoc->i_frlengths = NULL;
auvitek_isoc_start1(struct auvitek_isoc *isoc)
struct auvitek_xfer *ax = isoc->i_ax;
ax = isoc->i_ax;
isoc->i_frlengths[i] = ax->ax_uframe_len;
usbd_setup_isoc_xfer(isoc->i_xfer,
isoc,
isoc->i_frlengths,
err = usbd_transfer(isoc->i_xfer);
struct auvitek_isoc *isoc = priv;
struct auvitek_xfer *ax = isoc->i_ax;
for (i = 0, buf = isoc->i_buf;
status = auvitek_isoc_process(sc, buf, isoc->i_frlengths[i]);
auvitek_isoc_start1(isoc);
} isoc;
epipe->isoc.next_frame = 0;
epipe->isoc.cur_xfers = 0;
if (epipe->isoc.cur_xfers > 0) {
frindex = epipe->isoc.next_frame;
epipe->isoc.cur_xfers++;
epipe->isoc.next_frame = frindex;
epipe->isoc.cur_xfers--;
if (epipe->isoc.cur_xfers > 0) {
frindex = epipe->isoc.next_frame;
epipe->isoc.cur_xfers++;
epipe->isoc.next_frame = frindex;
epipe->isoc.cur_xfers--;
struct usbd_pipe *isoc = sc->sc_isoc_pipe;
usbd_clear_endpoint_stall_async(isoc);
opipe->isoc.inuse -= xfer->ux_nframes;
} isoc;
struct isoc *isoc = &opipe->isoc;
isoc->inuse, isoc->next, (uintptr_t)xfer, xfer->ux_nframes);
if (isoc->next == -1) {
isoc->next = O32TOH(sc->sc_hcca->hcca_frame_number) + 5;
DPRINTFN(2,"start next=%jd", isoc->next, 0, 0, 0);
OHCI_ITD_SET_SF(isoc->next) |
isoc->next = isoc->next + ncur;
OHCI_ITD_SET_SF(isoc->next) |
isoc->next = isoc->next + ncur;
isoc->inuse += nframes;
struct isoc *isoc = &opipe->isoc;
isoc->next = -1;
isoc->inuse = 0;
ubt_xmit_sco_start1(struct ubt_softc *sc, struct ubt_isoc_xfer *isoc)
buf = isoc->buf;
DPRINTFN(15, "isoc=%p, len=%d, space=%d\n", isoc, len, space);
isoc->busy = 1;
isoc->size[num] = size;
usbd_setup_isoc_xfer(isoc->xfer,
isoc,
isoc->size,
usbd_transfer(isoc->xfer);
struct ubt_isoc_xfer *isoc = h;
KASSERT(xfer == isoc->xfer);
sc = isoc->softc;
isoc, usbd_errstr(status), status);
isoc->busy = 0;
ubt_recv_sco_start1(struct ubt_softc *sc, struct ubt_isoc_xfer *isoc)
DPRINTFN(15, "sc=%p, isoc=%p\n", sc, isoc);
if (isoc->busy || sc->sc_dying || sc->sc_scord_size == 0) {
isoc->busy ? " busy" : "",
isoc->busy = 1;
isoc->size[i] = sc->sc_scord_size;
usbd_setup_isoc_xfer(isoc->xfer,
isoc,
isoc->size,
usbd_transfer(isoc->xfer);
struct ubt_isoc_xfer *isoc = h;
KASSERT(isoc != NULL);
KASSERT(isoc->xfer == xfer);
sc = isoc->softc;
isoc->busy = 0;
sc, isoc, count);
frame = isoc->buf + (i * sc->sc_scord_size);
while (isoc->size[i] > 0) {
size = isoc->size[i];
isoc->size[i] -= size;
ubt_recv_sco_start1(sc, isoc);
} isoc;
uhci_soft_td_t **stds = upipe->isoc.stds;
upipe->isoc.inuse -= nframes;
struct isoc *isoc = &upipe->isoc;
isoc->inuse, isoc->next, (uintptr_t)xfer, xfer->ux_nframes);
if (isoc->inuse >= UHCI_VFRAMELIST_COUNT)
next = isoc->next;
std = isoc->stds[next];
isoc->next = next;
isoc->inuse += xfer->ux_nframes;
uhci_soft_td_t **stds = upipe->isoc.stds;
struct isoc *isoc;
isoc = &upipe->isoc;
std = isoc->stds[i];
std = isoc->stds[i];
kmem_free(isoc->stds, UHCI_VFRAMELIST_COUNT * sizeof(uhci_soft_td_t *));
struct isoc *isoc;
isoc = &upipe->isoc;
isoc->stds = kmem_alloc(
if (isoc->stds == NULL)
isoc->stds[i] = std;
std = isoc->stds[i];
isoc->next = -1;
isoc->inuse = 0;
uhci_free_std(sc, isoc->stds[i]);
kmem_free(isoc->stds, UHCI_VFRAMELIST_COUNT * sizeof(uhci_soft_td_t *));
ix = &vs->vs_xfer.isoc;
while (!SLIST_EMPTY(&vs->vs_xfer.isoc.ix_altlist)) {
alt = SLIST_FIRST(&vs->vs_xfer.isoc.ix_altlist);
SLIST_REMOVE_HEAD(&vs->vs_xfer.isoc.ix_altlist,
ix = &vs->vs_xfer.isoc;
struct uvideo_isoc *isoc = &ix->ix_i[i];
isoc->i_frlengths =
kmem_alloc(sizeof(isoc->i_frlengths[0]) * nframes,
struct uvideo_isoc *isoc = &ix->ix_i[i];
&isoc->i_xfer);
isoc->i_buf = usbd_get_buffer(isoc->i_xfer);
ix = &vs->vs_xfer.isoc;
struct uvideo_isoc *isoc = &ix->ix_i[i];
if (isoc->i_xfer != NULL) {
usbd_destroy_xfer(isoc->i_xfer);
isoc->i_xfer = NULL;
struct uvideo_isoc *isoc = &ix->ix_i[i];
if (isoc->i_frlengths != NULL) {
kmem_free(isoc->i_frlengths,
sizeof(isoc->i_frlengths[0]) *
isoc->i_frlengths = NULL;
uvideo_stream_recv_isoc_start1(&vs->vs_xfer.isoc.ix_i[i]);
uvideo_stream_recv_isoc_start1(struct uvideo_isoc *isoc)
ix = isoc->i_ix;
isoc->i_frlengths[i] = ix->ix_uframe_len;
usbd_setup_isoc_xfer(isoc->i_xfer,
isoc,
isoc->i_frlengths,
err = usbd_transfer(isoc->i_xfer);
struct uvideo_isoc *isoc;
isoc = priv;
vs = isoc->i_vs;
ix = isoc->i_ix;
for (i = 0, buf = isoc->i_buf;
isoc->i_frlengths[i]);
uvideo_stream_recv_isoc_start1(isoc);
struct uvideo_isoc_xfer isoc;