]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00235665: mxc_v4l2_capture: add YV12 format support in camera driver
authorSheng Nan <b38800@freescale.com>
Wed, 5 Dec 2012 02:22:35 +0000 (10:22 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:35:47 +0000 (08:35 +0200)
Android CTS verifier have a must requirement for YV12 format. Since IPUv3
common driver has supported IPU_PIX_FMT_YVU420P pixel format, add the
support of YV12 format in mxc_v4l2_capture.

Signed-off-by: Sheng Nan <b38800@freescale.com>
drivers/media/video/mxc/capture/ipu_csi_enc.c
drivers/media/video/mxc/capture/ipu_prp_enc.c
drivers/media/video/mxc/capture/mxc_v4l2_capture.c

index 872598bd102d579aa7d6d1f9d17941eea3a31939..2c8d8d01a971da60188bc8932329d035466a15e3 100644 (file)
@@ -104,6 +104,8 @@ static int csi_enc_setup(cam_data *cam)
 
        if (cam->v2f.fmt.pix.pixelformat == V4L2_PIX_FMT_YUV420)
                pixel_fmt = IPU_PIX_FMT_YUV420P;
+       else if (cam->v2f.fmt.pix.pixelformat == V4L2_PIX_FMT_YVU420)
+               pixel_fmt = IPU_PIX_FMT_YVU420P;
        else if (cam->v2f.fmt.pix.pixelformat == V4L2_PIX_FMT_YUV422P)
                pixel_fmt = IPU_PIX_FMT_YUV422P;
        else if (cam->v2f.fmt.pix.pixelformat == V4L2_PIX_FMT_UYVY)
index a3c90d53f2eb6ccef846f6c46c3e21db278a4d5a..e24b1b086d684de2afc2dae22c1ed4d8e21d7d5a 100644 (file)
@@ -99,6 +99,9 @@ static int prp_enc_setup(cam_data *cam)
        if (cam->v2f.fmt.pix.pixelformat == V4L2_PIX_FMT_YUV420) {
                enc.csi_prp_enc_mem.out_pixel_fmt = IPU_PIX_FMT_YUV420P;
                pr_info("YUV420\n");
+       } else if (cam->v2f.fmt.pix.pixelformat == V4L2_PIX_FMT_YVU420) {
+               enc.csi_prp_enc_mem.out_pixel_fmt = IPU_PIX_FMT_YVU420P;
+               pr_info("YVU420\n");
        } else if (cam->v2f.fmt.pix.pixelformat == V4L2_PIX_FMT_YUV422P) {
                enc.csi_prp_enc_mem.out_pixel_fmt = IPU_PIX_FMT_YUV422P;
                pr_info("YUV422P\n");
index 4fd89b0335bfaff8112f746c691bbdb000cc8b20..3e9346d356cdf94de50c72ed9c5a58ecd0b20c6c 100644 (file)
@@ -366,6 +366,7 @@ static inline int valid_mode(u32 palette)
                (palette == V4L2_PIX_FMT_UYVY) ||
                (palette == V4L2_PIX_FMT_YUYV) ||
                (palette == V4L2_PIX_FMT_YUV420) ||
+               (palette == V4L2_PIX_FMT_YVU420) ||
                (palette == V4L2_PIX_FMT_NV12));
 }
 
@@ -881,6 +882,7 @@ static int mxc_v4l2_s_fmt(cam_data *cam, struct v4l2_format *f)
                        bytesperline = f->fmt.pix.width * 2;
                        break;
                case V4L2_PIX_FMT_YUV420:
+               case V4L2_PIX_FMT_YVU420:
                        size = f->fmt.pix.width * f->fmt.pix.height * 3 / 2;
                        bytesperline = f->fmt.pix.width;
                        break;