Lines Matching defs:stream
164 struct uvc_streaming *stream;
166 list_for_each_entry(stream, &dev->streams, list) {
167 if (stream->header.bTerminalLink == id)
168 return stream;
178 static void uvc_stream_delete(struct uvc_streaming *stream)
180 if (stream->async_wq)
181 destroy_workqueue(stream->async_wq);
183 mutex_destroy(&stream->mutex);
185 usb_put_intf(stream->intf);
187 kfree(stream->formats);
188 kfree(stream->header.bmaControls);
189 kfree(stream);
195 struct uvc_streaming *stream;
197 stream = kzalloc(sizeof(*stream), GFP_KERNEL);
198 if (stream == NULL)
201 mutex_init(&stream->mutex);
203 stream->dev = dev;
204 stream->intf = usb_get_intf(intf);
205 stream->intfnum = intf->cur_altsetting->desc.bInterfaceNumber;
207 /* Allocate a stream specific work queue for asynchronous tasks. */
208 stream->async_wq = alloc_workqueue("uvcvideo", WQ_UNBOUND | WQ_HIGHPRI,
210 if (!stream->async_wq) {
211 uvc_stream_delete(stream);
215 return stream;
1897 struct uvc_streaming *stream = video_get_drvdata(vdev);
1898 struct uvc_device *dev = stream->dev;
1908 struct uvc_streaming *stream;
1910 list_for_each_entry(stream, &dev->streams, list) {
1911 if (!video_is_registered(&stream->vdev))
1914 video_unregister_device(&stream->vdev);
1915 video_unregister_device(&stream->meta.vdev);
1917 uvc_debugfs_cleanup_stream(stream);
1931 struct uvc_streaming *stream,
1956 vdev->prio = &stream->chain->prio;
1981 video_set_drvdata(vdev, stream);
1985 dev_err(&stream->intf->dev,
1996 struct uvc_streaming *stream)
2001 ret = uvc_video_init(stream);
2003 dev_err(&stream->intf->dev,
2008 if (stream->type == V4L2_BUF_TYPE_VIDEO_CAPTURE)
2009 stream->chain->caps |= V4L2_CAP_VIDEO_CAPTURE
2012 stream->chain->caps |= V4L2_CAP_VIDEO_OUTPUT;
2014 uvc_debugfs_init_stream(stream);
2017 return uvc_register_video_device(dev, stream, &stream->vdev,
2018 &stream->queue, stream->type,
2028 struct uvc_streaming *stream;
2036 stream = uvc_stream_by_id(dev, term->id);
2037 if (stream == NULL) {
2044 stream->chain = chain;
2045 ret = uvc_register_video(dev, stream);
2053 uvc_meta_register(stream);
2055 term->vdev = &stream->vdev;
2266 struct uvc_streaming *stream;
2281 list_for_each_entry(stream, &dev->streams, list) {
2282 if (stream->intf == intf)
2283 return uvc_video_suspend(stream);
2294 struct uvc_streaming *stream;
2316 list_for_each_entry(stream, &dev->streams, list) {
2317 if (stream->intf == intf) {
2318 ret = uvc_video_resume(stream, reset);
2320 uvc_queue_streamoff(&stream->queue,
2321 stream->queue.queue.type);