[v1] pipeline: simple: Revert "libcamera: simple: Enable SoftISP for imx7-csi"
diff mbox series

Message ID 20260821094747.2252938-1-alexi.birlinger@nxp.com
State New
Headers show
Series
  • [v1] pipeline: simple: Revert "libcamera: simple: Enable SoftISP for imx7-csi"
Related show

Commit Message

Alexi Birlinger Aug. 21, 2026, 9:47 a.m. UTC
This reverts commit 4a5ebcf675a439c429ee9164c779e617b58bb7a9. It enabled
the software ISP by default for the imx7-csi driver.
However, this introduces a conflict with the PXP hardware converter also
declared for that platform:

    { "imx7-csi", { { "pxp", 1 } }, true },

The simple pipeline handler enforces mutual exclusivity between a
hardware converter and the software ISP, as both serve the same purpose
of producing a processed output stream. When a converter is present,
the match phase asserts:

    ASSERT(!converter_);

This causes a runtime crash on any i.MX platform using the imx7-csi
driver that has PXP available.

Disable the software ISP flag for imx7-csi, restoring the previous
behaviour and eliminating the converter/swISP conflict. Users who
wish to enable the software ISP on supported imx7-csi platforms
(i.e. those without a PXP converter) can do so at runtime via the
libcamera configuration file by setting the software_isp key in the
simple pipeline section.

Signed-off-by: Alexi Birlinger <alexi.birlinger@nxp.com>
---
 Documentation/isp-feature-matrix.rst     | 1 -
 src/libcamera/pipeline/simple/simple.cpp | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

Comments

Barnabás Pőcze Aug. 21, 2026, 10:11 a.m. UTC | #1
2026. 08. 21. 11:47 keltezéssel, Alexi Birlinger írta:
> This reverts commit 4a5ebcf675a439c429ee9164c779e617b58bb7a9. It enabled
> the software ISP by default for the imx7-csi driver.
> However, this introduces a conflict with the PXP hardware converter also
> declared for that platform:
> 
>      { "imx7-csi", { { "pxp", 1 } }, true },
> 
> The simple pipeline handler enforces mutual exclusivity between a
> hardware converter and the software ISP, as both serve the same purpose
> of producing a processed output stream. When a converter is present,
> the match phase asserts:
> 
>      ASSERT(!converter_);
> 
> This causes a runtime crash on any i.MX platform using the imx7-csi
> driver that has PXP available.

Ahh, I was just referring to this in my other reply: https://patchwork.libcamera.org/patch/27953/#40407


> 
> Disable the software ISP flag for imx7-csi, restoring the previous
> behaviour and eliminating the converter/swISP conflict. Users who
> wish to enable the software ISP on supported imx7-csi platforms
> (i.e. those without a PXP converter) can do so at runtime via the
> libcamera configuration file by setting the software_isp key in the
> simple pipeline section.

I'm wondering if maybe we could do something better, e.g.:

   * if configuration file wants software-isp, use that
   * if converter is found, use that
   * if configuration file does not disable software-isp
        and it is allowed in `supportedDevices`, use that
   * otherwise fail

I think this would avoid the need for a configuration file in converter-less scenario.
Thoughts?


> 
> Signed-off-by: Alexi Birlinger <alexi.birlinger@nxp.com>
> ---
>   Documentation/isp-feature-matrix.rst     | 1 -
>   src/libcamera/pipeline/simple/simple.cpp | 2 +-
>   2 files changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/Documentation/isp-feature-matrix.rst b/Documentation/isp-feature-matrix.rst
> index b56f1e56e..3b101eb2f 100644
> --- a/Documentation/isp-feature-matrix.rst
> +++ b/Documentation/isp-feature-matrix.rst
> @@ -67,7 +67,6 @@ different platforms in libcamera.
>   
>      * Intel 11th-14th Gen (IPU6)
>      * Intel 15th Gen (IPU7)
> -   * NXP i.MX7 and i.MX8 series (imx7-csi)
>      * Texas Instruments J7x/AM6x
>      * Qualcomm Snapdragon (CamSS)
>   
> diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
> index 02a98f594..fb777b3b4 100644
> --- a/src/libcamera/pipeline/simple/simple.cpp
> +++ b/src/libcamera/pipeline/simple/simple.cpp
> @@ -257,7 +257,7 @@ namespace {
>   
>   static const SimplePipelineInfo supportedDevices[] = {
>   	{ "dcmipp", {}, false },
> -	{ "imx7-csi", { { "pxp", 1 } }, true },
> +	{ "imx7-csi", { { "pxp", 1 } }, false },
>   	{ "intel-ipu6", {}, true },
>   	{ "intel-ipu7", {}, true },
>   	{ "j721e-csi2rx", {}, true },

Patch
diff mbox series

diff --git a/Documentation/isp-feature-matrix.rst b/Documentation/isp-feature-matrix.rst
index b56f1e56e..3b101eb2f 100644
--- a/Documentation/isp-feature-matrix.rst
+++ b/Documentation/isp-feature-matrix.rst
@@ -67,7 +67,6 @@  different platforms in libcamera.
 
    * Intel 11th-14th Gen (IPU6)
    * Intel 15th Gen (IPU7)
-   * NXP i.MX7 and i.MX8 series (imx7-csi)
    * Texas Instruments J7x/AM6x
    * Qualcomm Snapdragon (CamSS)
 
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index 02a98f594..fb777b3b4 100644
--- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -257,7 +257,7 @@  namespace {
 
 static const SimplePipelineInfo supportedDevices[] = {
 	{ "dcmipp", {}, false },
-	{ "imx7-csi", { { "pxp", 1 } }, true },
+	{ "imx7-csi", { { "pxp", 1 } }, false },
 	{ "intel-ipu6", {}, true },
 	{ "intel-ipu7", {}, true },
 	{ "j721e-csi2rx", {}, true },