libdrm_meson: add API to get dolby_vision_ll_policy value [1/1]

PD#SWPL-159176

Problem:
add API to get dolby vision mode

Solution:
add API to get dolby vision mode

Verify:
AH212

Change-Id: I1c2dea1ee122ab798100135049b475cea2e83db3
Signed-off-by: chen.wang1 <chen.wang1@amlogic.com>
diff --git a/meson/meson_drm_settings.c b/meson/meson_drm_settings.c
index 72ed90f..0b223b5 100644
--- a/meson/meson_drm_settings.c
+++ b/meson/meson_drm_settings.c
@@ -1329,6 +1329,21 @@
     return ret;
 }
 
+int meson_drm_getDvMode( int drmFd, MESON_CONNECTOR_TYPE connType ) {
+    char propName[PROP_NAME_MAX_LEN] = {'\0'};
+    sprintf( propName, "%s", DRM_CONNECTOR_DV_MODE);
+    uint32_t value = 0;
+    if ( drmFd < 0) {
+        ERROR("%s %d drmFd < 0",__FUNCTION__,__LINE__);
+        return -1;
+    }
+    if ( 0 != meson_drm_get_crtc_prop_value( drmFd, connType, propName, &value )) {
+         ERROR("%s %d get crtc property value fail",__FUNCTION__,__LINE__);
+    }
+    DEBUG("%s %d  get dv mode value %d",__FUNCTION__,__LINE__,value);
+    return value;
+}
+
 int meson_drm_getDpmsStatus( int drmFd, MESON_CONNECTOR_TYPE connType )
 {
     char propName[PROP_NAME_MAX_LEN] = {'\0'};
diff --git a/meson/meson_drm_settings.h b/meson/meson_drm_settings.h
index 98ab7d1..7bbe3d8 100644
--- a/meson/meson_drm_settings.h
+++ b/meson/meson_drm_settings.h
@@ -210,6 +210,7 @@
 int meson_drm_setHdrForceMode(int drmFd, drmModeAtomicReq *req,ENUM_MESON_DRM_FORCE_MODE forcemode,
                                             MESON_CONNECTOR_TYPE connType);
 int meson_drm_setDvMode(int drmFd, drmModeAtomicReq *req, int dvMode, MESON_CONNECTOR_TYPE connType);
+int meson_drm_getDvMode( int drmFd, MESON_CONNECTOR_TYPE connType );
 int meson_drm_getGraphicPlaneSize(int drmFd, uint32_t* width, uint32_t* height);
 int meson_drm_getPhysicalSize(int drmFd, uint32_t* width, uint32_t* height, MESON_CONNECTOR_TYPE connType);
 int meson_drm_getSignalTimingInfo(int drmFd, uint16_t* htotal, uint16_t* vtotal, uint16_t* hstart,
diff --git a/meson/meson_drm_settings_test.c b/meson/meson_drm_settings_test.c
index 0ebc6fa..5447404 100644
--- a/meson/meson_drm_settings_test.c
+++ b/meson/meson_drm_settings_test.c
@@ -33,7 +33,7 @@
                " 11.prefer mode 12.HDCP Content Type 13.Content Type 14.Dv Enable 15.active "
                " 16.vrr Enable 17.AVMute 18.Hdrcap 19.DvCap 20.default modeInfo 21.current aspect ratio value"
                " 22.frac rate policy 23.hdr force mode 24.dpms status 25.plane size 26.physical size"
-               " 27.Timing information\n");
+               " 27.Timing information 28.dv mode\n");
         int get = 0;
         int drmFd = meson_open_drm();
         int len = scanf("%d", &get);
@@ -224,6 +224,13 @@
            } else {
                printf("\n meson_drm_getSignalTimingInfo fail\n");
            }
+        } else if (get == 28 && len == 1) {
+            int value = meson_drm_getDvMode( drmFd, MESON_CONNECTOR_HDMIA );
+            if (value == -1) {
+                printf("\n get dolby vision mode Fail\n");
+            } else {
+                printf("\n get dolby vision mode %d\n",value);
+            }
         }
         meson_close_drm(drmFd);
     } else if (select_s_g == 0 && select_len == 1) {