case V4L2_PIX_FMT_YUV420:
        case V4L2_PIX_FMT_YUV422P:
        case V4L2_PIX_FMT_YUYV:
+       case V4L2_PIX_FMT_UYVY:
+       case V4L2_PIX_FMT_VYUY:
                ret = 0;
                yuv = true;
                break;
                break;
        case V4L2_PIX_FMT_GREY:
        case V4L2_PIX_FMT_Y10:
+       case V4L2_PIX_FMT_Y16:
                ret = 0;
                grey = true;
                break;
  */
 static int isc_try_configure_rlp_dma(struct isc_device *isc, bool direct_dump)
 {
+       isc->try_config.rlp_cfg_mode = 0;
+
        switch (isc->try_config.fourcc) {
        case V4L2_PIX_FMT_SBGGR8:
        case V4L2_PIX_FMT_SGBRG8:
                isc->try_config.bpp = 16;
                break;
        case V4L2_PIX_FMT_YUYV:
-               isc->try_config.rlp_cfg_mode = ISC_RLP_CFG_MODE_YYCC;
+               isc->try_config.rlp_cfg_mode = ISC_RLP_CFG_MODE_YCYC | ISC_RLP_CFG_YMODE_YUYV;
+               isc->try_config.dcfg_imode = ISC_DCFG_IMODE_PACKED32;
+               isc->try_config.dctrl_dview = ISC_DCTRL_DVIEW_PACKED;
+               isc->try_config.bpp = 16;
+               break;
+       case V4L2_PIX_FMT_UYVY:
+               isc->try_config.rlp_cfg_mode = ISC_RLP_CFG_MODE_YCYC | ISC_RLP_CFG_YMODE_UYVY;
+               isc->try_config.dcfg_imode = ISC_DCFG_IMODE_PACKED32;
+               isc->try_config.dctrl_dview = ISC_DCTRL_DVIEW_PACKED;
+               isc->try_config.bpp = 16;
+               break;
+       case V4L2_PIX_FMT_VYUY:
+               isc->try_config.rlp_cfg_mode = ISC_RLP_CFG_MODE_YCYC | ISC_RLP_CFG_YMODE_VYUY;
                isc->try_config.dcfg_imode = ISC_DCFG_IMODE_PACKED32;
                isc->try_config.dctrl_dview = ISC_DCTRL_DVIEW_PACKED;
                isc->try_config.bpp = 16;
                isc->try_config.dctrl_dview = ISC_DCTRL_DVIEW_PACKED;
                isc->try_config.bpp = 8;
                break;
+       case V4L2_PIX_FMT_Y16:
+               isc->try_config.rlp_cfg_mode = ISC_RLP_CFG_MODE_DATY10 | ISC_RLP_CFG_LSH;
+               fallthrough;
        case V4L2_PIX_FMT_Y10:
-               isc->try_config.rlp_cfg_mode = ISC_RLP_CFG_MODE_DATY10;
+               isc->try_config.rlp_cfg_mode |= ISC_RLP_CFG_MODE_DATY10;
                isc->try_config.dcfg_imode = ISC_DCFG_IMODE_PACKED16;
                isc->try_config.dctrl_dview = ISC_DCTRL_DVIEW_PACKED;
                isc->try_config.bpp = 16;
                /* if sensor format is RAW, we convert inside ISC */
                if (ISC_IS_FORMAT_RAW(isc->try_config.sd_format->mbus_code)) {
                        isc->try_config.bits_pipeline = CFA_ENABLE |
-                               WB_ENABLE | GAM_ENABLES;
+                               WB_ENABLE | GAM_ENABLES | DPC_BLCENABLE |
+                               CC_ENABLE;
                } else {
                        isc->try_config.bits_pipeline = 0x0;
                }
                /* if sensor format is RAW, we convert inside ISC */
                if (ISC_IS_FORMAT_RAW(isc->try_config.sd_format->mbus_code)) {
                        isc->try_config.bits_pipeline = CFA_ENABLE |
-                               CSC_ENABLE | WB_ENABLE | GAM_ENABLES |
-                               SUB420_ENABLE | SUB422_ENABLE | CBC_ENABLE;
+                               CSC_ENABLE | GAM_ENABLES | WB_ENABLE |
+                               SUB420_ENABLE | SUB422_ENABLE | CBC_ENABLE |
+                               DPC_BLCENABLE;
                } else {
                        isc->try_config.bits_pipeline = 0x0;
                }
                if (ISC_IS_FORMAT_RAW(isc->try_config.sd_format->mbus_code)) {
                        isc->try_config.bits_pipeline = CFA_ENABLE |
                                CSC_ENABLE | WB_ENABLE | GAM_ENABLES |
-                               SUB422_ENABLE | CBC_ENABLE;
+                               SUB422_ENABLE | CBC_ENABLE | DPC_BLCENABLE;
                } else {
                        isc->try_config.bits_pipeline = 0x0;
                }
                break;
        case V4L2_PIX_FMT_YUYV:
+       case V4L2_PIX_FMT_UYVY:
+       case V4L2_PIX_FMT_VYUY:
                /* if sensor format is RAW, we convert inside ISC */
                if (ISC_IS_FORMAT_RAW(isc->try_config.sd_format->mbus_code)) {
                        isc->try_config.bits_pipeline = CFA_ENABLE |
                                CSC_ENABLE | WB_ENABLE | GAM_ENABLES |
-                               SUB422_ENABLE | CBC_ENABLE;
+                               SUB422_ENABLE | CBC_ENABLE | DPC_BLCENABLE;
                } else {
                        isc->try_config.bits_pipeline = 0x0;
                }
                break;
        case V4L2_PIX_FMT_GREY:
-               if (ISC_IS_FORMAT_RAW(isc->try_config.sd_format->mbus_code)) {
+       case V4L2_PIX_FMT_Y16:
                /* if sensor format is RAW, we convert inside ISC */
+               if (ISC_IS_FORMAT_RAW(isc->try_config.sd_format->mbus_code)) {
                        isc->try_config.bits_pipeline = CFA_ENABLE |
                                CSC_ENABLE | WB_ENABLE | GAM_ENABLES |
-                               CBC_ENABLE;
+                               CBC_ENABLE | DPC_BLCENABLE;
                } else {
                        isc->try_config.bits_pipeline = 0x0;
                }
                break;
        default:
-               isc->try_config.bits_pipeline = 0x0;
+               if (ISC_IS_FORMAT_RAW(isc->try_config.sd_format->mbus_code))
+                       isc->try_config.bits_pipeline = WB_ENABLE | DPC_BLCENABLE;
+               else
+                       isc->try_config.bits_pipeline = 0x0;
        }
 
        /* Tune the pipeline to product specific */