static int configure_geometry(struct atmel_isi *isi, u32 width,
                        u32 height, u32 code)
 {
-       u32 cfg2, cr;
+       u32 cfg2;
 
+       /* According to sensor's output format to set cfg2 */
        switch (code) {
        /* YUV, including grey */
        case MEDIA_BUS_FMT_Y8_1X8:
-               cr = ISI_CFG2_GRAYSCALE;
+               cfg2 = ISI_CFG2_GRAYSCALE | ISI_CFG2_COL_SPACE_YCbCr;
                break;
        case MEDIA_BUS_FMT_VYUY8_2X8:
-               cr = ISI_CFG2_YCC_SWAP_MODE_3;
+               cfg2 = ISI_CFG2_YCC_SWAP_MODE_3 | ISI_CFG2_COL_SPACE_YCbCr;
                break;
        case MEDIA_BUS_FMT_UYVY8_2X8:
-               cr = ISI_CFG2_YCC_SWAP_MODE_2;
+               cfg2 = ISI_CFG2_YCC_SWAP_MODE_2 | ISI_CFG2_COL_SPACE_YCbCr;
                break;
        case MEDIA_BUS_FMT_YVYU8_2X8:
-               cr = ISI_CFG2_YCC_SWAP_MODE_1;
+               cfg2 = ISI_CFG2_YCC_SWAP_MODE_1 | ISI_CFG2_COL_SPACE_YCbCr;
                break;
        case MEDIA_BUS_FMT_YUYV8_2X8:
-               cr = ISI_CFG2_YCC_SWAP_DEFAULT;
+               cfg2 = ISI_CFG2_YCC_SWAP_DEFAULT | ISI_CFG2_COL_SPACE_YCbCr;
                break;
        /* RGB, TODO */
        default:
        }
 
        isi_writel(isi, ISI_CTRL, ISI_CTRL_DIS);
-
-       cfg2 = isi_readl(isi, ISI_CFG2);
-       /* Set YCC swap mode */
-       cfg2 &= ~ISI_CFG2_YCC_SWAP_MODE_MASK;
-       cfg2 |= cr;
        /* Set width */
-       cfg2 &= ~(ISI_CFG2_IM_HSIZE_MASK);
        cfg2 |= ((width - 1) << ISI_CFG2_IM_HSIZE_OFFSET) &
                        ISI_CFG2_IM_HSIZE_MASK;
        /* Set height */
-       cfg2 &= ~(ISI_CFG2_IM_VSIZE_MASK);
        cfg2 |= ((height - 1) << ISI_CFG2_IM_VSIZE_OFFSET)
                        & ISI_CFG2_IM_VSIZE_MASK;
        isi_writel(isi, ISI_CFG2, cfg2);
 
 
 /* Bitfields in CFG2 */
 #define ISI_CFG2_GRAYSCALE                     (1 << 13)
+#define ISI_CFG2_COL_SPACE_YCbCr               (0 << 15)
+#define ISI_CFG2_COL_SPACE_RGB                 (1 << 15)
 /* Constants for YCC_SWAP(ISI_V2) */
 #define                ISI_CFG2_YCC_SWAP_DEFAULT       (0 << 28)
 #define                ISI_CFG2_YCC_SWAP_MODE_1        (1 << 28)