vdin: G12A color space error when capture screen by post blend [1/1]
authorzhiwei.yuan <zhiwei.yuan@amlogic.com>
Fri, 10 May 2019 07:43:15 +0000 (15:43 +0800)
committerJianxin Pan <jianxin.pan@amlogic.com>
Mon, 27 May 2019 14:23:11 +0000 (07:23 -0700)
PD#SWPL-8335

Problem:
color space setting error

Solution:
set yuv444 when use viu1 post blend port

Verify:
verified by t962x2_x301

Change-Id: Ic92a6db92f6cec64084d140c5f505489579b294f
Signed-off-by: zhiwei.yuan <zhiwei.yuan@amlogic.com>
drivers/amlogic/media/vin/tvin/viu/viuin.c

index e812176..c79f379 100644 (file)
@@ -399,18 +399,27 @@ static void viuin_sig_property(struct tvin_frontend_s *fe,
        static const struct vinfo_s *vinfo;
        struct viuin_s *devp = container_of(fe, struct viuin_s, frontend);
 
-       if (devp->parm.port == TVIN_PORT_VIU1_VIDEO)
+       switch (devp->parm.port) {
+       case TVIN_PORT_VIU1_VIDEO:
+       case TVIN_PORT_VIU1_WB0_POST_BLEND:
                prop->color_format = TVIN_YUV444;
-       else if ((devp->parm.port == TVIN_PORT_VIU1) ||
-               (devp->parm.port == TVIN_PORT_VIU2) ||
-               (devp->parm.port == TVIN_PORT_VIU1_WB0_VPP) ||
-               (devp->parm.port == TVIN_PORT_VIU1_WB1_VPP) ||
-               (devp->parm.port == TVIN_PORT_VIU2_WB0_VPP) ||
-               (devp->parm.port == TVIN_PORT_VIU2_WB1_VPP)) {
+               break;
+
+       case TVIN_PORT_VIU1:
+       case TVIN_PORT_VIU2:
+       case TVIN_PORT_VIU1_WB0_VPP:
+       case TVIN_PORT_VIU1_WB1_VPP:
+       case TVIN_PORT_VIU2_WB0_VPP:
+       case TVIN_PORT_VIU2_WB1_VPP:
                vinfo = get_current_vinfo();
                prop->color_format = vinfo->viu_color_fmt;
-       } else
+               break;
+
+       default:
                prop->color_format = devp->parm.cfmt;
+               break;
+       }
+
        prop->dest_cfmt = devp->parm.dfmt;
 
        prop->scaling4w = devp->parm.dest_hactive;