Lines Matching refs:urb
133 struct urb *urb) in copy_streams() argument
135 struct tm6000_dmaqueue *dma_q = urb->context; in copy_streams()
301 struct urb *urb) in copy_multiplexed() argument
303 struct tm6000_dmaqueue *dma_q = urb->context; in copy_multiplexed()
386 static inline int tm6000_isoc_copy(struct urb *urb) in tm6000_isoc_copy() argument
388 struct tm6000_dmaqueue *dma_q = urb->context; in tm6000_isoc_copy()
393 if (urb->status < 0) { in tm6000_isoc_copy()
394 print_err_status(dev, -1, urb->status); in tm6000_isoc_copy()
398 for (i = 0; i < urb->number_of_packets; i++) { in tm6000_isoc_copy()
399 status = urb->iso_frame_desc[i].status; in tm6000_isoc_copy()
406 len = urb->iso_frame_desc[i].actual_length; in tm6000_isoc_copy()
409 p = urb->transfer_buffer + urb->iso_frame_desc[i].offset; in tm6000_isoc_copy()
410 if (!urb->iso_frame_desc[i].status) { in tm6000_isoc_copy()
412 rc = copy_multiplexed(p, len, urb); in tm6000_isoc_copy()
416 copy_streams(p, len, urb); in tm6000_isoc_copy()
432 static void tm6000_irq_callback(struct urb *urb) in tm6000_irq_callback() argument
434 struct tm6000_dmaqueue *dma_q = urb->context; in tm6000_irq_callback()
438 switch (urb->status) { in tm6000_irq_callback()
449 tm6000_err("urb completion error %d.\n", urb->status); in tm6000_irq_callback()
454 tm6000_isoc_copy(urb); in tm6000_irq_callback()
458 for (i = 0; i < urb->number_of_packets; i++) { in tm6000_irq_callback()
459 urb->iso_frame_desc[i].status = 0; in tm6000_irq_callback()
460 urb->iso_frame_desc[i].actual_length = 0; in tm6000_irq_callback()
463 urb->status = usb_submit_urb(urb, GFP_ATOMIC); in tm6000_irq_callback()
464 if (urb->status) in tm6000_irq_callback()
466 urb->status); in tm6000_irq_callback()
539 struct urb *urb; in tm6000_uninit_isoc() local
544 urb = dev->isoc_ctl.urb[i]; in tm6000_uninit_isoc()
545 if (urb) { in tm6000_uninit_isoc()
546 usb_kill_urb(urb); in tm6000_uninit_isoc()
547 usb_unlink_urb(urb); in tm6000_uninit_isoc()
548 usb_free_urb(urb); in tm6000_uninit_isoc()
549 dev->isoc_ctl.urb[i] = NULL; in tm6000_uninit_isoc()
557 kfree(dev->isoc_ctl.urb); in tm6000_uninit_isoc()
560 dev->isoc_ctl.urb = NULL; in tm6000_uninit_isoc()
573 struct urb *urb; in tm6000_prepare_isoc() local
604 dev->isoc_ctl.urb = kmalloc(sizeof(void *)*num_bufs, GFP_KERNEL); in tm6000_prepare_isoc()
605 if (!dev->isoc_ctl.urb) { in tm6000_prepare_isoc()
614 kfree(dev->isoc_ctl.urb); in tm6000_prepare_isoc()
629 kfree(dev->isoc_ctl.urb); in tm6000_prepare_isoc()
636 urb = usb_alloc_urb(max_packets, GFP_KERNEL); in tm6000_prepare_isoc()
637 if (!urb) { in tm6000_prepare_isoc()
640 usb_free_urb(urb); in tm6000_prepare_isoc()
643 dev->isoc_ctl.urb[i] = urb; in tm6000_prepare_isoc()
645 urb->transfer_dma = dev->urb_dma[i]; in tm6000_prepare_isoc()
648 usb_fill_bulk_urb(urb, dev->udev, pipe, in tm6000_prepare_isoc()
651 urb->interval = dev->isoc_in.endp->desc.bInterval; in tm6000_prepare_isoc()
652 urb->number_of_packets = max_packets; in tm6000_prepare_isoc()
653 urb->transfer_flags = URB_ISO_ASAP | URB_NO_TRANSFER_DMA_MAP; in tm6000_prepare_isoc()
656 urb->iso_frame_desc[j].offset = size * j; in tm6000_prepare_isoc()
657 urb->iso_frame_desc[j].length = size; in tm6000_prepare_isoc()
676 int rc = usb_submit_urb(dev->isoc_ctl.urb[i], GFP_ATOMIC); in tm6000_start_thread()