[libcamera-devel] [PATCH 1/3] cam: drm: Add support for test-only commits

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sun Aug 7 20:00:58 CEST 2022


Test-only commits are used to test a commit without applying any
modification to the device. This will be used by the KMS sink to test
feature support.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 src/cam/drm.cpp | 2 ++
 src/cam/drm.h   | 1 +
 2 files changed, 3 insertions(+)

diff --git a/src/cam/drm.cpp b/src/cam/drm.cpp
index fbfc0a595d36..b0602c942853 100644
--- a/src/cam/drm.cpp
+++ b/src/cam/drm.cpp
@@ -377,6 +377,8 @@ int AtomicRequest::commit(unsigned int flags)
 		drmFlags |= DRM_MODE_ATOMIC_ALLOW_MODESET;
 	if (flags & FlagAsync)
 		drmFlags |= DRM_MODE_PAGE_FLIP_EVENT | DRM_MODE_ATOMIC_NONBLOCK;
+	if (flags & FlagTestOnly)
+		drmFlags |= DRM_MODE_ATOMIC_TEST_ONLY;
 
 	return drmModeAtomicCommit(dev_->fd(), request_, drmFlags, this);
 }
diff --git a/src/cam/drm.h b/src/cam/drm.h
index 655a7509c001..ebaea04d3974 100644
--- a/src/cam/drm.h
+++ b/src/cam/drm.h
@@ -251,6 +251,7 @@ public:
 	enum Flags {
 		FlagAllowModeset = (1 << 0),
 		FlagAsync = (1 << 1),
+		FlagTestOnly = (1 << 2),
 	};
 
 	AtomicRequest(Device *dev);
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list