#define  VE_CTRL_SOURCE                        BIT(2)
 #define  VE_CTRL_INT_DE                        BIT(4)
 #define  VE_CTRL_DIRECT_FETCH          BIT(5)
-#define  VE_CTRL_YUV                   BIT(6)
-#define  VE_CTRL_RGB                   BIT(7)
 #define  VE_CTRL_CAPTURE_FMT           GENMASK(7, 6)
 #define  VE_CTRL_AUTO_OR_CURSOR                BIT(8)
 #define  VE_CTRL_CLK_INVERSE           BIT(11)
        VIDEO_CLOCKS_ON,
 };
 
+// for VE_CTRL_CAPTURE_FMT
+enum aspeed_video_capture_format {
+       VIDEO_CAP_FMT_YUV_STUDIO_SWING = 0,
+       VIDEO_CAP_FMT_YUV_FULL_SWING,
+       VIDEO_CAP_FMT_RGB,
+       VIDEO_CAP_FMT_GRAY,
+       VIDEO_CAP_FMT_MAX
+};
+
 struct aspeed_video_addr {
        unsigned int size;
        dma_addr_t dma;
        u32 comp_ctrl = VE_COMP_CTRL_RSVD |
                FIELD_PREP(VE_COMP_CTRL_DCT_LUM, video->jpeg_quality) |
                FIELD_PREP(VE_COMP_CTRL_DCT_CHR, video->jpeg_quality | 0x10);
-       u32 ctrl = VE_CTRL_AUTO_OR_CURSOR;
+       u32 ctrl = VE_CTRL_AUTO_OR_CURSOR |
+               FIELD_PREP(VE_CTRL_CAPTURE_FMT, VIDEO_CAP_FMT_YUV_FULL_SWING);
        u32 seq_ctrl = video->jpeg_mode;
 
        if (video->frame_rate)