Lines Matching refs:urb
73 struct urb *urb = subs->completed_urb; in usX2Y_urb_capt_retire() local
80 cp = (unsigned char*)urb->transfer_buffer + urb->iso_frame_desc[i].offset; in usX2Y_urb_capt_retire()
81 if (urb->iso_frame_desc[i].status) { /* active? hmm, skip this */ in usX2Y_urb_capt_retire()
84 urb->iso_frame_desc[i].status); in usX2Y_urb_capt_retire()
85 return urb->iso_frame_desc[i].status; in usX2Y_urb_capt_retire()
87 len = urb->iso_frame_desc[i].actual_length / usX2Y->stride; in usX2Y_urb_capt_retire()
128 struct urb *cap_urb, in usX2Y_urb_play_prepare()
129 struct urb *urb) in usX2Y_urb_play_prepare() argument
145 urb->iso_frame_desc[pack].offset = pack ? in usX2Y_urb_play_prepare()
146 urb->iso_frame_desc[pack - 1].offset + in usX2Y_urb_play_prepare()
147 urb->iso_frame_desc[pack - 1].length : in usX2Y_urb_play_prepare()
149 urb->iso_frame_desc[pack].length = cap_urb->iso_frame_desc[pack].actual_length; in usX2Y_urb_play_prepare()
158 urb->transfer_buffer = subs->tmpbuf; in usX2Y_urb_play_prepare()
167 urb->transfer_buffer = runtime->dma_area + subs->hwptr * usX2Y->stride; in usX2Y_urb_play_prepare()
172 urb->transfer_buffer = subs->tmpbuf; in usX2Y_urb_play_prepare()
173 urb->transfer_buffer_length = count * usX2Y->stride; in usX2Y_urb_play_prepare()
182 static void usX2Y_urb_play_retire(struct snd_usX2Y_substream *subs, struct urb *urb) in usX2Y_urb_play_retire() argument
185 int len = urb->actual_length / subs->usX2Y->stride; in usX2Y_urb_play_retire()
197 static int usX2Y_urb_submit(struct snd_usX2Y_substream *subs, struct urb *urb, int frame) in usX2Y_urb_submit() argument
200 if (!urb) in usX2Y_urb_submit()
202 urb->start_frame = (frame + NRURBS * nr_of_packs()); // let hcd do rollover sanity checks in usX2Y_urb_submit()
203 urb->hcpriv = NULL; in usX2Y_urb_submit()
204 urb->dev = subs->usX2Y->dev; /* we need to set this at each time */ in usX2Y_urb_submit()
205 if ((err = usb_submit_urb(urb, GFP_ATOMIC)) < 0) { in usX2Y_urb_submit()
217 struct urb *urb = playbacksubs->completed_urb; in usX2Y_usbframe_complete() local
220 if (NULL != urb) { in usX2Y_usbframe_complete()
222 usX2Y_urb_play_retire(playbacksubs, urb); in usX2Y_usbframe_complete()
228 urb = playbacksubs->urb[0]; in usX2Y_usbframe_complete()
232 urb = playbacksubs->urb[1]; in usX2Y_usbframe_complete()
237 if (urb) { in usX2Y_usbframe_complete()
238 if ((err = usX2Y_urb_play_prepare(playbacksubs, capsubs->completed_urb, urb)) || in usX2Y_usbframe_complete()
239 (err = usX2Y_urb_submit(playbacksubs, urb, frame))) { in usX2Y_usbframe_complete()
278 struct urb *urb = subs->urb[u]; in usX2Y_clients_stop() local
279 if (NULL != urb) in usX2Y_clients_stop()
281 u, urb->status, urb->start_frame); in usX2Y_clients_stop()
290 struct snd_usX2Y_substream *subs, struct urb *urb) in usX2Y_error_urb_status() argument
292 snd_printk(KERN_ERR "ep=%i stalled with status=%i\n", subs->endpoint, urb->status); in usX2Y_error_urb_status()
293 urb->status = 0; in usX2Y_error_urb_status()
297 static void i_usX2Y_urb_complete(struct urb *urb) in i_usX2Y_urb_complete() argument
299 struct snd_usX2Y_substream *subs = urb->context; in i_usX2Y_urb_complete()
305 subs->endpoint, usb_pipein(urb->pipe) ? "in" : "out", in i_usX2Y_urb_complete()
306 urb->status, urb->start_frame); in i_usX2Y_urb_complete()
309 if (unlikely(urb->status)) { in i_usX2Y_urb_complete()
310 usX2Y_error_urb_status(usX2Y, subs, urb); in i_usX2Y_urb_complete()
314 subs->completed_urb = urb; in i_usX2Y_urb_complete()
323 if (!usX2Y_usbframe_complete(capsubs, playbacksubs, urb->start_frame)) in i_usX2Y_urb_complete()
334 void (*complete)(struct urb *)) in usX2Y_urbs_set_complete() argument
341 struct urb * urb = subs->urb[u]; in usX2Y_urbs_set_complete() local
342 if (NULL != urb) in usX2Y_urbs_set_complete()
343 urb->complete = complete; in usX2Y_urbs_set_complete()
354 static void i_usX2Y_subs_startup(struct urb *urb) in i_usX2Y_subs_startup() argument
356 struct snd_usX2Y_substream *subs = urb->context; in i_usX2Y_subs_startup()
360 if (urb->start_frame == prepare_subs->urb[0]->start_frame) { in i_usX2Y_subs_startup()
366 i_usX2Y_urb_complete(urb); in i_usX2Y_subs_startup()
372 subs, subs->endpoint, subs->urb[0], subs->urb[1]); in usX2Y_subs_prepare()
380 static void usX2Y_urb_release(struct urb **urb, int free_tb) in usX2Y_urb_release() argument
382 if (*urb) { in usX2Y_urb_release()
383 usb_kill_urb(*urb); in usX2Y_urb_release()
385 kfree((*urb)->transfer_buffer); in usX2Y_urb_release()
386 usb_free_urb(*urb); in usX2Y_urb_release()
387 *urb = NULL; in usX2Y_urb_release()
398 usX2Y_urb_release(subs->urb + i, in usX2Y_urbs_release()
429 struct urb **purb = subs->urb + i; in usX2Y_urbs_allocate()
461 subs->urb[0]->start_frame = -1; in usX2Y_subs_startup()
483 struct urb *urb = subs->urb[i]; in usX2Y_urbs_start() local
484 if (usb_pipein(urb->pipe)) { in usX2Y_urbs_start()
488 urb->dev = usX2Y->dev; in usX2Y_urbs_start()
490 urb->iso_frame_desc[pack].offset = subs->maxpacksize * pack; in usX2Y_urbs_start()
491 urb->iso_frame_desc[pack].length = subs->maxpacksize; in usX2Y_urbs_start()
493 urb->transfer_buffer_length = subs->maxpacksize * nr_of_packs(); in usX2Y_urbs_start()
494 if ((err = usb_submit_urb(urb, GFP_ATOMIC)) < 0) { in usX2Y_urbs_start()
500 usX2Y->wait_iso_frame = urb->start_frame; in usX2Y_urbs_start()
501 urb->transfer_flags = 0; in usX2Y_urbs_start()
644 static void i_usX2Y_04Int(struct urb *urb) in i_usX2Y_04Int() argument
646 struct usX2Ydev *usX2Y = urb->context; in i_usX2Y_04Int()
648 if (urb->status) in i_usX2Y_04Int()
649 snd_printk(KERN_ERR "snd_usX2Y_04Int() urb->status=%i\n", urb->status); in i_usX2Y_04Int()
662 us = kzalloc(sizeof(*us) + sizeof(struct urb*) * NOOF_SETRATE_URBS, GFP_KERNEL); in usX2Y_rate_set()
673 if (NULL == (us->urb[i] = usb_alloc_urb(0, GFP_KERNEL))) { in usX2Y_rate_set()
679 usb_fill_bulk_urb(us->urb[i], usX2Y->dev, usb_sndbulkpipe(usX2Y->dev, 4), in usX2Y_rate_set()
693 struct urb *urb = us->urb[i]; in usX2Y_rate_set() local
694 if (urb->status) { in usX2Y_rate_set()
697 usb_kill_urb(urb); in usX2Y_rate_set()
699 usb_free_urb(urb); in usX2Y_rate_set()