commit | f0c507f16b99ff9ac30fb1a95fd1d1c1c9eaf55a | [log] [tgz] |
---|---|---|
author | Roman Stratiienko <roman.o.stratiienko@globallogic.com> | Mon Jan 17 18:29:24 2022 +0200 |
committer | Roman Stratiienko <roman.o.stratiienko@globallogic.com> | Thu Jan 20 17:21:46 2022 +0200 |
tree | 01819d17b3a3b427f84d648054d1ea50c3ce1d77 | |
parent | aa8ec5204dc019acab6b20b1830469c414439ee7 [diff] [blame] |
drm_hwcomposer: Add headless mode support Headless mode required to keep SurfaceFlinger alive when all displays are disconnected, Without headless mode Android will continuously crash. Only single internal (primary) display is required to be in HEADLESS mode to prevent the crash. See [1]. [1]: https://source.android.com/devices/graphics/hotplug#handling-common-scenarios Closes: https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/issues/57 Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
diff --git a/drm/DrmMode.cpp b/drm/DrmMode.cpp index 1c8bd0f..010ea1b 100644 --- a/drm/DrmMode.cpp +++ b/drm/DrmMode.cpp
@@ -94,6 +94,9 @@ } float DrmMode::v_refresh() const { + if (clock_ == 0) { + return v_refresh_; + } // Always recalculate refresh to report correct float rate return static_cast<float>(clock_) / (float)(v_total_ * h_total_) * 1000.0F; }