summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <luchris@google.com>2023-12-08 07:28:37 +0000
committerShiyong Li <shiyongli@google.com>2023-12-12 21:43:22 +0000
commitae59bf782af735a45e16b75f4dee43ac173c8808 (patch)
treeaa0c0b3e8c451c7dfc71f5d92c99702f1d5ce62f
parent495a4c891ce0280f7673ca3f7691e39b898d4d13 (diff)
downloadcommon-ae59bf782af735a45e16b75f4dee43ac173c8808.tar.gz
libhwc2.1: avoid SF idle timer working in pseudo VRR mode
Use the API to check the VRR mode, and return true for panel idle timer if pseudo VRR is used. Bug: 315271499 Test: SF idle timer is not working in pseudo VRR mode Change-Id: I80962c3365466677d34228e5481a3c3824c00055
-rw-r--r--libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
index e596c14..badaa61 100644
--- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
+++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
@@ -461,9 +461,14 @@ void ExynosDisplayDrmInterface::destroyLayer(ExynosLayer *layer) {
}
int32_t ExynosDisplayDrmInterface::getDisplayIdleTimerSupport(bool &outSupport) {
- if (mIsVrrModeSupported) {
+ if (isFullVrrSupported()) {
outSupport = false;
return NO_ERROR;
+ } else if (isPseudoVrrSupported()) {
+ // Retuen true to avoid SF idle timer working. We insert frames manually
+ // for pseudo VRR, so ideally panel idle should be disabled in the driver.
+ outSupport = true;
+ return NO_ERROR;
}
auto [ret, support] = mDrmConnector->panel_idle_support().value();