[v1,33/33] DNI pipeline: rkisp1: Workaround for customer kernels without requests
diff mbox series

Message ID 20250930122726.1837524-34-stefan.klug@ideasonboard.com
State New
Headers show
Series
  • Full dewarper support on imx8mp
Related show

Commit Message

Stefan Klug Sept. 30, 2025, 12:26 p.m. UTC
There are a few kernels out there that have dynamic vertex map support,
but no requests support. Allow full dewarp usage on these.

Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>
---
 src/libcamera/pipeline/rkisp1/rkisp1.cpp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Patch
diff mbox series

diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
index 98521c804d84..e50cf8c0f978 100644
--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
@@ -183,6 +183,13 @@  static constexpr unsigned int kRkISP1MaxQueuedRequests = 4;
  */
 static constexpr unsigned int kRkISP1MinBufferCount = 4;
 
+/*
+ * This flag allows to use dynamic dewarp maps to support pan, zoom, rotate when
+ * the kernel driver doesn't support requests. Only needed for legacy customer
+ * kernels.
+ */
+static constexpr bool kAllowDynamicDewarpMapsWithoutRequests = true;
+
 } /* namespace */
 
 class PipelineHandlerRkISP1 : public PipelineHandler
@@ -1514,7 +1521,7 @@  int PipelineHandlerRkISP1::updateControls(RkISP1CameraData *data)
 								      maxCrop);
 		}
 
-		if (dewarper_->supportsRequests()) {
+		if (dewarper_->supportsRequests() || kAllowDynamicDewarpMapsWithoutRequests) {
 			controls[&controls::draft::Dw100Scale] = ControlInfo(0.2f, 8.0f, 1.0f);
 			controls[&controls::draft::Dw100Rotation] = ControlInfo(-180.0f, 180.0f, 0.0f);
 			controls[&controls::draft::Dw100Offset] = ControlInfo(Point(-10000, -10000), Point(10000, 10000), Point(0, 0));