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

Message ID 20251125162851.2301793-30-stefan.klug@ideasonboard.com
State Superseded
Headers show
Series
  • Full dewarper support on imx8mp
Related show

Commit Message

Stefan Klug Nov. 25, 2025, 4:28 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/converter/converter_dw100.cpp | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

Patch
diff mbox series

diff --git a/src/libcamera/converter/converter_dw100.cpp b/src/libcamera/converter/converter_dw100.cpp
index b39e4ab23cd6..22a15a368e38 100644
--- a/src/libcamera/converter/converter_dw100.cpp
+++ b/src/libcamera/converter/converter_dw100.cpp
@@ -33,6 +33,17 @@  LOG_DECLARE_CATEGORY(Converter)
  * and it has direct support for libcamera controls.
  */
 
+namespace {
+
+/*
+ * 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 */
+
 ConverterDW100Module::ConverterDW100Module(std::shared_ptr<MediaDevice> media)
 	: converter_(media), running_(false)
 {
@@ -353,7 +364,7 @@  void ConverterDW100Module::updateControlInfos(const Stream *stream, ControlInfoM
 	controls[&controls::Dw100ScaleMode] =
 		ControlInfo(controls::Dw100ScaleModeValues, controls::Dw100ScaleModeFill);
 
-	if (!converter_.supportsRequests())
+	if (!converter_.supportsRequests() && !kAllowDynamicDewarpMapsWithoutRequests)
 		LOG(Converter, Warning)
 			<< "dw100 kernel driver has no requests support."
 			   " Dynamic configuration is not possible.";