drm_hwcomposer: Fix EDID fetch from DRM
EDID fetch procedure consist of two steps:
1) get appropriate blob_id
2) fetch EDID blob using blob_id
Those steps should be done sequentially, in
other case drivers can update EDID and blob_id
won't be actual.
Signed-off-by: Andrii Chepurnyi <andrii_chepurnyi@epam.com>
diff --git a/DrmHwcTwo.cpp b/DrmHwcTwo.cpp
index 15fa324..65a317c 100644
--- a/DrmHwcTwo.cpp
+++ b/DrmHwcTwo.cpp
@@ -915,17 +915,12 @@
supported(__func__);
drmModePropertyBlobPtr blob;
- int ret;
- uint64_t blob_id;
- std::tie(ret, blob_id) = connector_->edid_property().value();
- if (ret) {
+ if (connector_->GetEdidBlob(blob)) {
ALOGE("Failed to get edid property value.");
return HWC2::Error::Unsupported;
}
- blob = drmModeGetPropertyBlob(drm_->fd(), blob_id);
-
if (outData) {
*outDataSize = std::min(*outDataSize, blob->length);
memcpy(outData, blob->data, *outDataSize);