[media] coda: do not enumerate YUYV if VDOA is not available
authorPhilipp Zabel <p.zabel@pengutronix.de>
Thu, 6 Apr 2017 14:03:40 +0000 (11:03 -0300)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Mon, 10 Apr 2017 17:42:45 +0000 (14:42 -0300)
TRY_FMT already disables the YUYV format if the VDOA is not available.
ENUM_FMT must do the same.

Fixes: d40e98c13b3e ("[media] coda: support YUYV output if VDOA is used")

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/platform/coda/coda-common.c

index 95e4648..d523e99 100644 (file)
@@ -390,6 +390,7 @@ static int coda_enum_fmt(struct file *file, void *priv,
 {
        struct video_device *vdev = video_devdata(file);
        const struct coda_video_device *cvd = to_coda_video_device(vdev);
+       struct coda_ctx *ctx = fh_to_ctx(priv);
        const u32 *formats;
 
        if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT)
@@ -402,6 +403,11 @@ static int coda_enum_fmt(struct file *file, void *priv,
        if (f->index >= CODA_MAX_FORMATS || formats[f->index] == 0)
                return -EINVAL;
 
+       /* Skip YUYV if the vdoa is not available */
+       if (!ctx->vdoa && f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE &&
+           formats[f->index] == V4L2_PIX_FMT_YUYV)
+               return -EINVAL;
+
        f->pixelformat = formats[f->index];
 
        return 0;