Lines Matching refs:uvc_urb

1232 static int uvc_submit_urb(struct uvc_urb *uvc_urb, gfp_t mem_flags)  in uvc_submit_urb()  argument
1235 dma_sync_sgtable_for_device(uvc_stream_to_dmadev(uvc_urb->stream), in uvc_submit_urb()
1236 uvc_urb->sgt, in uvc_submit_urb()
1237 uvc_stream_dir(uvc_urb->stream)); in uvc_submit_urb()
1238 return usb_submit_urb(uvc_urb->urb, mem_flags); in uvc_submit_urb()
1249 struct uvc_urb *uvc_urb = container_of(work, struct uvc_urb, work); in uvc_video_copy_data_work() local
1253 for (i = 0; i < uvc_urb->async_operations; i++) { in uvc_video_copy_data_work()
1254 struct uvc_copy_op *op = &uvc_urb->copy_operations[i]; in uvc_video_copy_data_work()
1262 ret = uvc_submit_urb(uvc_urb, GFP_KERNEL); in uvc_video_copy_data_work()
1264 dev_err(&uvc_urb->stream->intf->dev, in uvc_video_copy_data_work()
1268 static void uvc_video_decode_data(struct uvc_urb *uvc_urb, in uvc_video_decode_data() argument
1271 unsigned int active_op = uvc_urb->async_operations; in uvc_video_decode_data()
1272 struct uvc_copy_op *op = &uvc_urb->copy_operations[active_op]; in uvc_video_decode_data()
1292 uvc_dbg(uvc_urb->stream->dev, FRAME, in uvc_video_decode_data()
1298 uvc_urb->async_operations++; in uvc_video_decode_data()
1477 static void uvc_video_decode_isoc(struct uvc_urb *uvc_urb, in uvc_video_decode_isoc() argument
1480 struct urb *urb = uvc_urb->urb; in uvc_video_decode_isoc()
1481 struct uvc_streaming *stream = uvc_urb->stream; in uvc_video_decode_isoc()
1511 uvc_video_decode_data(uvc_urb, buf, mem + ret, in uvc_video_decode_isoc()
1523 static void uvc_video_decode_bulk(struct uvc_urb *uvc_urb, in uvc_video_decode_bulk() argument
1526 struct urb *urb = uvc_urb->urb; in uvc_video_decode_bulk()
1527 struct uvc_streaming *stream = uvc_urb->stream; in uvc_video_decode_bulk()
1575 uvc_video_decode_data(uvc_urb, buf, mem, len); in uvc_video_decode_bulk()
1596 static void uvc_video_encode_bulk(struct uvc_urb *uvc_urb, in uvc_video_encode_bulk() argument
1599 struct urb *urb = uvc_urb->urb; in uvc_video_encode_bulk()
1600 struct uvc_streaming *stream = uvc_urb->stream; in uvc_video_encode_bulk()
1644 struct uvc_urb *uvc_urb = urb->context; in uvc_video_complete() local
1645 struct uvc_streaming *stream = uvc_urb->stream; in uvc_video_complete()
1686 uvc_urb->async_operations = 0; in uvc_video_complete()
1689 dma_sync_sgtable_for_cpu(uvc_stream_to_dmadev(uvc_urb->stream), in uvc_video_complete()
1690 uvc_urb->sgt, uvc_stream_dir(stream)); in uvc_video_complete()
1691 invalidate_kernel_vmap_range(uvc_urb->buffer, in uvc_video_complete()
1692 uvc_urb->stream->urb_size); in uvc_video_complete()
1698 stream->decode(uvc_urb, buf, buf_meta); in uvc_video_complete()
1701 if (!uvc_urb->async_operations) { in uvc_video_complete()
1702 ret = uvc_submit_urb(uvc_urb, GFP_ATOMIC); in uvc_video_complete()
1709 queue_work(stream->async_wq, &uvc_urb->work); in uvc_video_complete()
1718 struct uvc_urb *uvc_urb; in uvc_free_urb_buffers() local
1720 for_each_uvc_urb(uvc_urb, stream) { in uvc_free_urb_buffers()
1721 if (!uvc_urb->buffer) in uvc_free_urb_buffers()
1724 dma_vunmap_noncontiguous(dma_dev, uvc_urb->buffer); in uvc_free_urb_buffers()
1725 dma_free_noncontiguous(dma_dev, stream->urb_size, uvc_urb->sgt, in uvc_free_urb_buffers()
1728 uvc_urb->buffer = NULL; in uvc_free_urb_buffers()
1729 uvc_urb->sgt = NULL; in uvc_free_urb_buffers()
1736 struct uvc_urb *uvc_urb, gfp_t gfp_flags) in uvc_alloc_urb_buffer() argument
1740 uvc_urb->sgt = dma_alloc_noncontiguous(dma_dev, stream->urb_size, in uvc_alloc_urb_buffer()
1743 if (!uvc_urb->sgt) in uvc_alloc_urb_buffer()
1745 uvc_urb->dma = uvc_urb->sgt->sgl->dma_address; in uvc_alloc_urb_buffer()
1747 uvc_urb->buffer = dma_vmap_noncontiguous(dma_dev, stream->urb_size, in uvc_alloc_urb_buffer()
1748 uvc_urb->sgt); in uvc_alloc_urb_buffer()
1749 if (!uvc_urb->buffer) { in uvc_alloc_urb_buffer()
1751 uvc_urb->sgt, in uvc_alloc_urb_buffer()
1753 uvc_urb->sgt = NULL; in uvc_alloc_urb_buffer()
1794 struct uvc_urb *uvc_urb = &stream->uvc_urb[i]; in uvc_alloc_urb_buffers() local
1796 if (!uvc_alloc_urb_buffer(stream, uvc_urb, gfp_flags)) { in uvc_alloc_urb_buffers()
1801 uvc_urb->stream = stream; in uvc_alloc_urb_buffers()
1824 struct uvc_urb *uvc_urb; in uvc_video_stop_transfer() local
1833 for_each_uvc_urb(uvc_urb, stream) in uvc_video_stop_transfer()
1834 usb_poison_urb(uvc_urb->urb); in uvc_video_stop_transfer()
1838 for_each_uvc_urb(uvc_urb, stream) { in uvc_video_stop_transfer()
1839 usb_free_urb(uvc_urb->urb); in uvc_video_stop_transfer()
1840 uvc_urb->urb = NULL; in uvc_video_stop_transfer()
1873 struct uvc_urb *uvc_urb; in uvc_init_video_isoc() local
1887 for_each_uvc_urb(uvc_urb, stream) { in uvc_init_video_isoc()
1895 urb->context = uvc_urb; in uvc_init_video_isoc()
1899 urb->transfer_dma = uvc_urb->dma; in uvc_init_video_isoc()
1901 urb->transfer_buffer = uvc_urb->buffer; in uvc_init_video_isoc()
1911 uvc_urb->urb = urb; in uvc_init_video_isoc()
1925 struct uvc_urb *uvc_urb; in uvc_init_video_bulk() local
1950 for_each_uvc_urb(uvc_urb, stream) { in uvc_init_video_bulk()
1957 usb_fill_bulk_urb(urb, stream->dev->udev, pipe, uvc_urb->buffer, in uvc_init_video_bulk()
1958 size, uvc_video_complete, uvc_urb); in uvc_init_video_bulk()
1960 urb->transfer_dma = uvc_urb->dma; in uvc_init_video_bulk()
1962 uvc_urb->urb = urb; in uvc_init_video_bulk()
1976 struct uvc_urb *uvc_urb; in uvc_video_start_transfer() local
2071 for_each_uvc_urb(uvc_urb, stream) { in uvc_video_start_transfer()
2072 ret = uvc_submit_urb(uvc_urb, gfp_flags); in uvc_video_start_transfer()
2076 uvc_urb_index(uvc_urb), ret); in uvc_video_start_transfer()
2168 struct uvc_urb *uvc_urb; in uvc_video_init() local
2276 for_each_uvc_urb(uvc_urb, stream) in uvc_video_init()
2277 INIT_WORK(&uvc_urb->work, uvc_video_copy_data_work); in uvc_video_init()