meson_display: add cvbs video mute api [1/1]

PD#OTT-58416

Problem:
add cvbs video mute api

Solution:
add cvbs video mute api

Verify:
kernel5.15-AH212

Change-Id: I517fbda179a0bdf5e56de3b2307dbe20cf5378fd
Signed-off-by: chen.wang1 <chen.wang1@amlogic.com>
diff --git a/display_framework/src/extension/display_settings/display_settings.h b/display_framework/src/extension/display_settings/display_settings.h
index 52aab24..dd3bbf0 100644
--- a/display_framework/src/extension/display_settings/display_settings.h
+++ b/display_framework/src/extension/display_settings/display_settings.h
@@ -174,6 +174,8 @@
 int getDisplayPhysicalSize( int* width, int* height, DISPLAY_CONNECTOR_TYPE connType );
 int getDisplaySignalTimingInfo(uint16_t* htotal, uint16_t* vtotal, uint16_t* hstart,
                                                    uint16_t* vstart, DISPLAY_CONNECTOR_TYPE connType);
+int getDisplayCvbsAVMute( );
+int setDisplayCvbsAVMute(bool mute);
 int getDisplayIsBestMode(int* value);
 int setDisplayBackGroundColor(unsigned char red, unsigned char green, unsigned char blue,
                                                              DISPLAY_CONNECTOR_TYPE connType);
