aboutsummaryrefslogtreecommitdiff
path: root/drm
diff options
context:
space:
mode:
authorRoman Stratiienko <roman.o.stratiienko@globallogic.com>2022-01-21 15:12:56 +0200
committerRoman Stratiienko <roman.o.stratiienko@globallogic.com>2022-02-04 11:16:32 +0200
commitd0c035b44a844af5017c0c3b2507af2f3907c36c (patch)
tree0204a64b0bf4d16f320678377be9620143dd0119 /drm
parent099c31156d4d916c1e18ec00ab163de77bd17a94 (diff)
downloaddrm_hwcomposer-d0c035b44a844af5017c0c3b2507af2f3907c36c.tar.gz
drm_hwcomposer: Implement SetActiveConfigWithConstraints
Enough to get 100% passes in Composer 2.4 VTS. Some SOCs require a VTS fix to pass [1] [1]: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1954544 Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
Diffstat (limited to 'drm')
-rw-r--r--drm/ResourceManager.cpp8
-rw-r--r--drm/ResourceManager.h2
2 files changed, 10 insertions, 0 deletions
diff --git a/drm/ResourceManager.cpp b/drm/ResourceManager.cpp
index 789eca3..b294180 100644
--- a/drm/ResourceManager.cpp
+++ b/drm/ResourceManager.cpp
@@ -21,6 +21,7 @@
#include <fcntl.h>
#include <sys/stat.h>
+#include <ctime>
#include <sstream>
#include "bufferinfo/BufferInfoGetter.h"
@@ -114,6 +115,13 @@ int ResourceManager::AddDrmDevice(const std::string &path) {
return ret;
}
+auto ResourceManager::GetTimeMonotonicNs() -> int64_t {
+ struct timespec ts {};
+ clock_gettime(CLOCK_MONOTONIC, &ts);
+ constexpr int64_t kNsInSec = 1000000000LL;
+ return int64_t(ts.tv_sec) * kNsInSec + int64_t(ts.tv_nsec);
+}
+
void ResourceManager::UpdateFrontendDisplays() {
auto ordered_connectors = GetOrderedConnectors();
diff --git a/drm/ResourceManager.h b/drm/ResourceManager.h
index c4c3edd..88ba878 100644
--- a/drm/ResourceManager.h
+++ b/drm/ResourceManager.h
@@ -56,6 +56,8 @@ class ResourceManager {
return main_lock_;
}
+ static auto GetTimeMonotonicNs() -> int64_t;
+
private:
auto AddDrmDevice(std::string const &path) -> int;
auto GetOrderedConnectors() -> std::vector<DrmConnector *>;