summaryrefslogtreecommitdiff
path: root/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
diff options
context:
space:
mode:
authorJoen Chen <joenchen@google.com>2022-11-24 04:15:54 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-11-24 04:15:54 +0000
commitd654fa19a31c81dd7461a1d1da5edb76e7b98fe7 (patch)
treebf76948057504af0bfeef6ea7bbb2f1e60b16296 /libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
parent74f298269c43e92c1c4aa0ccc3be8a9aa1644bf4 (diff)
parent8b1e213b801d5664eb097c423238e766f62c7dfd (diff)
Merge "HWC boots in FHD resolution" into tm-qpr-dev am: 25e1343581 am: 8b1e213b80
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/20337006 Change-Id: I6aa488214f538cd8ac36f373bb31cc876d3699fe Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp')
-rw-r--r--libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
index 45f5043..8b13742 100644
--- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
+++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
@@ -833,15 +833,20 @@ int32_t ExynosDisplayDrmInterface::chosePreferredConfig()
if (err != HWC2_ERROR_NONE || !num_configs)
return err;
- hwc2_config_t config;
- int32_t bootConfig;
- err = mExynosDisplay->getPreferredDisplayConfigInternal(&bootConfig);
- if (err == HWC2_ERROR_NONE && property_get_bool("sys.boot_completed", false) == true) {
- config = static_cast<hwc2_config_t>(bootConfig);
+ int32_t config = -1;
+ char modeStr[PROPERTY_VALUE_MAX] = "\0";
+ int32_t width = 0, height = 0, fps = 0;
+ if (property_get("vendor.display.preferred_mode", modeStr, "") > 0 &&
+ sscanf(modeStr, "%dx%d@%d", &width, &height, &fps) == 3) {
+ err = mExynosDisplay->lookupDisplayConfigs(width, height, fps, &config);
} else {
+ err = HWC2_ERROR_BAD_CONFIG;
+ }
+
+ if (err != HWC2_ERROR_NONE) {
config = mDrmConnector->get_preferred_mode_id();
}
- ALOGI("Preferred mode id: %d, state: %d", config, mDrmConnector->state());
+ ALOGI("Preferred mode id: %d(%s), state: %d", config, modeStr, mDrmConnector->state());
if ((err = setActiveConfig(config)) < 0) {
ALOGE("failed to set default config, err %d", err);