meson_display: regression ROKU in meson_display modifying to trunk [1/1]
PD#SWPL-158515
Problem:
regression ROKU in meson_display modifying to trunk
Solution:
regression ROKU in meson_display modifying to trunk
Verify:
AH212
Change-Id: I55285171704231acbf7a52bf9e0a081efc72037b
Signed-off-by: chen.wang1 <chen.wang1@amlogic.com>
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 9650f22..2d627ad 100644
--- a/display_framework/src/extension/display_settings/displayattribute/display_attribute.c
+++ b/display_framework/src/extension/display_settings/displayattribute/display_attribute.c
@@ -66,13 +66,10 @@
}
ENUM_DISPLAY_HDCPAUTH_STATUS getDisplayHdcpAuthStatus(DISPLAY_CONNECTOR_TYPE connType ) {
- int fd = 0;
- fd = display_meson_get_open();
ENUM_DISPLAY_HDCPAUTH_STATUS hdcpAuthStatus = DISPLAY_AUTH_STATUS_FAIL;
- int ret = meson_drm_getHdcpAuthStatus(fd, connType );
- if (ret == 0) {
- hdcpAuthStatus = DISPLAY_AUTH_STATUS_FAIL;
- } else if(ret == 1) {
+ int fd = display_meson_get_open();
+ ENUM_MESON_HDCPAUTH_STATUS mesonAuthStatus = meson_drm_getHdcpAuthStatus(fd, connType );
+ if (mesonAuthStatus == MESON_AUTH_STATUS_SUCCESS) {
hdcpAuthStatus = DISPLAY_AUTH_STATUS_SUCCESS;
}
meson_close_drm(fd);
@@ -102,30 +99,34 @@
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();
- ENUM_DISPLAY_COLOR_SPACE colorSpace = DISPLAY_COLOR_SPACE_RESERVED;
- colorSpace = meson_drm_getColorSpace(fd, connType);
+ ENUM_MESON_COLOR_SPACE colorSpace = meson_drm_getColorSpace(fd, connType);
meson_close_drm(fd);
- switch (colorSpace)
- {
- case 0:
+ switch (colorSpace) {
+ case MESON_COLOR_SPACE_RGB:
str = "DISPLAY_COLOR_SPACE_RGB";
+ displayColorSpace = DISPLAY_COLOR_SPACE_RGB;
break;
- case 1:
+ case MESON_COLOR_SPACE_YCBCR422:
str = "DISPLAY_COLOR_SPACE_YCBCR422";
+ displayColorSpace = DISPLAY_COLOR_SPACE_YCBCR422;
break;
- case 2:
+ case MESON_COLOR_SPACE_YCBCR444:
str = "DISPLAY_COLOR_SPACE_YCBCR444";
+ displayColorSpace = DISPLAY_COLOR_SPACE_YCBCR444;
break;
- case 3:
+ case MESON_COLOR_SPACE_YCBCR420:
str = "DISPLAY_COLOR_SPACE_YCBCR420";
+ displayColorSpace = DISPLAY_COLOR_SPACE_YCBCR420;
break;
default:
str = "DISPLAY_COLOR_SPACE_RESERVED";
+ displayColorSpace = DISPLAY_COLOR_SPACE_RESERVED;
break;
}
DEBUG("%s %d get colorSpace: %s",__FUNCTION__,__LINE__,str);
- return colorSpace;
+ return displayColorSpace;
}
uint32_t getDisplayColorDepth(DISPLAY_CONNECTOR_TYPE connType) {
@@ -139,49 +140,51 @@
}
ENUM_DISPLAY_CONNECTION getDisplayConnectionStatus(DISPLAY_CONNECTOR_TYPE connType) {
- int fd = 0;
char* str = NULL;
- fd = display_meson_get_open();
- ENUM_DISPLAY_CONNECTION ConnStatus = DISPLAY_UNKNOWNCONNECTION;
- ConnStatus = meson_drm_getConnectionStatus(fd, connType);
+ ENUM_DISPLAY_CONNECTION displayConnStatus = DISPLAY_UNKNOWNCONNECTION;
+ int fd = display_meson_get_open();
+ ENUM_MESON_CONN_CONNECTION connStatus = meson_drm_getConnectionStatus(fd, connType);
meson_close_drm(fd);
- switch (ConnStatus)
- {
- case 0:
+ switch (connStatus) {
+ case MESON_DISCONNECTED:
str = "DISPLAY_DISCONNECTED";
+ displayConnStatus = DISPLAY_DISCONNECTED;
break;
- case 1:
+ case MESON_CONNECTED:
str = "DISPLAY_CONNECTED";
+ displayConnStatus = DISPLAY_CONNECTED;
break;
default:
str = "DISPLAY_UNKNOWNCONNECTION";
+ displayConnStatus = DISPLAY_UNKNOWNCONNECTION;
break;
}
DEBUG("%s %d get connection status: %s",__FUNCTION__,__LINE__,str);
- return ConnStatus;
+ return displayConnStatus;
}
ENUM_DISPLAY_HDCP_VERSION getDisplayHdcpVersion(DISPLAY_CONNECTOR_TYPE connType ) {
- int fd = 0;
char* str = NULL;
- fd = display_meson_get_open();
- ENUM_DISPLAY_HDCP_VERSION hdcpVersion = DISPLAY_HDCP_RESERVED;
- hdcpVersion = meson_drm_getHdcpVersion(fd, connType);
+ ENUM_DISPLAY_HDCP_VERSION displayHdcpVersion = DISPLAY_HDCP_RESERVED;
+ int fd = display_meson_get_open();
+ ENUM_MESON_HDCP_VERSION hdcpVersion = meson_drm_getHdcpVersion(fd, connType);
meson_close_drm(fd);
- switch (hdcpVersion)
- {
- case 0:
+ switch (hdcpVersion) {
+ case MESON_HDCP_14:
str = "DISPLAY_HDCP_14";
+ displayHdcpVersion = DISPLAY_HDCP_14;
break;
- case 1:
+ case MESON_HDCP_22:
str = "DISPLAY_HDCP_22";
+ displayHdcpVersion = DISPLAY_HDCP_22;
break;
default:
str = "DISPLAY_HDCP_RESERVED";
+ displayHdcpVersion = DISPLAY_HDCP_RESERVED;
break;
}
DEBUG("%s %d get hdcp version: %s",__FUNCTION__,__LINE__,str);
- return hdcpVersion;
+ return displayHdcpVersion;
}
int getDisplayMode(DisplayModeInfo* modeInfo, DISPLAY_CONNECTOR_TYPE connType) {
@@ -203,30 +206,30 @@
}
ENUM_DISPLAY_HDR_POLICY getDisplayHDRPolicy(DISPLAY_CONNECTOR_TYPE connType) {
- int fd = 0;
- fd = display_meson_get_open();
char* str = NULL;
- ENUM_DISPLAY_HDR_POLICY hdrPolicy = DISPLAY_HDR_POLICY_FOLLOW_SINK;
- ENUM_DISPLAY_FORCE_MODE forcemode = DISPLAY_UNKNOWN_FMT;
- hdrPolicy = meson_drm_getHDRPolicy(fd, connType);
- forcemode = meson_drm_getHdrForceMode(fd, connType);
+ ENUM_DISPLAY_HDR_POLICY displayHdrPolicy = DISPLAY_HDR_POLICY_FOLLOW_SOURCE;
+ int fd = display_meson_get_open();
+ ENUM_MESON_HDR_POLICY hdrPolicy = meson_drm_getHDRPolicy(fd, connType);
meson_close_drm(fd);
- switch (hdrPolicy)
- {
- case 0:
+ switch (hdrPolicy) {
+ case MESON_HDR_POLICY_FOLLOW_SINK:
str = "DISPLAY_HDR_POLICY_FOLLOW_SINK";
+ displayHdrPolicy = DISPLAY_HDR_POLICY_FOLLOW_SINK;
break;
- case 1:
+ case MESON_HDR_POLICY_FOLLOW_SOURCE:
str = "DISPLAY_HDR_POLICY_FOLLOW_SOURCE";
+ displayHdrPolicy = DISPLAY_HDR_POLICY_FOLLOW_SOURCE;
break;
- case 2:
+ case MESON_HDR_POLICY_FOLLOW_FORCE_MODE:
str = "DISPLAY_HDR_POLICY_FOLLOW_FORCE_MODE";
+ displayHdrPolicy = DISPLAY_HDR_POLICY_FOLLOW_FORCE_MODE;
break;
default:
+ str = "DISPLAY_HDR_POLICY_FOLLOW_SOURCE";
break;
}
- DEBUG("%s %d get hdr policy: %s,force mode: %d",__FUNCTION__,__LINE__,str,forcemode);
- return hdrPolicy;
+ DEBUG("%s %d get hdr policy: %s",__FUNCTION__,__LINE__,str);
+ return displayHdrPolicy;
}
int getDisplayModesList(DisplayModeInfo** modeInfo, int* modeCount,DISPLAY_CONNECTOR_TYPE connType) {
@@ -266,61 +269,65 @@
}
ENUM_DISPLAY_HDCP_Content_Type getDisplayHDCPContentType(DISPLAY_CONNECTOR_TYPE connType) {
- int fd = 0;
char* str = NULL;
- fd = display_meson_get_open();
- ENUM_DISPLAY_HDCP_Content_Type ContentType = DISPLAY_HDCP_Type_RESERVED;
- ContentType = meson_drm_getHDCPContentType(fd, connType);
+ ENUM_DISPLAY_HDCP_Content_Type displayHDCPType = DISPLAY_HDCP_Type_RESERVED;
+ int fd = display_meson_get_open();
+ ENUM_MESON_HDCP_Content_Type HDCPType = meson_drm_getHDCPContentType(fd, connType);
meson_close_drm(fd);
- switch (ContentType)
- {
- case 0:
+ switch (HDCPType) {
+ case MESON_HDCP_Type0:
str = "DISPLAY_HDCP_Type0";
+ displayHDCPType = DISPLAY_HDCP_Type0;
break;
- case 1:
+ case MESON_HDCP_Type1:
str = "DISPLAY_HDCP_Type1";
+ displayHDCPType = DISPLAY_HDCP_Type1;
break;
default:
str = "DISPLAY_HDCP_Type_RESERVED";
+ displayHDCPType = DISPLAY_HDCP_Type_RESERVED;
break;
}
DEBUG("%s %d get hdcp content type: %s",__FUNCTION__,__LINE__,str);
- return ContentType;
+ return displayHDCPType;
}
ENUM_DISPLAY_Content_Type getDisplayContentType( DISPLAY_CONNECTOR_TYPE connType) {
- int fd = 0;
char* str = NULL;
- fd = display_meson_get_open();
- ENUM_DISPLAY_Content_Type ContentType = DISPLAY_Content_Type_RESERVED;
- ContentType = meson_drm_getContentType(fd, connType);
+ ENUM_DISPLAY_Content_Type displayContentType = DISPLAY_Content_Type_RESERVED;
+ int fd = display_meson_get_open();
+ MESON_CONTENT_TYPE contentType = meson_drm_getContentType(fd, connType);
meson_close_drm(fd);
- switch (ContentType)
- {
- case 0:
+ switch (contentType) {
+ case MESON_CONTENT_TYPE_Data:
str = "DISPLAY_Content_Type_Data";
+ displayContentType = DISPLAY_Content_Type_Data;
break;
- case 1:
+ case MESON_CONTENT_TYPE_Graphics:
str = "DISPLAY_Content_Type_Graphics";
+ displayContentType = DISPLAY_Content_Type_Graphics;
break;
- case 2:
+ case MESON_CONTENT_TYPE_Photo:
str = "DISPLAY_Content_Type_Photo";
+ displayContentType = DISPLAY_Content_Type_Photo;
break;
- case 3:
+ case MESON_CONTENT_TYPE_Cinema:
str = "DISPLAY_Content_Type_Cinema";
+ displayContentType = DISPLAY_Content_Type_Cinema;
break;
- case 4:
+ case MESON_CONTENT_TYPE_Game:
str = "DISPLAY_Content_Type_Game";
+ displayContentType = DISPLAY_Content_Type_Game;
break;
default:
str = "DISPLAY_Content_Type_RESERVED";
+ displayContentType = DISPLAY_Content_Type_RESERVED;
break;
}
DEBUG("%s %d get content type: %s",__FUNCTION__,__LINE__,str);
- return ContentType;
+ return displayContentType;
}
-
int getDisplayDvEnable(DISPLAY_CONNECTOR_TYPE connType ) {
int fd = 0;
int ret = -1;
@@ -372,41 +379,47 @@
}
ENUM_DISPLAY_HDR_MODE getDisplayHdrStatus(DISPLAY_CONNECTOR_TYPE connType ) {
- int fd = 0;
char* str = NULL;
- fd = display_meson_get_open();
- ENUM_DISPLAY_HDR_MODE hdrMode = MESON_DISPLAY_SDR;
- hdrMode = meson_drm_getHdrStatus(fd, connType);
+ int fd = display_meson_get_open();
+ ENUM_MESON_HDR_MODE hdrMode = meson_drm_getHdrStatus(fd, connType);
+ ENUM_DISPLAY_HDR_MODE displayHdrMode = MESON_DISPLAY_SDR;
meson_close_drm(fd);
- switch (hdrMode)
- {
- case 0:
+ switch (hdrMode) {
+ case MESON_HDR10PLUS:
str = "MESON_DISPLAY_HDR10PLUS";
+ displayHdrMode = MESON_DISPLAY_HDR10PLUS;
break;
- case 1:
+ case MESON_DOLBYVISION_STD:
str = "MESON_DISPLAY_DolbyVision_STD";
+ displayHdrMode = MESON_DISPLAY_DolbyVision_STD;
break;
- case 2:
+ case MESON_DOLBYVISION_LL:
str = "MESON_DISPLAY_DolbyVision_Lowlatency";
+ displayHdrMode = MESON_DISPLAY_DolbyVision_Lowlatency;
break;
- case 3:
+ case MESON_HDR10_ST2084:
str = "MESON_DISPLAY_HDR10_ST2084";
+ displayHdrMode = MESON_DISPLAY_HDR10_ST2084;
break;
- case 4:
+ case MESON_HDR10_TRADITIONAL:
str = "MESON_DISPLAY_HDR10_TRADITIONAL";
+ displayHdrMode = MESON_DISPLAY_HDR10_TRADITIONAL;
break;
- case 5:
+ case MESON_HDR_HLG:
str = "MESON_DISPLAY_HDR_HLG";
+ displayHdrMode = MESON_DISPLAY_HDR_HLG;
break;
- case 6:
+ case MESON_SDR:
str = "MESON_DISPLAY_SDR";
+ displayHdrMode = MESON_DISPLAY_SDR;
break;
default:
str = "MESON_DISPLAY_SDR";
+ displayHdrMode = MESON_DISPLAY_SDR;
break;
}
DEBUG("%s %d get hdr status: %s",__FUNCTION__,__LINE__,str);
- return hdrMode;
+ return displayHdrMode;
}
bool modeAttrSupportedCheck(char* modeName, ENUM_DISPLAY_COLOR_SPACE colorSpace,
@@ -458,28 +471,30 @@
}
ENUM_DISPLAY_ASPECT_RATIO getDisplayAspectRatioValue(DISPLAY_CONNECTOR_TYPE connType ) {
- int fd = 0;
char* str = NULL;
- fd = display_meson_get_open();
- ENUM_DISPLAY_ASPECT_RATIO ASPECTRATIO = meson_drm_getAspectRatioValue(fd, connType );
- meson_close_drm(fd);
- switch (ASPECTRATIO)
- {
- case 0:
- str = "DISPLAY_ASPECT_RATIO_AUTOMATIC";
- break;
- case 1:
- str = "DISPLAY_ASPECT_RATIO_4_3";
- break;
- case 2:
- str = "DISPLAY_ASPECT_RATIO_16_9";
- break;
- default:
- str = "DISPLAY_ASPECT_RATIO_RESERVED";
- break;
+ int fd = display_meson_get_open();
+ ENUM_MESON_ASPECT_RATIO aspectRatio = meson_drm_getAspectRatioValue(fd, connType );
+ ENUM_DISPLAY_ASPECT_RATIO displayAspectRatio = DISPLAY_ASPECT_RATIO_RESERVED;
+ switch (aspectRatio) {
+ case MESON_ASPECT_RATIO_AUTOMATIC:
+ str = "DISPLAY_ASPECT_RATIO_AUTOMATIC";
+ displayAspectRatio = DISPLAY_ASPECT_RATIO_AUTOMATIC;
+ break;
+ case MESON_ASPECT_RATIO_4_3:
+ str = "DISPLAY_ASPECT_RATIO_4_3";
+ displayAspectRatio = DISPLAY_ASPECT_RATIO_4_3;
+ break;
+ case MESON_ASPECT_RATIO_16_9:
+ str = "DISPLAY_ASPECT_RATIO_16_9";
+ displayAspectRatio = DISPLAY_ASPECT_RATIO_16_9;
+ break;
+ default:
+ str = "DISPLAY_ASPECT_RATIO_RESERVED";
+ displayAspectRatio = DISPLAY_ASPECT_RATIO_RESERVED;
+ break;
}
DEBUG("%s %d get aspect ratio %s",__FUNCTION__,__LINE__,str);
- return ASPECTRATIO;
+ return displayAspectRatio;
}
int getDisplayFracRatePolicy(DISPLAY_CONNECTOR_TYPE connType ) {
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 b2f02f0..ad39106 100644
--- a/display_framework/src/extension/display_settings/meson/meson_settings.c
+++ b/display_framework/src/extension/display_settings/meson/meson_settings.c
@@ -115,27 +115,34 @@
int setDisplayColorSpacedDepth(uint32_t colorDepth, ENUM_DISPLAY_COLOR_SPACE colorSpace,
DISPLAY_CONNECTOR_TYPE connType) {
- int res = -1;
+ int res1 = -1;
+ int res2 = -1;
int ret = -1;
int fd = 0;
drmModeAtomicReq *req = NULL;
char* str = NULL;
+ ENUM_MESON_COLOR_SPACE mesonColorSpace = MESON_COLOR_SPACE_RESERVED;
switch (colorSpace)
{
- case 0:
+ case DISPLAY_COLOR_SPACE_RGB:
str = "DISPLAY_COLOR_SPACE_RGB";
+ mesonColorSpace = MESON_COLOR_SPACE_RGB;
break;
- case 1:
+ case DISPLAY_COLOR_SPACE_YCBCR422:
str = "DISPLAY_COLOR_SPACE_YCBCR422";
+ mesonColorSpace = MESON_COLOR_SPACE_YCBCR422;
break;
- case 2:
+ case DISPLAY_COLOR_SPACE_YCBCR444:
str = "DISPLAY_COLOR_SPACE_YCBCR444";
+ mesonColorSpace = MESON_COLOR_SPACE_YCBCR444;
break;
- case 3:
+ case DISPLAY_COLOR_SPACE_YCBCR420:
str = "DISPLAY_COLOR_SPACE_YCBCR420";
+ mesonColorSpace = MESON_COLOR_SPACE_YCBCR420;
break;
default:
str = "DISPLAY_COLOR_SPACE_RESERVED";
+ mesonColorSpace = MESON_COLOR_SPACE_RESERVED;
break;
}
DEBUG(" %s %d set colorDepth: %d colorSpace: %s",__FUNCTION__,__LINE__,colorDepth,str);
@@ -145,9 +152,9 @@
ERROR(" %s %d invalid parameter return",__FUNCTION__,__LINE__);
goto out;
}
- res = meson_drm_setColorDepth(fd, req, colorDepth, connType);
- res = meson_drm_setColorSpace(fd, req, colorSpace, connType);
- if (res == -1) {
+ res1 = meson_drm_setColorDepth(fd, req, colorDepth, connType);
+ res2 = meson_drm_setColorSpace(fd, req, mesonColorSpace, connType);
+ if (res1 == -1 || res2 == -1) {
ERROR("%s %d set <colorDepth,colorSpace> fail",__FUNCTION__,__LINE__);
goto out;
}
@@ -171,23 +178,38 @@
int ret = -1;
int fd = 0;
drmModeAtomicReq *req = NULL;
- ENUM_DISPLAY_FORCE_MODE forcemode = DISPLAY_UNKNOWN_FMT;
+ ENUM_MESON_DRM_FORCE_MODE forcemode = MESON_DRM_UNKNOWN_FMT;
+ ENUM_MESON_HDR_POLICY mesonHdrPolicy = MESON_HDR_POLICY_FOLLOW_SOURCE;
DEBUG("%s %d set hdr policy %d",__FUNCTION__,__LINE__,hdrPolicy);
- fd = display_meson_set_open();
req = drmModeAtomicAlloc();
if (req == NULL) {
DEBUG("%s %d invalid parameter return",__FUNCTION__,__LINE__);
goto out;
}
- respolicy = meson_drm_setHDRPolicy(fd, req, hdrPolicy, connType);
+ switch (hdrPolicy) {
+ case DISPLAY_HDR_POLICY_FOLLOW_SINK:
+ mesonHdrPolicy = MESON_HDR_POLICY_FOLLOW_SINK;
+ break;
+ case DISPLAY_HDR_POLICY_FOLLOW_SOURCE:
+ mesonHdrPolicy = MESON_HDR_POLICY_FOLLOW_SOURCE;
+ break;
+ case DISPLAY_HDR_POLICY_FOLLOW_FORCE_MODE:
+ mesonHdrPolicy = MESON_HDR_POLICY_FOLLOW_FORCE_MODE;
+ break;
+ default:
+ mesonHdrPolicy = MESON_HDR_POLICY_FOLLOW_SOURCE;
+ break;
+ }
+ fd = display_meson_set_open();
+ respolicy = meson_drm_setHDRPolicy(fd, req, mesonHdrPolicy, connType);
if (respolicy == -1) {
ERROR("%s %d set hdr policy fail",__FUNCTION__,__LINE__);
goto out;
}
if (hdrPolicy == DISPLAY_HDR_POLICY_FOLLOW_FORCE_MODE) {
- forcemode = DISPLAY_BT709;
+ forcemode = MESON_DRM_BT709;
} else {
- forcemode = DISPLAY_UNKNOWN_FMT;
+ forcemode = MESON_DRM_UNKNOWN_FMT;
}
DEBUG("%s %d set force mode %d",__FUNCTION__,__LINE__,forcemode);
resforce = meson_drm_setHdrForceMode(fd, req, forcemode, connType);
@@ -453,36 +475,39 @@
return ret;
}
-
-int setDisplayAspectRatioValue(ENUM_DISPLAY_ASPECT_RATIO ASPECTRATIO, DISPLAY_CONNECTOR_TYPE connType) {
+int setDisplayAspectRatioValue(ENUM_DISPLAY_ASPECT_RATIO aspectRatio, DISPLAY_CONNECTOR_TYPE connType) {
int res = -1;
int ret = -1;
int fd = 0;
drmModeAtomicReq *req = NULL;
char* str = NULL;
- switch (ASPECTRATIO)
- {
- case 0:
- str = "DISPLAY_ASPECT_RATIO_AUTOMATIC";
- break;
- case 1:
- str = "DISPLAY_ASPECT_RATIO_4_3";
- break;
- case 2:
- str = "DISPLAY_ASPECT_RATIO_16_9";
- break;
- default:
- str = "DISPLAY_ASPECT_RATIO_RESERVED";
- break;
+ ENUM_MESON_ASPECT_RATIO mesonAspectRatio = MESON_ASPECT_RATIO_RESERVED;
+ switch (aspectRatio) {
+ case DISPLAY_ASPECT_RATIO_AUTOMATIC:
+ str = "DISPLAY_ASPECT_RATIO_AUTOMATIC";
+ mesonAspectRatio = MESON_ASPECT_RATIO_AUTOMATIC;
+ break;
+ case DISPLAY_ASPECT_RATIO_4_3:
+ str = "DISPLAY_ASPECT_RATIO_4_3";
+ mesonAspectRatio = MESON_ASPECT_RATIO_4_3;
+ break;
+ case DISPLAY_ASPECT_RATIO_16_9:
+ str = "DISPLAY_ASPECT_RATIO_16_9";
+ mesonAspectRatio = MESON_ASPECT_RATIO_16_9;
+ break;
+ default:
+ str = "DISPLAY_ASPECT_RATIO_RESERVED";
+ mesonAspectRatio = MESON_ASPECT_RATIO_RESERVED;
+ break;
}
DEBUG("%s %d set aspect ratio %s",__FUNCTION__,__LINE__, str);
- fd = display_meson_set_open();
req = drmModeAtomicAlloc();
if (req == NULL) {
DEBUG("%s %d invalid parameter return",__FUNCTION__,__LINE__);
goto out;
}
- res = meson_drm_setAspectRatioValue(fd, req, ASPECTRATIO, connType);
+ fd = display_meson_set_open();
+ res = meson_drm_setAspectRatioValue(fd, req, mesonAspectRatio, connType);
if (res == -1) {
ERROR(" %s %d set aspect ratio value fail",__FUNCTION__,__LINE__);
goto out;
@@ -565,7 +590,10 @@
int rescolorspace = -1;
int resFracRate = -1;
int fd = 0;
- ENUM_DISPLAY_FORCE_MODE forcemode = DISPLAY_UNKNOWN_FMT;
+ char* str = NULL;
+ ENUM_MESON_DRM_FORCE_MODE forcemode = MESON_DRM_UNKNOWN_FMT;
+ ENUM_MESON_HDR_POLICY mesonHdrPolicy = MESON_HDR_POLICY_FOLLOW_SOURCE;
+ ENUM_MESON_COLOR_SPACE mesonColorSpace = MESON_COLOR_SPACE_RESERVED;
drmModeAtomicReq *req = NULL;
DEBUG("%s %d set modeInfo: %dx%d%s%dhz",__FUNCTION__,__LINE__, modeInfo->w, modeInfo->h,
(modeInfo->interlace == 0? "p":"i"), modeInfo->vrefresh);
@@ -584,16 +612,30 @@
ERROR("%s %d change mode fail",__FUNCTION__,__LINE__);
goto out;
}
- DEBUG("%s %d set hdr policy:%d colordepth: %d colorspace: %d",__FUNCTION__,__LINE__,hdrPolicy,colorDepth,colorSpace,FracRate);
- respolicy = meson_drm_setHDRPolicy(fd, req, hdrPolicy, connType);
+ switch (hdrPolicy) {
+ case DISPLAY_HDR_POLICY_FOLLOW_SINK:
+ mesonHdrPolicy = MESON_HDR_POLICY_FOLLOW_SINK;
+ break;
+ case DISPLAY_HDR_POLICY_FOLLOW_SOURCE:
+ mesonHdrPolicy = MESON_HDR_POLICY_FOLLOW_SOURCE;
+ break;
+ case DISPLAY_HDR_POLICY_FOLLOW_FORCE_MODE:
+ mesonHdrPolicy = MESON_HDR_POLICY_FOLLOW_FORCE_MODE;
+ break;
+ default:
+ mesonHdrPolicy = MESON_HDR_POLICY_FOLLOW_SOURCE;
+ break;
+ }
+ DEBUG("%s %d set hdr policy:%d colordepth: %d colorspace: %d",__FUNCTION__,__LINE__,mesonHdrPolicy,colorDepth,colorSpace,FracRate);
+ respolicy = meson_drm_setHDRPolicy(fd, req, mesonHdrPolicy, connType);
if (respolicy == -1) {
ERROR("%s %d set hdr policy fail",__FUNCTION__,__LINE__);
goto out;
}
if (hdrPolicy == DISPLAY_HDR_POLICY_FOLLOW_FORCE_MODE) {
- forcemode = DISPLAY_BT709;
+ forcemode = MESON_DRM_BT709;
} else {
- forcemode = DISPLAY_UNKNOWN_FMT;
+ forcemode = MESON_DRM_UNKNOWN_FMT;
}
DEBUG("%s %d set force mode: %d",__FUNCTION__,__LINE__,forcemode);
resforce = meson_drm_setHdrForceMode(fd, req, forcemode, connType);
@@ -606,7 +648,30 @@
ERROR("%s %d set color depth fail",__FUNCTION__,__LINE__);
goto out;
}
- rescolorspace = meson_drm_setColorSpace(fd, req, colorSpace, connType);
+ switch (colorSpace)
+ {
+ case DISPLAY_COLOR_SPACE_RGB:
+ str = "DISPLAY_COLOR_SPACE_RGB";
+ mesonColorSpace = MESON_COLOR_SPACE_RGB;
+ break;
+ case DISPLAY_COLOR_SPACE_YCBCR422:
+ str = "DISPLAY_COLOR_SPACE_YCBCR422";
+ mesonColorSpace = MESON_COLOR_SPACE_YCBCR422;
+ break;
+ case DISPLAY_COLOR_SPACE_YCBCR444:
+ str = "DISPLAY_COLOR_SPACE_YCBCR444";
+ mesonColorSpace = MESON_COLOR_SPACE_YCBCR444;
+ break;
+ case DISPLAY_COLOR_SPACE_YCBCR420:
+ str = "DISPLAY_COLOR_SPACE_YCBCR420";
+ mesonColorSpace = MESON_COLOR_SPACE_YCBCR420;
+ break;
+ default:
+ str = "DISPLAY_COLOR_SPACE_RESERVED";
+ mesonColorSpace = MESON_COLOR_SPACE_RESERVED;
+ break;
+ }
+ rescolorspace = meson_drm_setColorSpace(fd, req, mesonColorSpace, connType);
if (rescolorspace == -1) {
ERROR("%s %d set color space fail",__FUNCTION__,__LINE__);
goto out;