drm_hwcomposer: Use DPMS property to configure display pipeline
Some of KMS drivers like kirin are sensitive to display pipeline
configuration, modern kernel will configure the pipeline correctly
when user sets DPMS property.
To be more precise current compositor logic will not attach primary
plane to the CRTC, while kirin relies on it internally.
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
diff --git a/compositor/DrmDisplayCompositor.cpp b/compositor/DrmDisplayCompositor.cpp
index fc95b26..89e7f2d 100644
--- a/compositor/DrmDisplayCompositor.cpp
+++ b/compositor/DrmDisplayCompositor.cpp
@@ -233,4 +233,20 @@
return err;
} // namespace android
+auto DrmDisplayCompositor::ActivateDisplayUsingDPMS() -> int {
+ auto *drm = resource_manager_->GetDrmDevice(display_);
+ auto *connector = drm->GetConnectorForDisplay(display_);
+ if (connector == nullptr) {
+ ALOGE("Could not locate connector for display %d", display_);
+ return -ENODEV;
+ }
+
+ if (connector->dpms_property()) {
+ drmModeConnectorSetProperty(drm->fd(), connector->id(),
+ connector->dpms_property().id(),
+ DRM_MODE_DPMS_ON);
+ }
+ return 0;
+}
+
} // namespace android