meson_display: add API to get dolby vision mode [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: I25d426e7a2d31082ebb673a07836c0368df9ed12
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 999d5d3..961e7b2 100644
--- a/display_framework/src/extension/display_settings/display_settings.h
+++ b/display_framework/src/extension/display_settings/display_settings.h
@@ -162,8 +162,9 @@
int setDisplayEnabled(int enabled);
int getDisplayScaling(int* value);
int getDisplayEnabled(int* enabled);
-int setDisplayDVMode(int dvmode,DISPLAY_CONNECTOR_TYPE connType);
-int getDisplaySupportedDVMode(DISPLAY_CONNECTOR_TYPE connType);
+int setDisplayDvMode(int dvmode,DISPLAY_CONNECTOR_TYPE connType);
+int getDisplayDvMode(DISPLAY_CONNECTOR_TYPE connType );
+int getDisplaySupportedDvMode(DISPLAY_CONNECTOR_TYPE connType);
uint32_t getDisplayHDRSupportList(DISPLAY_CONNECTOR_TYPE connType);
uint32_t getDisplayDvCap(DISPLAY_CONNECTOR_TYPE connType);
int getDisplaySupportAttrList(DisplayModeInfo* modeInfo,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 2d627ad..1a8fa7a 100644
--- a/display_framework/src/extension/display_settings/displayattribute/display_attribute.c
+++ b/display_framework/src/extension/display_settings/displayattribute/display_attribute.c
@@ -163,6 +163,7 @@
return displayConnStatus;
}
+/*Rx and Tx successful authentication after hdcp_version*/
ENUM_DISPLAY_HDCP_VERSION getDisplayHdcpVersion(DISPLAY_CONNECTOR_TYPE connType ) {
char* str = NULL;
ENUM_DISPLAY_HDCP_VERSION displayHdcpVersion = DISPLAY_HDCP_RESERVED;
@@ -575,7 +576,7 @@
return ret;
}
-int getDisplaySupportedDVMode( DISPLAY_CONNECTOR_TYPE connType ) {
+int getDisplaySupportedDvMode( DISPLAY_CONNECTOR_TYPE connType ) {
int fd = 0;
fd = display_meson_get_open();
int value = meson_drm_getDvCap(fd, connType );
@@ -675,7 +676,6 @@
int getDisplayPlaneSize( int* width, int* height ) {
int fd = 0;
int ret = -1;
- int rc = -1;
if (width == NULL || height == NULL) {
ERROR("%s %d Error: One or both pointers are NULL.\n",__FUNCTION__,__LINE__);
return ret;
@@ -692,7 +692,6 @@
int getDisplayPhysicalSize( int* width, int* height, DISPLAY_CONNECTOR_TYPE connType ) {
int fd = 0;
int ret = -1;
- int rc = -1;
if (width == NULL || height == NULL) {
ERROR("%s %d Error: One or both pointers are NULL.\n",__FUNCTION__,__LINE__);
return ret;
@@ -706,11 +705,22 @@
return ret;
}
+int getDisplayDvMode(DISPLAY_CONNECTOR_TYPE connType ) {
+ int fd = display_meson_get_open();
+ int ret = meson_drm_getDvMode(fd, connType );
+ if (ret == -1) {
+ ERROR("%s %d get dv mode fail", __FUNCTION__, __LINE__);
+ } else {
+ DEBUG("%s %d get dv mode value %d",__FUNCTION__,__LINE__,ret);
+ }
+ meson_close_drm(fd);
+ return ret;
+}
+
int getDisplaySignalTimingInfo(uint16_t* htotal, uint16_t* vtotal, uint16_t* hstart,
uint16_t* vstart, DISPLAY_CONNECTOR_TYPE connType) {
int fd = 0;
int ret = -1;
- int rc = -1;
if (htotal == NULL || vtotal == NULL || hstart == NULL || vstart == NULL) {
ERROR("%s %d Error: have pointers are NULL.\n",__FUNCTION__,__LINE__);
return ret;
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 cb5df09..265de37 100644
--- a/display_framework/src/extension/display_settings/meson/meson_settings.c
+++ b/display_framework/src/extension/display_settings/meson/meson_settings.c
@@ -738,7 +738,7 @@
return ret;
}
-int setDisplayDVMode(int dvmode,DISPLAY_CONNECTOR_TYPE connType) {
+int setDisplayDvMode(int dvmode,DISPLAY_CONNECTOR_TYPE connType) {
int res = -1;
int ret = -1;
int fd = 0;
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 7c34979..697519b 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
@@ -240,10 +240,10 @@
printf("dvmode: \n");
int dvmode = -1;
scanf("%d", &dvmode);
- if (setDisplayDVMode(dvmode,DISPLAY_CONNECTOR_HDMIA) == 0) {
- printf("\n setDisplayDVMode Success\n");
+ if (setDisplayDvMode(dvmode,DISPLAY_CONNECTOR_HDMIA) == 0) {
+ printf("\n setDisplayDvMode Success\n");
}else{
- printf("setDisplayDVMode Fail\n");
+ printf("setDisplayDvMode Fail\n");
}
}
}
@@ -253,7 +253,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\n");
+ " 29->physical size 30->Timing information 31->dv mode \n");
len = scanf("%d",&get);
if (get == 0 && len == 1) {
ENUM_DISPLAY_HDR_POLICY value = getDisplayHDRPolicy( DISPLAY_CONNECTOR_HDMIA);
@@ -267,6 +267,7 @@
printf("\n getDisplayModeFail\n");
}
} else if(get == 2 && len == 1) {
+ /*Rx and Tx successful authentication after get hdcp_version*/
ENUM_DISPLAY_HDCP_VERSION value = getDisplayHdcpVersion( DISPLAY_CONNECTOR_HDMIA);
printf("\n DISPLAY_HDCP_14 = 0\n"
" DISPLAY_HDCP_22 = 1\n value:%d \n", value);
@@ -417,8 +418,8 @@
printf("\n FracRate: %d\n",value);
}
} else if (get == 22 && len == 1) {
- int value = getDisplaySupportedDVMode(DISPLAY_CONNECTOR_HDMIA);
- printf("getDisplaySupportedDVMode %d\n",value);
+ int value = getDisplaySupportedDvMode(DISPLAY_CONNECTOR_HDMIA);
+ printf("getDisplaySupportedDvMode %d\n",value);
} else if (get == 23 && len == 1) {
uint32_t value = getDisplayHDRSupportList(DISPLAY_CONNECTOR_HDMIA);
printf("\n value %d\n",value);
@@ -488,6 +489,13 @@
} else {
printf("\n getDisplaySignalTimingInfo fail\n");
}
+ } else if (get == 31 && len == 1) {
+ int value = getDisplayDvMode( DISPLAY_CONNECTOR_HDMIA );
+ if (value == -1) {
+ printf("\n get dv mode fail\n");
+ } else {
+ printf("\n get dv mode value: %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 0743656..df5f6e4 100644
--- a/display_framework/src/extension/display_settings/westeros/westeros_settings.c
+++ b/display_framework/src/extension/display_settings/westeros/westeros_settings.c
@@ -539,7 +539,7 @@
return ret;
}
-int setDisplayDVMode(int dvmode,DISPLAY_CONNECTOR_TYPE connType) {
+int setDisplayDvMode(int dvmode,DISPLAY_CONNECTOR_TYPE connType) {
int ret = -1;
int crtcId = -1;
char resp[OUTPUT_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 d2b72d1..760e20a 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
@@ -217,10 +217,10 @@
printf("dvmode: \n");
int dvmode = -1;
scanf("%d", &dvmode);
- if (setDisplayDVMode(dvmode,DISPLAY_CONNECTOR_HDMIA) == 0) {
- printf("\n setDisplayDVMode Success\n");
+ if (setDisplayDvMode(dvmode,DISPLAY_CONNECTOR_HDMIA) == 0) {
+ printf("\n setDisplayDvMode Success\n");
}else{
- printf("setDisplayDVMode Fail\n");
+ printf("setDisplayDvMode Fail\n");
}
}
}
@@ -230,7 +230,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->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\n");
+ " 30->primar plane fb size 31->physical size 32->Timing information 33->is bestmode 34->dv mode\n");
len = scanf("%d",&get);
if (get == 0 && len == 1) {
ENUM_DISPLAY_HDR_POLICY value = getDisplayHDRPolicy( DISPLAY_CONNECTOR_HDMIA);
@@ -404,8 +404,8 @@
printf("\n get the scaling of graphic %d\n",value);
}
} else if (get == 23 && len == 1) {
- int value = getDisplaySupportedDVMode(DISPLAY_CONNECTOR_HDMIA);
- printf("getDisplaySupportedDVMode %d\n",value);
+ int value = getDisplaySupportedDvMode(DISPLAY_CONNECTOR_HDMIA);
+ printf("getDisplaySupportedDvMode %d\n",value);
} else if (get == 24 && len == 1) {
uint32_t value = getDisplayHDRSupportList(DISPLAY_CONNECTOR_HDMIA);
printf("\n value %d\n",value);
@@ -489,6 +489,13 @@
} else {
printf("\n get best mode status value %d \n",value);
}
+ } else if (get == 34 && len == 1) {
+ int value = getDisplayDvMode( DISPLAY_CONNECTOR_HDMIA );
+ if (value == -1) {
+ printf("\n get dv mode fail\n");
+ } else {
+ printf("\n get dv mode value: %d\n",value);
+ }
}
}
else {
diff --git a/display_framework/src/extension/display_settings/weston/weston_settings.c b/display_framework/src/extension/display_settings/weston/weston_settings.c
index 639cfdb..8944c45 100644
--- a/display_framework/src/extension/display_settings/weston/weston_settings.c
+++ b/display_framework/src/extension/display_settings/weston/weston_settings.c
@@ -87,7 +87,7 @@
return 0;
}
-int setDisplayDVMode(int dvmode,DISPLAY_CONNECTOR_TYPE connType) {
+int setDisplayDvMode(int dvmode,DISPLAY_CONNECTOR_TYPE connType) {
return 0;
}
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 a3895a4..5c1b469 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,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->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\n");
+ " 30->primar plane fb size 31->physical size 32->Timing information 33->dv mode\n");
len = scanf("%d",&get);
if (get == 0 && len == 1) {
ENUM_DISPLAY_HDR_POLICY value = getDisplayHDRPolicy( DISPLAY_CONNECTOR_HDMIA);
@@ -216,8 +216,8 @@
} else if (get == 22 && len == 1) {
printf("The current weston set API is not developed\n");
} else if (get == 23 && len == 1) {
- int value = getDisplaySupportedDVMode(DISPLAY_CONNECTOR_HDMIA);
- printf("getDisplaySupportedDVMode %d\n",value);
+ int value = getDisplaySupportedDvMode(DISPLAY_CONNECTOR_HDMIA);
+ printf("getDisplaySupportedDvMode %d\n",value);
} else if (get == 24 && len == 1) {
uint32_t value = getDisplayHDRSupportList(DISPLAY_CONNECTOR_HDMIA);
printf("\n value %d\n",value);
@@ -288,6 +288,13 @@
} else {
printf("\n getDisplaySignalTimingInfo fail\n");
}
+ } else if (get == 33 && len == 1) {
+ int value = getDisplayDvMode( DISPLAY_CONNECTOR_HDMIA );
+ if (value == -1) {
+ printf("\n get dv mode fail\n");
+ } else {
+ printf("\n get dv mode value: %d\n",value);
+ }
}
}
else {