Lines Matching refs:urb

51 	struct urb	*urb = subs->completed_urb;
65 if (urb->iso_frame_desc[i].status) { /* active? hmm, skip this */
68 urb->iso_frame_desc[i].status);
69 return urb->iso_frame_desc[i].status;
71 lens += urb->iso_frame_desc[i].actual_length / usx2y->stride;
93 * prepare urb for playback data pipe
97 * since a urb can handle only a single linear buffer, if the total
100 * a temporary buffer and urb points to that.
103 struct urb *urb)
127 urb->iso_frame_desc[pack].offset = shm->captured_iso[shm->playback_iso_head].offset;
128 urb->iso_frame_desc[pack].length = shm->captured_iso[shm->playback_iso_head].length;
130 memset((char *)urb->transfer_buffer + urb->iso_frame_desc[pack].offset, 0,
131 urb->iso_frame_desc[pack].length);
136 urb->transfer_buffer_length = count * usx2y->stride;
141 struct urb *urb)
148 desc = urb->iso_frame_desc + pack;
154 shm->captured_iso[head].frame = urb->start_frame + pack;
172 struct urb *urb = playbacksubs->completed_urb;
175 if (urb) {
177 usx2y_urb_play_retire(playbacksubs, urb);
183 urb = playbacksubs->urb[0];
187 urb = playbacksubs->urb[1];
192 if (urb) {
193 err = usx2y_hwdep_urb_play_prepare(playbacksubs, urb);
196 err = usx2y_hwdep_urb_play_prepare(playbacksubs, urb);
230 static void i_usx2y_usbpcm_urb_complete(struct urb *urb)
232 struct snd_usx2y_substream *subs = urb->context;
239 subs->endpoint, usb_pipein(urb->pipe) ? "in" : "out",
240 urb->status, urb->start_frame);
243 if (unlikely(urb->status)) {
244 usx2y_error_urb_status(usx2y, subs, urb);
248 subs->completed_urb = urb;
255 if (!usx2y_usbpcm_usbframe_complete(capsubs, capsubs2, playbacksubs, urb->start_frame)) {
264 static void usx2y_hwdep_urb_release(struct urb **urb)
266 usb_kill_urb(*urb);
267 usb_free_urb(*urb);
268 *urb = NULL;
280 usx2y_hwdep_urb_release(subs->urb + i);
289 static void i_usx2y_usbpcm_subs_startup(struct urb *urb)
291 struct snd_usx2y_substream *subs = urb->context;
297 urb->start_frame == prepare_subs->urb[0]->start_frame) {
308 i_usx2y_usbpcm_urb_complete(urb);
320 struct urb **purb;
330 purb = subs->urb + i;
405 subs->urb[0]->start_frame = -1;
414 struct urb *urb;
447 urb = subs->urb[u];
448 if (usb_pipein(urb->pipe)) {
451 urb->dev = usx2y->dev;
453 urb->iso_frame_desc[pack].offset = subs->maxpacksize * (pack + u * nr_of_packs());
454 urb->iso_frame_desc[pack].length = subs->maxpacksize;
456 urb->transfer_buffer_length = subs->maxpacksize * nr_of_packs();
457 err = usb_submit_urb(urb, GFP_KERNEL);
459 snd_printk(KERN_ERR "cannot usb_submit_urb() for urb %d, err = %d\n", u, err);
463 snd_printdd("%i\n", urb->start_frame);
465 usx2y->wait_iso_frame = urb->start_frame;
467 urb->transfer_flags = 0;