Lines Matching refs:imgu

23 	struct imgu_device *imgu = v4l2_get_subdevdata(sd);  in imgu_subdev_open()  local
24 struct imgu_media_pipe *imgu_pipe = &imgu->imgu_pipe[imgu_sd->pipe]; in imgu_subdev_open()
58 struct imgu_device *imgu = v4l2_get_subdevdata(sd); in imgu_subdev_s_stream() local
63 struct device *dev = &imgu->pci_dev->dev; in imgu_subdev_s_stream()
66 struct imgu_css_pipe *css_pipe = &imgu->css.pipes[pipe]; in imgu_subdev_s_stream()
67 struct imgu_media_pipe *imgu_pipe = &imgu->imgu_pipe[pipe]; in imgu_subdev_s_stream()
86 node = imgu_map_node(imgu, i); in imgu_subdev_s_stream()
110 r = imgu_css_fmt_set(&imgu->css, fmts, rects, pipe); in imgu_subdev_s_stream()
126 struct imgu_device *imgu = v4l2_get_subdevdata(sd); in imgu_subdev_get_fmt() local
135 imgu_pipe = &imgu->imgu_pipe[pipe]; in imgu_subdev_get_fmt()
151 struct imgu_device *imgu = v4l2_get_subdevdata(sd); in imgu_subdev_set_fmt() local
159 dev_dbg(&imgu->pci_dev->dev, "set subdev %u pad %u fmt to [%ux%u]", in imgu_subdev_set_fmt()
162 imgu_pipe = &imgu->imgu_pipe[pipe]; in imgu_subdev_set_fmt()
241 struct imgu_device *imgu = v4l2_get_subdevdata(sd); in imgu_subdev_set_selection() local
246 dev_dbg(&imgu->pci_dev->dev, in imgu_subdev_set_selection()
280 struct imgu_device *imgu = v4l2_get_subdevdata(sd); in imgu_link_setup() local
289 dev_dbg(&imgu->pci_dev->dev, "pipe %u pad %u is %s", pipe, pad, in imgu_link_setup()
292 imgu_pipe = &imgu->imgu_pipe[pipe]; in imgu_link_setup()
300 __set_bit(pipe, imgu->css.enabled_pipes); in imgu_link_setup()
302 __clear_bit(pipe, imgu->css.enabled_pipes); in imgu_link_setup()
304 dev_dbg(&imgu->pci_dev->dev, "pipe %u is %s", pipe, in imgu_link_setup()
315 struct imgu_device *imgu = vb2_get_drv_priv(vb->vb2_queue); in imgu_vb2_buf_init() local
325 return imgu_dmamap_map_sg(imgu, sg->sgl, sg->nents, &buf->map); in imgu_vb2_buf_init()
331 struct imgu_device *imgu = vb2_get_drv_priv(vb->vb2_queue); in imgu_vb2_buf_cleanup() local
341 imgu_dmamap_unmap(imgu, &buf->map); in imgu_vb2_buf_cleanup()
347 struct imgu_device *imgu = vb2_get_drv_priv(vb->vb2_queue); in imgu_vb2_buf_queue() local
363 dev_err(&imgu->pci_dev->dev, "invalid data size for params."); in imgu_vb2_buf_queue()
368 mutex_lock(&imgu->lock); in imgu_vb2_buf_queue()
373 mutex_unlock(&imgu->lock); in imgu_vb2_buf_queue()
377 mutex_lock(&imgu->streaming_lock); in imgu_vb2_buf_queue()
378 if (imgu->streaming) in imgu_vb2_buf_queue()
379 imgu_queue_buffers(imgu, false, node->pipe); in imgu_vb2_buf_queue()
380 mutex_unlock(&imgu->streaming_lock); in imgu_vb2_buf_queue()
382 dev_dbg(&imgu->pci_dev->dev, "%s for pipe %u node %u", __func__, in imgu_vb2_buf_queue()
392 struct imgu_device *imgu = vb2_get_drv_priv(vq); in imgu_vb2_queue_setup() local
399 alloc_devs[0] = &imgu->pci_dev->dev; in imgu_vb2_queue_setup()
423 static bool imgu_all_nodes_streaming(struct imgu_device *imgu, in imgu_all_nodes_streaming() argument
428 struct device *dev = &imgu->pci_dev->dev; in imgu_all_nodes_streaming()
431 if (!test_bit(pipe, imgu->css.enabled_pipes)) { in imgu_all_nodes_streaming()
432 dev_warn(&imgu->pci_dev->dev, in imgu_all_nodes_streaming()
437 for_each_set_bit(p, imgu->css.enabled_pipes, IMGU_MAX_PIPE_NUM) { in imgu_all_nodes_streaming()
439 node = &imgu->imgu_pipe[p].nodes[i]; in imgu_all_nodes_streaming()
452 static void imgu_return_all_buffers(struct imgu_device *imgu, in imgu_return_all_buffers() argument
459 mutex_lock(&imgu->lock); in imgu_return_all_buffers()
464 mutex_unlock(&imgu->lock); in imgu_return_all_buffers()
470 struct imgu_device *imgu = vb2_get_drv_priv(vq); in imgu_vb2_start_streaming() local
471 struct device *dev = &imgu->pci_dev->dev; in imgu_vb2_start_streaming()
480 mutex_lock(&imgu->streaming_lock); in imgu_vb2_start_streaming()
481 if (imgu->streaming) { in imgu_vb2_start_streaming()
483 mutex_unlock(&imgu->streaming_lock); in imgu_vb2_start_streaming()
486 mutex_unlock(&imgu->streaming_lock); in imgu_vb2_start_streaming()
495 imgu_pipe = &imgu->imgu_pipe[pipe]; in imgu_vb2_start_streaming()
501 if (!imgu_all_nodes_streaming(imgu, node)) in imgu_vb2_start_streaming()
504 for_each_set_bit(pipe, imgu->css.enabled_pipes, IMGU_MAX_PIPE_NUM) { in imgu_vb2_start_streaming()
505 r = v4l2_subdev_call(&imgu->imgu_pipe[pipe].imgu_sd.subdev, in imgu_vb2_start_streaming()
513 mutex_lock(&imgu->streaming_lock); in imgu_vb2_start_streaming()
514 r = imgu_s_stream(imgu, true); in imgu_vb2_start_streaming()
516 imgu->streaming = true; in imgu_vb2_start_streaming()
517 mutex_unlock(&imgu->streaming_lock); in imgu_vb2_start_streaming()
524 imgu_return_all_buffers(imgu, node, VB2_BUF_STATE_QUEUED); in imgu_vb2_start_streaming()
532 struct imgu_device *imgu = vb2_get_drv_priv(vq); in imgu_vb2_stop_streaming() local
533 struct device *dev = &imgu->pci_dev->dev; in imgu_vb2_stop_streaming()
543 imgu_pipe = &imgu->imgu_pipe[pipe]; in imgu_vb2_stop_streaming()
546 dev_err(&imgu->pci_dev->dev, in imgu_vb2_stop_streaming()
549 mutex_lock(&imgu->streaming_lock); in imgu_vb2_stop_streaming()
551 if (imgu->streaming && imgu_all_nodes_streaming(imgu, node)) { in imgu_vb2_stop_streaming()
554 r = imgu_s_stream(imgu, false); in imgu_vb2_stop_streaming()
556 imgu->streaming = false; in imgu_vb2_stop_streaming()
559 imgu_return_all_buffers(imgu, node, VB2_BUF_STATE_ERROR); in imgu_vb2_stop_streaming()
560 mutex_unlock(&imgu->streaming_lock); in imgu_vb2_stop_streaming()
604 struct imgu_device *imgu = video_drvdata(file); in imgu_vidioc_querycap() local
609 pci_name(imgu->pci_dev)); in imgu_vidioc_querycap()
670 static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node, in imgu_fmt() argument
673 struct device *dev = &imgu->pci_dev->dev; in imgu_fmt()
679 struct imgu_css_pipe *css_pipe = &imgu->css.pipes[pipe]; in imgu_fmt()
680 struct imgu_media_pipe *imgu_pipe = &imgu->imgu_pipe[pipe]; in imgu_fmt()
701 unsigned int inode = imgu_map_node(imgu, i); in imgu_fmt()
753 ret = imgu_css_fmt_try(&imgu->css, fmts, rects, pipe); in imgu_fmt()
755 ret = imgu_css_fmt_set(&imgu->css, fmts, rects, pipe); in imgu_fmt()
798 struct imgu_device *imgu = video_drvdata(file); in imgu_vidioc_try_fmt() local
799 struct device *dev = &imgu->pci_dev->dev; in imgu_vidioc_try_fmt()
811 return imgu_fmt(imgu, node->pipe, node->id, f, true); in imgu_vidioc_try_fmt()
816 struct imgu_device *imgu = video_drvdata(file); in imgu_vidioc_s_fmt() local
817 struct device *dev = &imgu->pci_dev->dev; in imgu_vidioc_s_fmt()
829 return imgu_fmt(imgu, node->pipe, node->id, f, false); in imgu_vidioc_s_fmt()
989 struct imgu_device *imgu = v4l2_get_subdevdata(&imgu_sd->subdev); in imgu_sd_s_ctrl() local
990 struct device *dev = &imgu->pci_dev->dev; in imgu_sd_s_ctrl()
1063 static int imgu_v4l2_subdev_register(struct imgu_device *imgu, in imgu_v4l2_subdev_register() argument
1069 struct imgu_media_pipe *imgu_pipe = &imgu->imgu_pipe[pipe]; in imgu_v4l2_subdev_register()
1080 dev_err(&imgu->pci_dev->dev, in imgu_v4l2_subdev_register()
1093 v4l2_set_subdevdata(&imgu_sd->subdev, imgu); in imgu_v4l2_subdev_register()
1100 dev_err(&imgu->pci_dev->dev, in imgu_v4l2_subdev_register()
1104 r = v4l2_device_register_subdev(&imgu->v4l2_dev, &imgu_sd->subdev); in imgu_v4l2_subdev_register()
1106 dev_err(&imgu->pci_dev->dev, in imgu_v4l2_subdev_register()
1121 static int imgu_v4l2_node_setup(struct imgu_device *imgu, unsigned int pipe, in imgu_v4l2_node_setup() argument
1128 struct device *dev = &imgu->pci_dev->dev; in imgu_v4l2_node_setup()
1129 struct imgu_media_pipe *imgu_pipe = &imgu->imgu_pipe[pipe]; in imgu_v4l2_node_setup()
1195 if (imgu->buf_struct_size <= 0) in imgu_v4l2_node_setup()
1196 imgu->buf_struct_size = in imgu_v4l2_node_setup()
1198 vbq->buf_struct_size = imgu->buf_struct_size; in imgu_v4l2_node_setup()
1202 vbq->drv_priv = imgu; in imgu_v4l2_node_setup()
1217 vdev->v4l2_dev = &imgu->v4l2_dev; in imgu_v4l2_node_setup()
1220 video_set_drvdata(vdev, imgu); in imgu_v4l2_node_setup()
1253 static void imgu_v4l2_nodes_cleanup_pipe(struct imgu_device *imgu, in imgu_v4l2_nodes_cleanup_pipe() argument
1257 struct imgu_media_pipe *imgu_pipe = &imgu->imgu_pipe[pipe]; in imgu_v4l2_nodes_cleanup_pipe()
1266 static int imgu_v4l2_nodes_setup_pipe(struct imgu_device *imgu, int pipe) in imgu_v4l2_nodes_setup_pipe() argument
1271 int r = imgu_v4l2_node_setup(imgu, pipe, i); in imgu_v4l2_nodes_setup_pipe()
1274 imgu_v4l2_nodes_cleanup_pipe(imgu, pipe, i); in imgu_v4l2_nodes_setup_pipe()
1281 static void imgu_v4l2_subdev_cleanup(struct imgu_device *imgu, unsigned int i) in imgu_v4l2_subdev_cleanup() argument
1283 struct imgu_media_pipe *imgu_pipe = &imgu->imgu_pipe[i]; in imgu_v4l2_subdev_cleanup()
1290 static void imgu_v4l2_cleanup_pipes(struct imgu_device *imgu, unsigned int pipe) in imgu_v4l2_cleanup_pipes() argument
1295 imgu_v4l2_nodes_cleanup_pipe(imgu, i, IMGU_NODE_NUM); in imgu_v4l2_cleanup_pipes()
1296 imgu_v4l2_subdev_cleanup(imgu, i); in imgu_v4l2_cleanup_pipes()
1300 static int imgu_v4l2_register_pipes(struct imgu_device *imgu) in imgu_v4l2_register_pipes() argument
1306 imgu_pipe = &imgu->imgu_pipe[i]; in imgu_v4l2_register_pipes()
1307 r = imgu_v4l2_subdev_register(imgu, &imgu_pipe->imgu_sd, i); in imgu_v4l2_register_pipes()
1309 dev_err(&imgu->pci_dev->dev, in imgu_v4l2_register_pipes()
1313 r = imgu_v4l2_nodes_setup_pipe(imgu, i); in imgu_v4l2_register_pipes()
1315 imgu_v4l2_subdev_cleanup(imgu, i); in imgu_v4l2_register_pipes()
1323 imgu_v4l2_cleanup_pipes(imgu, i); in imgu_v4l2_register_pipes()
1327 int imgu_v4l2_register(struct imgu_device *imgu) in imgu_v4l2_register() argument
1332 imgu->streaming = false; in imgu_v4l2_register()
1335 media_device_pci_init(&imgu->media_dev, imgu->pci_dev, IMGU_NAME); in imgu_v4l2_register()
1338 imgu->v4l2_dev.mdev = &imgu->media_dev; in imgu_v4l2_register()
1339 imgu->v4l2_dev.ctrl_handler = NULL; in imgu_v4l2_register()
1340 r = v4l2_device_register(&imgu->pci_dev->dev, &imgu->v4l2_dev); in imgu_v4l2_register()
1342 dev_err(&imgu->pci_dev->dev, in imgu_v4l2_register()
1347 r = imgu_v4l2_register_pipes(imgu); in imgu_v4l2_register()
1349 dev_err(&imgu->pci_dev->dev, in imgu_v4l2_register()
1354 r = v4l2_device_register_subdev_nodes(&imgu->v4l2_dev); in imgu_v4l2_register()
1356 dev_err(&imgu->pci_dev->dev, in imgu_v4l2_register()
1361 r = media_device_register(&imgu->media_dev); in imgu_v4l2_register()
1363 dev_err(&imgu->pci_dev->dev, in imgu_v4l2_register()
1371 imgu_v4l2_cleanup_pipes(imgu, IMGU_MAX_PIPE_NUM); in imgu_v4l2_register()
1373 v4l2_device_unregister(&imgu->v4l2_dev); in imgu_v4l2_register()
1375 media_device_cleanup(&imgu->media_dev); in imgu_v4l2_register()
1380 int imgu_v4l2_unregister(struct imgu_device *imgu) in imgu_v4l2_unregister() argument
1382 media_device_unregister(&imgu->media_dev); in imgu_v4l2_unregister()
1383 imgu_v4l2_cleanup_pipes(imgu, IMGU_MAX_PIPE_NUM); in imgu_v4l2_unregister()
1384 v4l2_device_unregister(&imgu->v4l2_dev); in imgu_v4l2_unregister()
1385 media_device_cleanup(&imgu->media_dev); in imgu_v4l2_unregister()