summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Zabel <p.zabel@pengutronix.de>2015-03-24 14:30:56 -0300
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2015-04-10 10:10:21 -0300
commit5c76c2c3e2783886975ff536c50d9c446e0ecb6e (patch)
tree71ba900e2f3acad5ddb55181a200db8f0d7b28da
parent23b6ee5cd9d99d9d99d92ff923d6971a33dc7b03 (diff)
downloadlinux-stable-5c76c2c3e2783886975ff536c50d9c446e0ecb6e.tar.gz
linux-stable-5c76c2c3e2783886975ff536c50d9c446e0ecb6e.tar.bz2
linux-stable-5c76c2c3e2783886975ff536c50d9c446e0ecb6e.zip
[media] coda: call SEQ_END when the first queue is stopped
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>
-rw-r--r--drivers/media/platform/coda/coda-common.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/media/platform/coda/coda-common.c b/drivers/media/platform/coda/coda-common.c
index 7dfc86efc055..c8811b7fa137 100644
--- a/drivers/media/platform/coda/coda-common.c
+++ b/drivers/media/platform/coda/coda-common.c
@@ -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) {