diff options
author | Nori, Sekhar <nsekhar@ti.com> | 2017-05-26 07:55:27 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2017-06-06 16:49:23 -0300 |
commit | 8946ab3a4cb46abe0113a267857fdb32b05a3f23 (patch) | |
tree | fb3f6de01b493b30daa8bcb16663b1ee8c2077f5 /drivers/media/platform/davinci | |
parent | b14ac545688d8cc4b2b707d71d106799ad476964 (diff) | |
download | op-kernel-dev-8946ab3a4cb46abe0113a267857fdb32b05a3f23.zip op-kernel-dev-8946ab3a4cb46abe0113a267857fdb32b05a3f23.tar.gz |
[media] davinci: vpif_capture: fix default pixel format for BT.656/BT.1120 video
For both BT.656 and BT.1120 video, the pixel format
used by VPIF is Y/CbCr 4:2:2 in semi-planar format
(Luma in one plane and Chroma in another). This
corresponds to NV16 pixel format.
This is documented in section 36.2.3 of OMAP-L138
Technical Reference Manual, SPRUH77A.
The VPIF driver incorrectly sets the default format
to V4L2_PIX_FMT_YUV422P. Fix it.
Reported-by: Alejandro Hernandez <ajhernandez@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Acked-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'drivers/media/platform/davinci')
-rw-r--r-- | drivers/media/platform/davinci/vpif_capture.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/media/platform/davinci/vpif_capture.c b/drivers/media/platform/davinci/vpif_capture.c index 44f7027..128e92d 100644 --- a/drivers/media/platform/davinci/vpif_capture.c +++ b/drivers/media/platform/davinci/vpif_capture.c @@ -513,7 +513,7 @@ static int vpif_update_std_info(struct channel_obj *ch) if (ch->vpifparams.iface.if_type == VPIF_IF_RAW_BAYER) common->fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_SBGGR8; else - common->fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUV422P; + common->fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_NV16; common->fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; @@ -917,8 +917,8 @@ static int vpif_enum_fmt_vid_cap(struct file *file, void *priv, fmt->pixelformat = V4L2_PIX_FMT_SBGGR8; } else { fmt->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - strcpy(fmt->description, "YCbCr4:2:2 YC Planar"); - fmt->pixelformat = V4L2_PIX_FMT_YUV422P; + strcpy(fmt->description, "YCbCr4:2:2 Semi-Planar"); + fmt->pixelformat = V4L2_PIX_FMT_NV16; } return 0; } @@ -946,8 +946,8 @@ static int vpif_try_fmt_vid_cap(struct file *file, void *priv, if (pixfmt->pixelformat != V4L2_PIX_FMT_SBGGR8) pixfmt->pixelformat = V4L2_PIX_FMT_SBGGR8; } else { - if (pixfmt->pixelformat != V4L2_PIX_FMT_YUV422P) - pixfmt->pixelformat = V4L2_PIX_FMT_YUV422P; + if (pixfmt->pixelformat != V4L2_PIX_FMT_NV16) + pixfmt->pixelformat = V4L2_PIX_FMT_NV16; } common->fmt.fmt.pix.pixelformat = pixfmt->pixelformat; |