]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[media] coda: call SEQ_END when the first queue is stopped
authorPhilipp Zabel <p.zabel@pengutronix.de>
Tue, 24 Mar 2015 17:30:56 +0000 (14:30 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Fri, 10 Apr 2015 13:10:21 +0000 (10:10 -0300)
This allows to stop and restart the output queue to start a new sequence
while keeping the capture queue running. Before, sequence end would only
be issued if both output and capture queue were stopped and the sequence
start issued when reenabling the output queue would fail.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/platform/coda/coda-common.c

index 7dfc86efc055231871f0ce4570c64b0f347f6761..c8811b7fa13776ace5c52e7816c9cd511e7b39d9 100644 (file)
@@ -1339,6 +1339,9 @@ static void coda_stop_streaming(struct vb2_queue *q)
        struct coda_ctx *ctx = vb2_get_drv_priv(q);
        struct coda_dev *dev = ctx->dev;
        struct vb2_buffer *buf;
+       bool stop;
+
+       stop = ctx->streamon_out && ctx->streamon_cap;
 
        if (q->type == V4L2_BUF_TYPE_VIDEO_OUTPUT) {
                v4l2_dbg(1, coda_debug, &dev->v4l2_dev,
@@ -1363,7 +1366,7 @@ static void coda_stop_streaming(struct vb2_queue *q)
                        v4l2_m2m_buf_done(buf, VB2_BUF_STATE_ERROR);
        }
 
-       if (!ctx->streamon_out && !ctx->streamon_cap) {
+       if (stop) {
                struct coda_buffer_meta *meta;
 
                if (ctx->ops->seq_end_work) {