diff options
author | Long Ling <longling@google.com> | 2022-06-21 10:19:00 -0700 |
---|---|---|
committer | Long Ling <longling@google.com> | 2022-06-21 11:08:36 -0700 |
commit | 2a4885d63a59cfc0582fbcf1a9a4d26f9c28f356 (patch) | |
tree | 0d23ad708b0cca261178c5ed83e542efedc59f5a /libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp | |
parent | 7ae595591d74ef2bcb5240f3dafa570a0de32a1f (diff) |
libhwc2.1: skip mipi sync in DOZE mode
panel driver does not support mipi sync in DOZE mode.
mipi sync requires to batch all mipi commands to send to panel.
But for DOZE to ON transition, we need to insert sleep between mipi
commands.
Bug: 236388323
Change-Id: I628cff0f877ba22dc10734d9f9da202849401071
Diffstat (limited to 'libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp')
-rw-r--r-- | libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp index 51dddd7..64d2602 100644 --- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp +++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp @@ -1813,11 +1813,15 @@ int32_t ExynosDisplayDrmInterface::deliverWinConfigData() } if (mDrmConnector->mipi_sync().id() && (mipi_sync_type != 0)) { - ATRACE_NAME("mipi_sync"); // mark this commit - if ((ret = drmReq.atomicAddProperty(mDrmConnector->id(), - mDrmConnector->mipi_sync(), - mipi_sync_type)) < 0) { - HWC_LOGE(mExynosDisplay, "%s: Fail to set mipi_sync property (%d)", __func__, ret); + // skip mipi sync in Doze mode + bool inDoze = isDozeModeAvailable() && mDozeDrmMode.id() == mActiveModeState.mode.id(); + if (!inDoze) { + ATRACE_NAME("mipi_sync"); // mark this commit + if ((ret = drmReq.atomicAddProperty(mDrmConnector->id(), + mDrmConnector->mipi_sync(), + mipi_sync_type)) < 0) { + HWC_LOGE(mExynosDisplay, "%s: Fail to set mipi_sync property (%d)", __func__, ret); + } } } |