| Message ID | 20260821094747.2252938-1-alexi.birlinger@nxp.com |
|---|---|
| State | New |
| Headers | show |
| Series |
|
| Related | show |
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 },
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 },
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(-)