Quellcode durchsuchen

[media] V4L: soc-camera: start stream after queueing the buffers

Some camera systems have strong requirement for capturing
an exact number of frames after starting the stream and do
not tolerate losing captured frames. By starting the stream
after the videobuf has queued the buffers, we ensure that
no frame will be lost.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Anatolij Gustschin vor 15 Jahren
Ursprung
Commit
7fdbd85bce
1 geänderte Dateien mit 2 neuen und 2 gelöschten Zeilen
  1. 2 2
      drivers/media/video/soc_camera.c

+ 2 - 2
drivers/media/video/soc_camera.c

@@ -655,10 +655,10 @@ static int soc_camera_streamon(struct file *file, void *priv,
 	if (icd->streamer != file)
 	if (icd->streamer != file)
 		return -EBUSY;
 		return -EBUSY;
 
 
-	v4l2_subdev_call(sd, video, s_stream, 1);
-
 	/* This calls buf_queue from host driver's videobuf_queue_ops */
 	/* This calls buf_queue from host driver's videobuf_queue_ops */
 	ret = videobuf_streamon(&icd->vb_vidq);
 	ret = videobuf_streamon(&icd->vb_vidq);
+	if (!ret)
+		v4l2_subdev_call(sd, video, s_stream, 1);
 
 
 	return ret;
 	return ret;
 }
 }