const struct vpdma_data_format vpdma_yuv_fmts[] = {
        [VPDMA_DATA_FMT_Y444] = {
+               .type           = VPDMA_DATA_FMT_TYPE_YUV,
                .data_type      = DATA_TYPE_Y444,
                .depth          = 8,
        },
        [VPDMA_DATA_FMT_Y422] = {
+               .type           = VPDMA_DATA_FMT_TYPE_YUV,
                .data_type      = DATA_TYPE_Y422,
                .depth          = 8,
        },
        [VPDMA_DATA_FMT_Y420] = {
+               .type           = VPDMA_DATA_FMT_TYPE_YUV,
                .data_type      = DATA_TYPE_Y420,
                .depth          = 8,
        },
        [VPDMA_DATA_FMT_C444] = {
+               .type           = VPDMA_DATA_FMT_TYPE_YUV,
                .data_type      = DATA_TYPE_C444,
                .depth          = 8,
        },
        [VPDMA_DATA_FMT_C422] = {
+               .type           = VPDMA_DATA_FMT_TYPE_YUV,
                .data_type      = DATA_TYPE_C422,
                .depth          = 8,
        },
        [VPDMA_DATA_FMT_C420] = {
+               .type           = VPDMA_DATA_FMT_TYPE_YUV,
                .data_type      = DATA_TYPE_C420,
                .depth          = 4,
        },
        [VPDMA_DATA_FMT_YC422] = {
+               .type           = VPDMA_DATA_FMT_TYPE_YUV,
                .data_type      = DATA_TYPE_YC422,
                .depth          = 16,
        },
        [VPDMA_DATA_FMT_YC444] = {
+               .type           = VPDMA_DATA_FMT_TYPE_YUV,
                .data_type      = DATA_TYPE_YC444,
                .depth          = 24,
        },
        [VPDMA_DATA_FMT_CY422] = {
+               .type           = VPDMA_DATA_FMT_TYPE_YUV,
                .data_type      = DATA_TYPE_CY422,
                .depth          = 16,
        },
 
 const struct vpdma_data_format vpdma_rgb_fmts[] = {
        [VPDMA_DATA_FMT_RGB565] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_RGB16_565,
                .depth          = 16,
        },
        [VPDMA_DATA_FMT_ARGB16_1555] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_ARGB_1555,
                .depth          = 16,
        },
        [VPDMA_DATA_FMT_ARGB16] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_ARGB_4444,
                .depth          = 16,
        },
        [VPDMA_DATA_FMT_RGBA16_5551] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_RGBA_5551,
                .depth          = 16,
        },
        [VPDMA_DATA_FMT_RGBA16] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_RGBA_4444,
                .depth          = 16,
        },
        [VPDMA_DATA_FMT_ARGB24] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_ARGB24_6666,
                .depth          = 24,
        },
        [VPDMA_DATA_FMT_RGB24] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_RGB24_888,
                .depth          = 24,
        },
        [VPDMA_DATA_FMT_ARGB32] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_ARGB32_8888,
                .depth          = 32,
        },
        [VPDMA_DATA_FMT_RGBA24] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_RGBA24_6666,
                .depth          = 24,
        },
        [VPDMA_DATA_FMT_RGBA32] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_RGBA32_8888,
                .depth          = 32,
        },
        [VPDMA_DATA_FMT_BGR565] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_BGR16_565,
                .depth          = 16,
        },
        [VPDMA_DATA_FMT_ABGR16_1555] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_ABGR_1555,
                .depth          = 16,
        },
        [VPDMA_DATA_FMT_ABGR16] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_ABGR_4444,
                .depth          = 16,
        },
        [VPDMA_DATA_FMT_BGRA16_5551] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_BGRA_5551,
                .depth          = 16,
        },
        [VPDMA_DATA_FMT_BGRA16] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_BGRA_4444,
                .depth          = 16,
        },
        [VPDMA_DATA_FMT_ABGR24] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_ABGR24_6666,
                .depth          = 24,
        },
        [VPDMA_DATA_FMT_BGR24] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_BGR24_888,
                .depth          = 24,
        },
        [VPDMA_DATA_FMT_ABGR32] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_ABGR32_8888,
                .depth          = 32,
        },
        [VPDMA_DATA_FMT_BGRA24] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_BGRA24_6666,
                .depth          = 24,
        },
        [VPDMA_DATA_FMT_BGRA32] = {
+               .type           = VPDMA_DATA_FMT_TYPE_RGB,
                .data_type      = DATA_TYPE_BGRA32_8888,
                .depth          = 32,
        },
 
 const struct vpdma_data_format vpdma_misc_fmts[] = {
        [VPDMA_DATA_FMT_MV] = {
+               .type           = VPDMA_DATA_FMT_TYPE_MISC,
                .data_type      = DATA_TYPE_MV,
                .depth          = 4,
        },
 
        channel = next_chan = chan_info[chan].num;
 
-       if (fmt->data_type == DATA_TYPE_C420)
+       if (fmt->type == VPDMA_DATA_FMT_TYPE_YUV &&
+                       fmt->data_type == DATA_TYPE_C420)
                depth = 8;
 
        stride = ALIGN((depth * c_rect->width) >> 3, VPDMA_STRIDE_ALIGN);
 
        channel = next_chan = chan_info[chan].num;
 
-       if (fmt->data_type == DATA_TYPE_C420) {
+       if (fmt->type == VPDMA_DATA_FMT_TYPE_YUV &&
+                       fmt->data_type == DATA_TYPE_C420) {
                height >>= 1;
                frame_height >>= 1;
                depth = 8;