try to enable double pixel mode in the mipi driver as below:
add this in the drivers/media/platform/mxc/capture/mx6s_capture.c
case V4L2_PIX_FMT_UYVY:
case V4L2_PIX_FMT_YUYV:
cr18 |= BIT_MIPI_DATA_FORMAT_YUV422_8B;
+ cr18 |= BIT_MIPI_DOUBLE_CMPNT;
break;
in the drivers/media/platform/mxc/capture/mxc_mipi_csi.c:
mipi_csis_formats[] = {
.fmt_reg = MIPI_CSIS_ISPCFG_FMT_YCBCR422_8BIT,
.data_alignment = 16,
}, {
+ .code = MEDIA_BUS_FMT_UYVY8_2X8,
+ .fmt_reg = MIPI_CSIS_ISPCFG_FMT_YCBCR422_8BIT,
+ .data_alignment = 16,
+ }, {
.code = MEDIA_BUS_FMT_SBGGR8_1X8,
.fmt_reg = MIPI_CSIS_ISPCFG_FMT_RAW8,
.data_alignment = 8,
@@ -486,6 +490,8 @@ static void __mipi_csis_set_format(struct csi_state *state)
/* Color format */
val = mipi_csis_read(state, MIPI_CSIS_ISPCONFIG_CH0);
val = (val & ~MIPI_CSIS_ISPCFG_FMT_MASK) | state->csis_fmt->fmt_reg;
+ val |= MIPI_CSIS_ISPCFG_DOUBLE_CMPNT;
+
mipi_csis_write(state, MIPI_CSIS_ISPCONFIG_CH0, val);