Merge "meson_dislay: Add flow for setting dummy mode [1/1]"
diff --git a/display_framework/src/extension/display_settings/display_settings.c b/display_framework/src/extension/display_settings/display_settings.c
index 3a5eb9c..c4e8cb9 100644
--- a/display_framework/src/extension/display_settings/display_settings.c
+++ b/display_framework/src/extension/display_settings/display_settings.c
@@ -477,6 +477,7 @@
int setDisplayMode(DisplayMode* modeInfo,MESON_CONNECTOR_TYPE connType) {
int res = -1;
int ret = -1;
+ int resNum = -1;
int fd = 0;
drmModeAtomicReq *req = NULL;
if (modeInfo == NULL) {
@@ -492,7 +493,18 @@
res = meson_drm_changeMode(fd, req, modeInfo, connType);
if (res == -1) {
ERROR("changeModeFail\n");
- goto out;
+ if (connType == MESON_CONNECTOR_DUMMY) {
+ ERROR("No dummy connector ,set hdmi dummy_l mode\n");
+ modeInfo->interlace = 0;
+ modeInfo->w = 720;
+ modeInfo->h = 480;
+ modeInfo->vrefresh = 50;
+ resNum = meson_drm_changeMode(fd, req, modeInfo, MESON_CONNECTOR_HDMIA);
+ if (resNum == -1) {
+ ERROR("meson_drm_changeMode Fail");
+ goto out;
+ }
+ }
}
ret = drmModeAtomicCommit(fd, req, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
if (ret) {
diff --git a/display_framework/src/extension/display_settings/display_settings.h b/display_framework/src/extension/display_settings/display_settings.h
index 662743f..4752a47 100644
--- a/display_framework/src/extension/display_settings/display_settings.h
+++ b/display_framework/src/extension/display_settings/display_settings.h
@@ -67,6 +67,7 @@
MESON_CONNECTOR_HDMIB,
MESON_CONNECTOR_LVDS,
MESON_CONNECTOR_CVBS,
+ MESON_CONNECTOR_DUMMY,
MESON_CONNECTOR_RESERVED
} MESON_CONNECTOR_TYPE;
diff --git a/display_framework/src/extension/display_settings/display_settings_Test.c b/display_framework/src/extension/display_settings/display_settings_Test.c
index 677d962..ad40a25 100644
--- a/display_framework/src/extension/display_settings/display_settings_Test.c
+++ b/display_framework/src/extension/display_settings/display_settings_Test.c
@@ -37,7 +37,7 @@
select_len = scanf("%d",&select_s);
if (select_s == 0 && select_len == 1) {
printf("set:0->hdmi mode 1->cvbs mode 2->event test 3->hdr policy 4->av mute 5->HDMI HDCP enable 6-><colorSpace, colorDepth>"
- "7->HDCP Content Type 8->DvEnable 9->active 10->vrr Enable 11->auto mode\n");
+ "7->HDCP Content Type 8->DvEnable 9->active 10->vrr Enable 11->auto mode 12->dummy mode\n");
len = scanf("%d",&set);
if (set == 0 && len == 1) {
printf("please input modeInfo:interlace, w, h, vrefresh\n");
@@ -147,11 +147,20 @@
printf("\n scanf fail\n");
}
} else if (set == 11 && len == 1) {
- if (0 == setDisplayAutoMode(MESON_CONNECTOR_HDMIA))
+ if (0 == setDisplayAutoMode(MESON_CONNECTOR_HDMIA)) {
printf("Successfully set the optimal resolution!\n");
} else {
printf("scanf fail\n");
- }
+ }
+ } else if (set == 12 && len == 1) {
+ printf("please input dummy modeInfo:interlace, w, h, vrefresh\n");
+ scanf("%d %d %d %d", &modeInfo->interlace, &modeInfo->w, &modeInfo->h,&modeInfo->vrefresh);
+ if (setDisplayMode(modeInfo, MESON_CONNECTOR_DUMMY) == 0) {
+ printf("\n modeļ¼%d %d %d %d\n",modeInfo->interlace,modeInfo->w, modeInfo->h, modeInfo->vrefresh);
+ }else{
+ printf("setModeFail\n");
+ }
+ }
}
else if(select_s == 1 && select_len == 1) {
printf("get:0->hdrPolicy 1->modeinfo 2->HDCP version 3->HDMI connected 4->color depth 5->color space"