diff --git a/display_framework/src/extension/display_settings/displayattribute/display_attribute.c b/display_framework/src/extension/display_settings/displayattribute/display_attribute.c
index d45e3f2..6fcf537 100644
--- a/display_framework/src/extension/display_settings/displayattribute/display_attribute.c
+++ b/display_framework/src/extension/display_settings/displayattribute/display_attribute.c
@@ -78,8 +78,7 @@
 }
 
 void getDisplayEDIDData(DISPLAY_CONNECTOR_TYPE connType, int * data_Len, char **data ) {
-    int fd = 0;
-    fd = display_meson_get_open();
+    int fd = display_meson_get_open();
     if (data_Len == NULL || data == NULL) {
         ERROR("%s %d invalid parameter return",__FUNCTION__,__LINE__);
         return;
@@ -97,10 +96,9 @@
 }
 
 ENUM_DISPLAY_COLOR_SPACE getDisplayColorSpace(DISPLAY_CONNECTOR_TYPE connType) {
-    int fd = 0;
     char* str = NULL;
     ENUM_DISPLAY_COLOR_SPACE displayColorSpace = DISPLAY_COLOR_SPACE_RESERVED;
-    fd = display_meson_get_open();
+    int fd = display_meson_get_open();
     ENUM_MESON_COLOR_SPACE colorSpace = meson_drm_getColorSpace(fd, connType);
     meson_close_drm(fd);
     switch (colorSpace) {
@@ -130,10 +128,8 @@
 }
 
 uint32_t getDisplayColorDepth(DISPLAY_CONNECTOR_TYPE connType) {
-    int fd = 0;
-    fd = display_meson_get_open();
-    int value = 0;
-    value = meson_drm_getColorDepth(fd, connType);
+    int fd = display_meson_get_open();
+    int value = meson_drm_getColorDepth(fd, connType);
     meson_close_drm(fd);
     DEBUG("%s %d get ColorDepth: %d",__FUNCTION__,__LINE__,value);
     return value;
@@ -189,13 +185,12 @@
 }
 
 int getDisplayMode(DisplayModeInfo* modeInfo, DISPLAY_CONNECTOR_TYPE connType) {
-    int fd = 0;
     int ret = -1;
     if (modeInfo == NULL) {
         ERROR("%s %d modeInfo == NULL return",__FUNCTION__,__LINE__);
         return ret;
     }
-    fd = display_meson_get_open();
+    int fd = display_meson_get_open();
     ret = meson_drm_getModeInfo(fd, connType, modeInfo);
     if (ret == -1) {
         ERROR("%s %d get modeInfo fail",__FUNCTION__,__LINE__);
@@ -234,13 +229,12 @@
 }
 
 int getDisplayModesList(DisplayModeInfo** modeInfo, int* modeCount,DISPLAY_CONNECTOR_TYPE connType) {
-    int fd = 0;
     int ret = -1;
     if (modeInfo == NULL || modeCount == NULL) {
         ERROR(" %s %d invalid parameter return",__FUNCTION__,__LINE__);
         return ret;
     }
-    fd = display_meson_get_open();
+    int fd = display_meson_get_open();
     ret = meson_drm_getsupportedModesList(fd, modeInfo, modeCount,connType);
     if (ret == -1) {
         ERROR("%s %d get supported modeslist failed: ret %d errno %d",__FUNCTION__,__LINE__, ret, errno );
@@ -330,9 +324,8 @@
 }
 
 int getDisplayDvEnable(DISPLAY_CONNECTOR_TYPE connType ) {
-    int fd = 0;
     int ret = -1;
-    fd = display_meson_get_open();
+    int fd = display_meson_get_open();
     ret = meson_drm_getDvEnable(fd, connType );
     if (ret == -1) {
         ERROR("%s %d get DvEnable fail",__FUNCTION__,__LINE__);
@@ -343,14 +336,8 @@
 }
 
 int getDisplayActive(DISPLAY_CONNECTOR_TYPE connType ) {
-    int fd = 0;
-    fd = display_meson_get_open();
-    int ret = -1;
-    if (fd < 0) {
-       ERROR("%s %d fd < 0",__FUNCTION__,__LINE__);
-       return ret;
-    }
-    ret = meson_drm_getActive(fd, connType );
+    int fd = display_meson_get_open();
+    int ret = meson_drm_getActive(fd, connType );
     if (ret == -1) {
         ERROR("%s %d get active fail",__FUNCTION__,__LINE__);
     }
@@ -360,20 +347,16 @@
 }
 
 int getDisplayVrrEnabled(DISPLAY_CONNECTOR_TYPE connType ) {
-    int fd = 0;
-    int ret = 0;
-    fd = display_meson_get_open();
-    ret = meson_drm_getVrrEnabled(fd, connType );
+    int fd = display_meson_get_open();
+    int ret = meson_drm_getVrrEnabled(fd, connType );
     meson_close_drm(fd);
     DEBUG("%s %d get VrrEnabled value: %d",__FUNCTION__,__LINE__,ret);
     return ret;
 }
 
 int getDisplayAVMute(DISPLAY_CONNECTOR_TYPE connType ) {
-    int fd = 0;
-    fd = display_meson_get_open();
-    int ret = 0;
-    ret = meson_drm_getAVMute(fd, connType );
+    int fd = display_meson_get_open();
+    int ret = meson_drm_getAVMute(fd, connType );
     meson_close_drm(fd);
     DEBUG("%s %d get AVMute value: %d",__FUNCTION__,__LINE__,ret);
     return ret;
@@ -499,10 +482,8 @@
 }
 
 int getDisplayFracRatePolicy(DISPLAY_CONNECTOR_TYPE connType ) {
-    int fd = 0;
-    fd = display_meson_get_open();
-    int ret = -1;
-    ret = meson_drm_getFracRatePolicy(fd, connType );
+    int fd = display_meson_get_open();
+    int ret = meson_drm_getFracRatePolicy(fd, connType );
     meson_close_drm(fd);
     DEBUG("%s %d get frac_rate value: %d",__FUNCTION__,__LINE__,ret);
     return ret;
@@ -515,14 +496,13 @@
     char color[5] = {'\0'};
     int supportedcheck = -1;
     int ret = -1;
-    int fd = 0;
     int ColorDepth = 0;
     drmModeAtomicReq *req = NULL;
     if (modeInfo == NULL) {
         ERROR("%s %d invalid parameter return",__FUNCTION__,__LINE__);
         return ret;
     }
-    fd = display_meson_get_open();
+    int fd = display_meson_get_open();
     ret = meson_drm_getModeInfo(fd, connType, modeInfo);
     if (ret == -1) {
         ERROR("%s %d get modeInfo fail",__FUNCTION__,__LINE__);
@@ -577,8 +557,7 @@
 }
 
 int getDisplaySupportedDvMode( DISPLAY_CONNECTOR_TYPE connType ) {
-    int fd = 0;
-    fd = display_meson_get_open();
+    int fd = display_meson_get_open();
     int value = meson_drm_getDvCap(fd, connType );
     meson_close_drm(fd);
     DEBUG("%s %d supported dvmode, dv_cap: %d, supported_dv_mode: %d\n",__FUNCTION__,__LINE__,
@@ -614,33 +593,25 @@
 }
 
 uint32_t getDisplayHDRSupportList(DISPLAY_CONNECTOR_TYPE connType) {
-    int fd = 0;
-    uint32_t hdrcap = 0;
-    uint32_t dvcap = 0;
-    uint32_t value_2 = 0;
-    fd = display_meson_get_open();
-    hdrcap = meson_drm_getHdrCap( fd, connType );
-    dvcap = meson_drm_getDvCap( fd, connType );
-    value_2 = getDisplayHDRSupportedList(hdrcap, dvcap);
-    DEBUG("%s %d meson_drm_getHDRSupportedList return %d",__FUNCTION__,__LINE__,value_2);
+    int fd = display_meson_get_open();
+    uint64_t hdrcap = meson_drm_getHdrCap( fd, connType );
+    uint64_t dvcap = meson_drm_getDvCap( fd, connType );
+    uint32_t value = getDisplayHDRSupportedList(hdrcap, dvcap);
+    DEBUG("%s %d get hdr support list value %d",__FUNCTION__,__LINE__,value);
     meson_close_drm(fd);
-    return value_2;
+    return value;
 }
 
 uint32_t getDisplayDvCap(DISPLAY_CONNECTOR_TYPE connType) {
-    int fd = 0;
-    uint32_t value = 0;
-    fd = display_meson_get_open();
-    value = meson_drm_getDvCap(fd, connType );
+    int fd = display_meson_get_open();
+    uint32_t value = meson_drm_getDvCap(fd, connType );
     meson_close_drm(fd);
     return value;
 }
 
 int getDisplayDpmsStatus(DISPLAY_CONNECTOR_TYPE connType) {
-    int fd = 0;
-    fd = display_meson_get_open();
-    int value = 0;
-    value = meson_drm_getDpmsStatus(fd, connType);
+    int fd = display_meson_get_open();
+    int value = meson_drm_getDpmsStatus(fd, connType);
     meson_close_drm(fd);
     DEBUG("%s %d get dpms status %d",__FUNCTION__,__LINE__,value);
     return value;
@@ -648,12 +619,11 @@
 
 float getDisplayFrameRate(DISPLAY_CONNECTOR_TYPE connType) {
     int ret = -1;
-    int fd = 0;
     float refresh = 0.00;
     drmModeAtomicReq *req = NULL;
     DisplayModeInfo* modeInfo = NULL;
     modeInfo= (DisplayModeInfo*)malloc(sizeof(DisplayModeInfo));
-    fd = display_meson_get_open();
+    int fd = display_meson_get_open();
     ret = meson_drm_getModeInfo(fd, connType, modeInfo);
     if (ret == -1) {
         ERROR("%s %d get modeInfo fail",__FUNCTION__,__LINE__);
@@ -674,13 +644,12 @@
 }
 
 int getDisplayPlaneSize( int* width, int* height ) {
-    int fd = 0;
     int ret = -1;
     if (width == NULL || height == NULL) {
         ERROR("%s %d Error: One or both pointers are NULL.\n",__FUNCTION__,__LINE__);
         return ret;
     }
-    fd = display_meson_get_open();
+    int fd = display_meson_get_open();
     ret = meson_drm_getGraphicPlaneSize(fd, width, height);
     if ( ret == 0) {
         DEBUG("%s %d get graphic plane Size %d x %d",__FUNCTION__,__LINE__,*width, *height);
@@ -690,13 +659,12 @@
 }
 
 int getDisplayPhysicalSize( int* width, int* height, DISPLAY_CONNECTOR_TYPE connType ) {
-    int fd = 0;
     int ret = -1;
     if (width == NULL || height == NULL) {
         ERROR("%s %d Error: One or both pointers are NULL.\n",__FUNCTION__,__LINE__);
         return ret;
     }
-    fd = display_meson_get_open();
+    int fd = display_meson_get_open();
     ret = meson_drm_getPhysicalSize(fd, width, height, connType);
     if ( ret == 0) {
         DEBUG("%s %d get physical Size %d x %d",__FUNCTION__,__LINE__,*width, *height);
@@ -719,13 +687,12 @@
 
 int getDisplaySignalTimingInfo(uint16_t* htotal, uint16_t* vtotal, uint16_t* hstart,
                                              uint16_t* vstart, DISPLAY_CONNECTOR_TYPE connType) {
-    int fd = 0;
     int ret = -1;
     if (htotal == NULL || vtotal == NULL || hstart == NULL || vstart == NULL) {
         ERROR("%s %d Error: have pointers are NULL.\n",__FUNCTION__,__LINE__);
         return ret;
     }
-    fd = display_meson_get_open();
+    int fd = display_meson_get_open();
     ret = meson_drm_getSignalTimingInfo(fd, htotal, vtotal, hstart, vstart, connType);
     if ( ret == 0) {
          DEBUG("%s %d signal timingInfo htotal: %d vtotal: %d hstart: %d vstart: %d",
@@ -735,6 +702,14 @@
     return ret;
 }
 
+int getDisplayCvbsAVMute( ) {
+    int fd = display_meson_get_open();
+    int ret = meson_drm_getCvbsAVMute(fd, MESON_CONNECTOR_CVBS );
+    meson_close_drm(fd);
+    DEBUG("%s %d get cvbs video mute %d",__FUNCTION__,__LINE__,ret);
+    return ret;
+}
+
 /* return 1: HDCP 1.4 supported*/
 /* return 2: HDCP 2.2 supported*/
 /* return 3: HDCP 1.4 and 2.2 all support*/
diff --git a/display_framework/src/extension/display_settings/meson/meson_settings.c b/display_framework/src/extension/display_settings/meson/meson_settings.c
index 9a92e51..76b3141 100644
--- a/display_framework/src/extension/display_settings/meson/meson_settings.c
+++ b/display_framework/src/extension/display_settings/meson/meson_settings.c
@@ -807,11 +807,9 @@
 }
 
 int setDisplayPlaneMute(unsigned int plane_type, unsigned int plane_mute) {
-    int res = -1;
-    int fd = -1;
     DEBUG("%s %d set plane_type: %d plane_mute:%d",__FUNCTION__,__LINE__,plane_type,plane_mute);
-    fd = display_meson_set_open();
-    res = meson_drm_setPlaneMute(fd, plane_type, plane_mute);
+    int fd = display_meson_set_open();
+    int res = meson_drm_setPlaneMute(fd, plane_type, plane_mute);
     if (res) {
         ERROR("%s %d set plane mute fail",__FUNCTION__,__LINE__);
     }
@@ -819,3 +817,32 @@
     return res;
 }
 
+int setDisplayCvbsAVMute(bool mute) {
+    int res = -1;
+    int ret = -1;
+    drmModeAtomicReq *req = NULL;
+    DEBUG(" %s %d set cvbs mute value %d",__FUNCTION__,__LINE__,mute);
+    int fd = display_meson_set_open();
+    req = drmModeAtomicAlloc();
+    if (req == NULL) {
+        DEBUG("%s %d invalid parameter return",__FUNCTION__,__LINE__);
+        goto out;
+    }
+    res = meson_drm_setCvbsAVMute(fd, req, mute, MESON_CONNECTOR_CVBS);
+    if (res == -1) {
+        ERROR("%s %d set avmute fail",__FUNCTION__,__LINE__);
+        goto out;
+    }
+    ret = drmModeAtomicCommit(fd, req, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+    if (ret) {
+        ERROR("%s %d drmModeAtomicCommit failed: ret %d errno %d", __FUNCTION__,__LINE__,ret, errno );
+        goto out;
+    }
+out:
+    if (req) {
+        drmModeAtomicFree(req);
+        req = NULL;
+    }
+    meson_close_drm(fd);
+    return  ret;
+}
diff --git a/display_framework/src/extension/display_settings/meson/meson_settings_Test.c b/display_framework/src/extension/display_settings/meson/meson_settings_Test.c
index 3116bda..6eafe05 100644
--- a/display_framework/src/extension/display_settings/meson/meson_settings_Test.c
+++ b/display_framework/src/extension/display_settings/meson/meson_settings_Test.c
@@ -45,7 +45,8 @@
     if (select_s == 0 && select_len == 1) {
         printf("set:0->hdmi mode 1->cvbs mode 2->hdr policy 3->av mute 4->HDMI HDCP enable 5-><colorDepth, colorSpace>"
         "6->HDCP Content Type  7->DvEnable 8->active 9->vrr Enable 10->auto mode 11->dummy mode 12->aspect ratio"
-         "13->mode attr 14->FunctionAttribute 15->video zorder 16->dv mode 17->plane mute 18->background color\n");
+         "13->mode attr 14->FunctionAttribute 15->video zorder 16->dv mode 17->plane mute 18->background color"
+         "19->cvbs video mute\n");
         len = scanf("%d",&set);
         if (set == 0 && len == 1) {
             printf("please input modeInfo:interlace, w, h, vrefresh\n");
@@ -286,6 +287,16 @@
             } else {
                printf("setDisplayBackGroundColor success\n");
             }
+        }  else if(set == 19 && len == 1){
+            printf("\n cvbs video mute:\n");
+            int mute = 0;
+            len = scanf("%d", &mute);
+            if (len == 1) {
+                if (setDisplayCvbsAVMute(mute))
+                    printf("\n setDisplayCvbsAVMute fail:\n");
+            } else {
+                printf("\n scanf fail\n");
+            }
         }
     }
     else if(select_s == 1 && select_len == 1) {
@@ -294,7 +305,7 @@
          " 12->Dv Enable 13->active 14->vrr Enable 15->av mute 16->hdr mode 17->CvbsModesList 18-> mode support check"
          " 19->current aspect ratio 20->event test 21->frac rate policy 22->Supported dvmode 23->hdr supportedlist "
          " 24->DvCap 25->dpms status 26->mode support attrlist 27->framrate 28->primar plane fb size"
-         " 29->physical size 30->Timing information 31->dv mode 32->rx supported hdcp version\n");
+         " 29->physical size 30->Timing information 31->dv mode 32->rx supported hdcp version 33->cvbs video mute\n");
         len = scanf("%d",&get);
         if (get == 0 && len == 1) {
             ENUM_DISPLAY_HDR_POLICY value = getDisplayHDRPolicy( DISPLAY_CONNECTOR_HDMIA);
@@ -555,6 +566,9 @@
                    printf("\n get_prop fail\n");
                }
            }
+        } else if (get == 33 && len == 1) {
+            int value = getDisplayCvbsAVMute( );
+            printf("\n cvbs video mute:%d\n",value);
         }
     }
     else {
diff --git a/display_framework/src/extension/display_settings/westeros/westeros_settings.c b/display_framework/src/extension/display_settings/westeros/westeros_settings.c
index df5f6e4..8b41d8a 100644
--- a/display_framework/src/extension/display_settings/westeros/westeros_settings.c
+++ b/display_framework/src/extension/display_settings/westeros/westeros_settings.c
@@ -77,7 +77,6 @@
     int ret = -1;
     int rc = -1;
     int connId = -1;
-    int fd = -1;
     char cmdBuf[CMDBUF_SIZE] = {'\0'};
     char* prop_name = NULL;
     char resp[OUTPUT_SIZE] = {'\0'};
@@ -110,7 +109,6 @@
 int setDisplayAVMute(int mute, DISPLAY_CONNECTOR_TYPE connType) {
     int ret = -1;
     int connId = -1;
-    int fd = -1;
     int rc = -1;
     char cmdBuf[CMDBUF_SIZE] = {'\0'};
     char* prop_name = NULL;
@@ -146,7 +144,6 @@
                                     DISPLAY_CONNECTOR_TYPE connType) {
     int ret = -1;
     int connId = -1;
-    int fd = -1;
     char cmdBuf[CMDBUF_SIZE] = {'\0'};
     char* space_prop_name = NULL;
     char* depth_prop_name = NULL;
@@ -259,7 +256,6 @@
     int ret = -1;
     int rc = -1;
     int connId = -1;
-    int fd = -1;
     char cmdBuf[CMDBUF_SIZE] = {'\0'};
     char* prop_name = NULL;
     char resp[OUTPUT_SIZE] = {'\0'};
@@ -567,6 +563,39 @@
     return ret;
 }
 
+int setDisplayCvbsAVMute(bool mute) {
+    int ret = -1;
+    int connId = -1;
+    int rc = -1;
+    char cmdBuf[CMDBUF_SIZE] = {'\0'};
+    char* prop_name = NULL;
+    char resp[OUTPUT_SIZE] = {'\0'};
+    connId = meson_drm_GetConnectorId(MESON_CONNECTOR_CVBS);
+    DEBUG("%s %d westeros set cvbs mute value %d connId %d",__FUNCTION__,__LINE__,
+                                      mute,connId);
+    if (connId > 0) {
+        prop_name = meson_drm_GetPropName(ENUM_MESON_DRM_CVBS_PROP_AVMUTE);
+        if (prop_name == NULL) {
+            ERROR("%s %d meson_drm_GetPropName return NULL",__FUNCTION__,__LINE__);
+            goto out;
+        }
+        DEBUG("%s %d get prop name %s",__FUNCTION__,__LINE__, prop_name);
+        snprintf(cmdBuf, sizeof(cmdBuf)-1, "set property -s %d:%s:%d", connId, prop_name, mute);
+        rc = wstDisplaySendMessage(cmdBuf,resp);
+        if (rc >= 0) {
+            ret = 0;
+        } else {
+            ERROR("%s %d send message fail",__FUNCTION__,__LINE__);
+        }
+    } else {
+        ERROR("%s %d meson_drm_GetConnectorId return fail",__FUNCTION__,__LINE__);
+    }
+out:
+    if (prop_name) {
+        free(prop_name);
+    }
+}
+
 int getDisplayIsBestMode(int* value) {
     char resp[OUTPUT_SIZE] = {'\0'};
     char cmdBuf[CMDBUF_SIZE] = {'\0'};
diff --git a/display_framework/src/extension/display_settings/westeros/westeros_settings_Test.c b/display_framework/src/extension/display_settings/westeros/westeros_settings_Test.c
index a982ffa..88939c0 100644
--- a/display_framework/src/extension/display_settings/westeros/westeros_settings_Test.c
+++ b/display_framework/src/extension/display_settings/westeros/westeros_settings_Test.c
@@ -45,7 +45,7 @@
     if (select_s == 0 && select_len == 1) {
         printf("set:0->hdmi mode 1->cvbs mode 2->hdr policy 3->av mute 4->HDMI HDCP enable 5-><colorDepth, colorSpace>"
         "6->HDCP Content Type  7->DvEnable 8->active 9->vrr Enable 10->auto mode 11->dummy mode 12->aspect ratio"
-        " 13->scaling 14->the status of display 15->dv mode\n");
+        " 13->scaling 14->the status of display 15->dv mode 16->cvbs video mute\n");
         len = scanf("%d",&set);
         if (set == 0 && len == 1) {
             printf("please input modeInfo:interlace, w, h, vrefresh\n");
@@ -231,6 +231,16 @@
             }else{
                 printf("setDisplayDvMode Fail\n");
             }
+        } else if(set == 16 && len == 1){
+            printf("\n cvbs avmute:\n");
+            int mute = 0;
+            len = scanf("%d", &mute);
+            if (len == 1) {
+                if (setDisplayCvbsAVMute(mute))
+                    printf("\n setDisplayCvbsAVMute fail:\n");
+            } else {
+                printf("\n scanf fail\n");
+            }
         }
     }
     else if(select_s == 1 && select_len == 1) {
@@ -240,7 +250,7 @@
          "19->current aspect ratio 20->event test 21->frac rate policy 22->scaling 23->supported dvmode"
          " 24->hdr supportedlist 25->DvCap 26->display enabled 27->dpms status 28->mode support attrlist 29->framrate"
          " 30->primar plane fb size 31->physical size 32->Timing information 33->is bestmode 34->dv mode "
-         " 35->rx supported hdcp version\n");
+         " 35->rx supported hdcp version 36->cvbs video mute\n");
         len = scanf("%d",&get);
         if (get == 0 && len == 1) {
             ENUM_DISPLAY_HDR_POLICY value = getDisplayHDRPolicy( DISPLAY_CONNECTOR_HDMIA);
@@ -523,6 +533,9 @@
                    printf("\n get_prop fail\n");
                }
            }
+        } else if (get == 36 && len == 1) {
+            int value = getDisplayCvbsAVMute( );
+            printf("\n cvbs video mute:%d\n",value);
         }
     }
     else {
diff --git a/display_framework/src/extension/display_settings/weston/weston_settings_Test.c b/display_framework/src/extension/display_settings/weston/weston_settings_Test.c
index 109b988..3b8261a 100644
--- a/display_framework/src/extension/display_settings/weston/weston_settings_Test.c
+++ b/display_framework/src/extension/display_settings/weston/weston_settings_Test.c
@@ -51,7 +51,8 @@
          " 12->Dv Enable 13->active 14->vrr Enable 15->av mute 16->hdr mode 17->CvbsModesList 18-> mode support check"
          "19->current aspect ratio 20->event test 21->frac rate policy 22->scaling 23->Supported dvmode"
          " 24->hdr supportedlist 25->DvCap 26->display enabled 27->dpms status 28->mode support attrlist 29->framrate"
-         " 30->primar plane fb size 31->physical size 32->Timing information 33->dv mode 34->rx supported hdcp version\n");
+         " 30->primar plane fb size 31->physical size 32->Timing information 33->dv mode 34->rx supported hdcp version "
+         " 35->cvbs video mute\n");
         len = scanf("%d",&get);
         if (get == 0 && len == 1) {
             ENUM_DISPLAY_HDR_POLICY value = getDisplayHDRPolicy( DISPLAY_CONNECTOR_HDMIA);
@@ -313,6 +314,9 @@
                    printf("\n get_prop fail\n");
                }
            }
+        } else if (get == 36 && len == 1) {
+            int value = getDisplayCvbsAVMute( DISPLAY_CONNECTOR_CVBS );
+            printf("\n cvbs video mute:%d\n",value);
         }
     }
     else {