From 1324079a1c4aefbfb705a41af3feaa78571f197c Mon Sep 17 00:00:00 2001 From: Tomasz Gorochowik Date: Mon, 21 May 2018 14:51:16 +0200 Subject: 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 (cherry picked from commit 7f4707774bc1c4f737bfcfab82388c44b3b7bf68) (cherry picked from commit 7fb7e36bfc525da2d3834e303db3230b395f35ba) (cherry picked from commit 6be5a17562e2adf3d3dddee86c07cb6f3435e222) --- drivers/media/platform/imx8/mxc-isi-cap.c | 49 ++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 7 deletions(-) (limited to 'drivers') diff --git a/drivers/media/platform/imx8/mxc-isi-cap.c b/drivers/media/platform/imx8/mxc-isi-cap.c index eab0864b7a03..db04e8d54b05 100644 --- a/drivers/media/platform/imx8/mxc-isi-cap.c +++ b/drivers/media/platform/imx8/mxc-isi-cap.c @@ -161,15 +161,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 || - sd_fmt->format.code == MEDIA_BUS_FMT_YUYV8_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]; } -- cgit v1.2.3