diff options
author | Tomasz Gorochowik <tgorochowik@antmicro.com> | 2018-05-21 14:51:16 +0200 |
---|---|---|
committer | Max Krummenacher <max.krummenacher@toradex.com> | 2018-10-11 19:40:25 +0200 |
commit | 7fb7e36bfc525da2d3834e303db3230b395f35ba (patch) | |
tree | 2b690a096baa132ddfb63221fdb237b72933435a | |
parent | bfdbb433972d838171ed4a8b8c51e4fd3cc8d6cf (diff) |
imx8: csi: Recognize all yuv formats as yuv
Make the get_src_fmt callback treat all yuv formats equally. This is
needed to recognize the actual source format as yuv and enable yuv->rgb
conversion in the image processing unit of iMX8.
(cherry picked from commit 35711c32b6947d880f94bc5467acc842c0b3e96c)
Conflicts:
drivers/media/platform/imx8/mxc-isi-cap.c
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit 7f4707774bc1c4f737bfcfab82388c44b3b7bf68)
-rw-r--r-- | drivers/media/platform/imx8/mxc-isi-cap.c | 48 |
1 files changed, 42 insertions, 6 deletions
diff --git a/drivers/media/platform/imx8/mxc-isi-cap.c b/drivers/media/platform/imx8/mxc-isi-cap.c index 3fe5655ab5bb..ef0914d003a8 100644 --- a/drivers/media/platform/imx8/mxc-isi-cap.c +++ b/drivers/media/platform/imx8/mxc-isi-cap.c @@ -172,14 +172,50 @@ struct mxc_isi_fmt *mxc_isi_get_src_fmt(struct v4l2_subdev_format *sd_fmt) { u32 index; - /* two fmt RGB32 and YUV444 from pixellink */ - if (sd_fmt->format.code == MEDIA_BUS_FMT_YUYV8_1X16 || - sd_fmt->format.code == MEDIA_BUS_FMT_YVYU8_2X8 || - sd_fmt->format.code == MEDIA_BUS_FMT_AYUV8_1X32 || - sd_fmt->format.code == MEDIA_BUS_FMT_UYVY8_2X8) + /* Treat all yuv fomats equally */ + switch (sd_fmt->format.code) { + case MEDIA_BUS_FMT_Y8_1X8: + case MEDIA_BUS_FMT_UV8_1X8: + case MEDIA_BUS_FMT_UYVY8_1_5X8: + case MEDIA_BUS_FMT_VYUY8_1_5X8: + case MEDIA_BUS_FMT_YUYV8_1_5X8: + case MEDIA_BUS_FMT_YVYU8_1_5X8: + case MEDIA_BUS_FMT_UYVY8_2X8: + case MEDIA_BUS_FMT_VYUY8_2X8: + case MEDIA_BUS_FMT_YUYV8_2X8: + case MEDIA_BUS_FMT_YVYU8_2X8: + case MEDIA_BUS_FMT_Y10_1X10: + case MEDIA_BUS_FMT_UYVY10_2X10: + case MEDIA_BUS_FMT_VYUY10_2X10: + case MEDIA_BUS_FMT_YUYV10_2X10: + case MEDIA_BUS_FMT_YVYU10_2X10: + case MEDIA_BUS_FMT_Y12_1X12: + case MEDIA_BUS_FMT_UYVY12_2X12: + case MEDIA_BUS_FMT_VYUY12_2X12: + case MEDIA_BUS_FMT_YUYV12_2X12: + case MEDIA_BUS_FMT_YVYU12_2X12: + case MEDIA_BUS_FMT_UYVY8_1X16: + case MEDIA_BUS_FMT_VYUY8_1X16: + case MEDIA_BUS_FMT_YUYV8_1X16: + case MEDIA_BUS_FMT_YVYU8_1X16: + case MEDIA_BUS_FMT_YDYUYDYV8_1X16: + case MEDIA_BUS_FMT_UYVY10_1X20: + case MEDIA_BUS_FMT_VYUY10_1X20: + case MEDIA_BUS_FMT_YUYV10_1X20: + case MEDIA_BUS_FMT_YVYU10_1X20: + case MEDIA_BUS_FMT_VUY8_1X24: + case MEDIA_BUS_FMT_YUV8_1X24: + case MEDIA_BUS_FMT_UYVY12_1X24: + case MEDIA_BUS_FMT_VYUY12_1X24: + case MEDIA_BUS_FMT_YUYV12_1X24: + case MEDIA_BUS_FMT_YVYU12_1X24: + case MEDIA_BUS_FMT_YUV10_1X30: + case MEDIA_BUS_FMT_AYUV8_1X32: index = 1; - else + break; + default: index = 0; + } return &mxc_isi_src_formats[index]; } |