diff options
author | Sandor Yu <R01008@freescale.com> | 2015-06-11 11:15:57 +0800 |
---|---|---|
committer | Sandor Yu <R01008@freescale.com> | 2015-07-23 17:31:35 +0800 |
commit | 1cf1e4a3287c61863cb12352cfa67ac8277d0196 (patch) | |
tree | 71e15773997b72f7a45d8c00dde5b0606d9bdb02 | |
parent | 47266dfeadad4badd62f1a71674aa85fc3ce42b6 (diff) |
MLK-11165: v4l2 pxp: Add RGB32 support to pxp v4l2 output
Add RGB32 support to pxp v4l2 output.
Signed-off-by: Sandor Yu <R01008@freescale.com>
(cherry picked from commit 445781b2375dc60550eb66a2406f0bf50499ddeb)
-rw-r--r-- | drivers/media/platform/mxc/output/mxc_pxp_v4l2.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/media/platform/mxc/output/mxc_pxp_v4l2.c b/drivers/media/platform/mxc/output/mxc_pxp_v4l2.c index 9a4bd44b60bd..12210df07344 100644 --- a/drivers/media/platform/mxc/output/mxc_pxp_v4l2.c +++ b/drivers/media/platform/mxc/output/mxc_pxp_v4l2.c @@ -58,6 +58,11 @@ static int video_nr = -1; /* -1 ==> auto assign */ static struct pxp_data_format pxp_s0_formats[] = { { + .name = "32-bit RGB", + .bpp = 4, + .fourcc = V4L2_PIX_FMT_RGB32, + .colorspace = V4L2_COLORSPACE_SRGB, + }, { .name = "24-bit RGB", .bpp = 4, .fourcc = V4L2_PIX_FMT_RGB24, @@ -104,7 +109,9 @@ static unsigned int v4l2_fmt_to_pxp_fmt(u32 v4l2_pix_fmt) { u32 pxp_fmt = 0; - if (v4l2_pix_fmt == V4L2_PIX_FMT_RGB24) + if (v4l2_pix_fmt == V4L2_PIX_FMT_RGB32) + pxp_fmt = PXP_PIX_FMT_RGB32; + else if (v4l2_pix_fmt == V4L2_PIX_FMT_RGB24) pxp_fmt = PXP_PIX_FMT_RGB24; else if (v4l2_pix_fmt == V4L2_PIX_FMT_RGB565) pxp_fmt = PXP_PIX_FMT_RGB565; @@ -451,7 +458,8 @@ static int pxp_s_output(struct file *file, void *fh, return -EINVAL; /* Output buffer is same format as fbdev */ - if (fmt->pixelformat == V4L2_PIX_FMT_RGB24 || + if (fmt->pixelformat == V4L2_PIX_FMT_RGB32 || + fmt->pixelformat == V4L2_PIX_FMT_RGB24 || fmt->pixelformat == V4L2_PIX_FMT_YUV32) bpp = 4; else @@ -470,7 +478,9 @@ static int pxp_s_output(struct file *file, void *fh, pxp->pxp_conf.out_param.width = fmt->width; pxp->pxp_conf.out_param.height = fmt->height; - if (fmt->pixelformat == V4L2_PIX_FMT_RGB24) + if (fmt->pixelformat == V4L2_PIX_FMT_RGB32) + pxp->pxp_conf.out_param.pixel_fmt = PXP_PIX_FMT_RGB32; + else if (fmt->pixelformat == V4L2_PIX_FMT_RGB24) pxp->pxp_conf.out_param.pixel_fmt = PXP_PIX_FMT_RGB24; else pxp->pxp_conf.out_param.pixel_fmt = PXP_PIX_FMT_RGB565; |