diff options
author | Kaiyi Li <kaiyili@google.com> | 2024-04-11 11:41:34 -0700 |
---|---|---|
committer | Kaiyi Li <kaiyili@google.com> | 2024-04-11 11:43:27 -0700 |
commit | 7c17df811920df33881f0c39fe230918686c6126 (patch) | |
tree | 2d03e70c2f6fc2a1b70f49e68b1551d9e9dc9720 | |
parent | 0d4184f656b0607f94b6066f396656526f0835b1 (diff) | |
download | goldfish-opengl-7c17df811920df33881f0c39fe230918686c6126.tar.gz |
hwc3: reload the property IDs on update
The EDID property ID gets shifted after the display is hot plugined.
Change-Id: I2121afaffd769a0ae7eef660ccfd7995ce424478
-rw-r--r-- | system/hwc3/DrmConnector.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/system/hwc3/DrmConnector.cpp b/system/hwc3/DrmConnector.cpp index 081310e3..d8906445 100644 --- a/system/hwc3/DrmConnector.cpp +++ b/system/hwc3/DrmConnector.cpp @@ -31,12 +31,6 @@ std::unique_ptr<DrmConnector> DrmConnector::create(::android::base::borrowed_fd uint32_t connectorId) { std::unique_ptr<DrmConnector> connector(new DrmConnector(connectorId)); - if (!LoadDrmProperties(drmFd, connectorId, DRM_MODE_OBJECT_CONNECTOR, GetPropertiesMap(), - connector.get())) { - ALOGE("%s: Failed to load connector properties.", __FUNCTION__); - return nullptr; - } - if (!connector->update(drmFd)) { return nullptr; } @@ -47,6 +41,13 @@ std::unique_ptr<DrmConnector> DrmConnector::create(::android::base::borrowed_fd bool DrmConnector::update(::android::base::borrowed_fd drmFd) { DEBUG_LOG("%s: Loading properties for connector:%" PRIu32, __FUNCTION__, mId); + if (!LoadDrmProperties(drmFd, mId, DRM_MODE_OBJECT_CONNECTOR, GetPropertiesMap(), + this)) { + ALOGE("%s: Failed to load connector properties.", __FUNCTION__); + return false; + } + + drmModeConnector* drmConnector = drmModeGetConnector(drmFd.get(), mId); if (!drmConnector) { ALOGE("%s: Failed to load connector.", __FUNCTION__); |