]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
media: vicodec: use new v4l2_m2m_ioctl_try_en/decoder_cmd funcs
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Tue, 28 May 2019 08:34:37 +0000 (04:34 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Wed, 5 Jun 2019 12:50:41 +0000 (08:50 -0400)
Use the new helper functions for the try_de/decoder_cmd ioctls.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/vicodec/vicodec-core.c

index 03acdf86176e0bda066d69c08dd98554bdbe8e81..72c56756e45b4916f194176414c8200645234396 100644 (file)
@@ -1188,25 +1188,13 @@ static void vicodec_mark_last_buf(struct vicodec_ctx *ctx)
        spin_unlock(ctx->lock);
 }
 
-static int vicodec_try_encoder_cmd(struct file *file, void *fh,
-                               struct v4l2_encoder_cmd *ec)
-{
-       if (ec->cmd != V4L2_ENC_CMD_STOP)
-               return -EINVAL;
-
-       if (ec->flags & V4L2_ENC_CMD_STOP_AT_GOP_END)
-               return -EINVAL;
-
-       return 0;
-}
-
 static int vicodec_encoder_cmd(struct file *file, void *fh,
                            struct v4l2_encoder_cmd *ec)
 {
        struct vicodec_ctx *ctx = file2ctx(file);
        int ret;
 
-       ret = vicodec_try_encoder_cmd(file, fh, ec);
+       ret = v4l2_m2m_ioctl_try_encoder_cmd(file, fh, ec);
        if (ret < 0)
                return ret;
 
@@ -1214,28 +1202,13 @@ static int vicodec_encoder_cmd(struct file *file, void *fh,
        return 0;
 }
 
-static int vicodec_try_decoder_cmd(struct file *file, void *fh,
-                               struct v4l2_decoder_cmd *dc)
-{
-       if (dc->cmd != V4L2_DEC_CMD_STOP)
-               return -EINVAL;
-
-       if (dc->flags & V4L2_DEC_CMD_STOP_TO_BLACK)
-               return -EINVAL;
-
-       if (!(dc->flags & V4L2_DEC_CMD_STOP_IMMEDIATELY) && (dc->stop.pts != 0))
-               return -EINVAL;
-
-       return 0;
-}
-
 static int vicodec_decoder_cmd(struct file *file, void *fh,
                            struct v4l2_decoder_cmd *dc)
 {
        struct vicodec_ctx *ctx = file2ctx(file);
        int ret;
 
-       ret = vicodec_try_decoder_cmd(file, fh, dc);
+       ret = v4l2_m2m_ioctl_try_decoder_cmd(file, fh, dc);
        if (ret < 0)
                return ret;
 
@@ -1324,9 +1297,9 @@ static const struct v4l2_ioctl_ops vicodec_ioctl_ops = {
        .vidioc_g_selection     = vidioc_g_selection,
        .vidioc_s_selection     = vidioc_s_selection,
 
-       .vidioc_try_encoder_cmd = vicodec_try_encoder_cmd,
+       .vidioc_try_encoder_cmd = v4l2_m2m_ioctl_try_encoder_cmd,
        .vidioc_encoder_cmd     = vicodec_encoder_cmd,
-       .vidioc_try_decoder_cmd = vicodec_try_decoder_cmd,
+       .vidioc_try_decoder_cmd = v4l2_m2m_ioctl_try_decoder_cmd,
        .vidioc_decoder_cmd     = vicodec_decoder_cmd,
        .vidioc_enum_framesizes = vicodec_enum_framesizes,