Lines Matching refs:urb

218  * Controls the isoc copy of each urb packet
220 static void stk1160_process_isoc(struct stk1160 *dev, struct urb *urb)
230 if (urb->status < 0) {
232 print_err_status(dev, -1, urb->status);
236 for (i = 0; i < urb->number_of_packets; i++) {
237 status = urb->iso_frame_desc[i].status;
244 p = urb->transfer_buffer + urb->iso_frame_desc[i].offset;
245 len = urb->iso_frame_desc[i].actual_length;
298 static void stk1160_isoc_irq(struct urb *urb)
301 struct stk1160_urb *stk_urb = urb->context;
305 switch (urb->status) {
314 stk1160_err("urb error! status %d\n", urb->status);
319 urb->transfer_buffer_length);
322 stk1160_process_isoc(dev, urb);
324 /* Reset urb buffers */
325 for (i = 0; i < urb->number_of_packets; i++) {
326 urb->iso_frame_desc[i].status = 0;
327 urb->iso_frame_desc[i].actual_length = 0;
331 rc = usb_submit_urb(urb, GFP_ATOMIC);
333 stk1160_err("urb re-submit failed (%d)\n", rc);
360 usb_kill_urb(dev->isoc_ctl.urb_ctl[i].urb);
371 dma_free_noncontiguous(dma_dev, stk_urb->urb->transfer_buffer_length,
373 usb_free_urb(stk_urb->urb);
377 stk_urb->urb = NULL;
383 * Releases urb and transfer buffers
384 * Obviusly, associated urb must be killed before releasing it.
390 stk1160_dbg("freeing %d urb buffers...\n", num_bufs);
397 stk1160_dbg("all urb buffers freed\n");
415 stk_urb->urb = usb_alloc_urb(max_packets, GFP_KERNEL);
416 if (!stk_urb->urb)
440 usb_free_urb(stk_urb->urb);
441 stk_urb->urb = NULL;
450 struct urb *urb;
479 urb = dev->isoc_ctl.urb_ctl[i].urb;
481 if (!urb) {
492 urb->dev = dev->udev;
493 urb->pipe = usb_rcvisocpipe(dev->udev, STK1160_EP_VIDEO);
494 urb->transfer_buffer = dev->isoc_ctl.urb_ctl[i].transfer_buffer;
495 urb->transfer_buffer_length = sb_size;
496 urb->complete = stk1160_isoc_irq;
497 urb->context = &dev->isoc_ctl.urb_ctl[i];
498 urb->interval = 1;
499 urb->start_frame = 0;
500 urb->number_of_packets = max_packets;
501 urb->transfer_flags = URB_ISO_ASAP | URB_NO_TRANSFER_DMA_MAP;
502 urb->transfer_dma = dev->isoc_ctl.urb_ctl[i].dma;
506 urb->iso_frame_desc[j].offset = k;
507 urb->iso_frame_desc[j].length =
523 * enough to work fine, so we just free the extra urb,