From 6643ffb3c435740c787a2748d74f1d12c92dd0aa Mon Sep 17 00:00:00 2001 From: Sam Yang Date: Thu, 4 Jan 2024 18:40:25 +0800 Subject: [PATCH] 1856:fix black screen when changing resolution and standby --- .../services/systemcontrol/DisplayMode.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/frameworks/services/systemcontrol/DisplayMode.cpp b/frameworks/services/systemcontrol/DisplayMode.cpp index 3b5efc95f..e48d2dde8 100644 --- a/frameworks/services/systemcontrol/DisplayMode.cpp +++ b/frameworks/services/systemcontrol/DisplayMode.cpp @@ -589,6 +589,8 @@ void DisplayMode::setSourceOutputMode(const char* outputmode, output_mode_state } // 1.set avmute and close phy if (OUPUT_MODE_STATE_INIT != state) { + // if (OUPUT_MODE_STATE_INIT != state && isDisplayOn == true) { + SYS_LOGI("samtest, %s, 1.set avmute and close phy\n", __FUNCTION__); pSysWrite->writeSysfs(DISPLAY_HDMI_AVMUTE, "1"); if (OUPUT_MODE_STATE_POWER != state) { usleep(50000);//50ms @@ -600,7 +602,10 @@ void DisplayMode::setSourceOutputMode(const char* outputmode, output_mode_state } // 2.stop hdcp tx - pTxAuth->stop(); + // if (isDisplayOn == true) { + SYS_LOGI("samtest, %s, pTxAuth->stop();\n", __FUNCTION__); + pTxAuth->stop(); + // } if (!strcmp(outputmode, MODE_480CVBS) || !strcmp(outputmode, MODE_576CVBS) || !strcmp(outputmode, MODE_PANEL) || !strcmp(outputmode, MODE_PAL_M) || !strcmp(outputmode, MODE_PAL_N) || !strcmp(outputmode, MODE_NTSC_M) || !strcmp(outputmode, "null")) { cvbsMode = true; @@ -703,9 +708,19 @@ void DisplayMode::setSourceOutputMode(const char* outputmode, output_mode_state } SYS_LOGI("setMboxOutputMode cvbsMode = %d\n", cvbsMode); + + // samtest + // if (isDisplayOn == false) { + // SYS_LOGI("samtest, %s, isDisplayOn == false return\n", __FUNCTION__); + // return; + // } + //4. turn on phy and clear avmute if (OUPUT_MODE_STATE_INIT != state && !cvbsMode) { - pSysWrite->writeSysfs(DISPLAY_HDMI_PHY, "1"); /* Turn on TMDS PHY */ + if (isDisplayOn == true) { + SYS_LOGI("samtest, %s, display on, write HDMI phy 1)\n", __FUNCTION__); + pSysWrite->writeSysfs(DISPLAY_HDMI_PHY, "1"); /* Turn on TMDS PHY */ + } usleep(20000); pSysWrite->writeSysfs(DISPLAY_HDMI_AUDIO_MUTE, "1"); pSysWrite->writeSysfs(DISPLAY_HDMI_AUDIO_MUTE, "0"); -- 2.25.1