[media] coda: don't start streaming without queued buffers
authorPhilipp Zabel <p.zabel@pengutronix.de>
Wed, 2 Dec 2015 16:58:53 +0000 (14:58 -0200)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Wed, 23 Dec 2015 16:03:35 +0000 (14:03 -0200)
We could support start streaming with an empty output queue for the
BIT decoders due to the bitstream buffer which could still contain
data at this point, but there is really no reason for userspace to
expect this to work. Simplify the code by disallowing it.

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 22f6ceab8f479e5a19045b0f4076a70c541ae518..6f66a92362ee2f891e1dfe84a80a819d860be1d6 100644 (file)
@@ -1252,6 +1252,9 @@ static int coda_start_streaming(struct vb2_queue *q, unsigned int count)
        struct vb2_v4l2_buffer *buf;
        int ret = 0;
 
+       if (count < 1)
+               return -EINVAL;
+
        q_data_src = get_q_data(ctx, V4L2_BUF_TYPE_VIDEO_OUTPUT);
        if (q->type == V4L2_BUF_TYPE_VIDEO_OUTPUT) {
                if (ctx->inst_type == CODA_INST_DECODER && ctx->use_bit) {
@@ -1264,20 +1267,10 @@ static int coda_start_streaming(struct vb2_queue *q, unsigned int count)
                                ret = -EINVAL;
                                goto err;
                        }
-               } else {
-                       if (count < 1) {
-                               ret = -EINVAL;
-                               goto err;
-                       }
                }
 
                ctx->streamon_out = 1;
        } else {
-               if (count < 1) {
-                       ret = -EINVAL;
-                       goto err;
-               }
-
                ctx->streamon_cap = 1;
        }