[v8,4/8] pipeline: rpi: Explictly pass pipe()->name() when creating IPA
diff mbox series

Message ID 20260817134042.277168-5-johannes.goede@oss.qualcomm.com
State Superseded
Headers show
Series
  • ipa: Allow IPA creation by name
Related show

Commit Message

Hans de Goede Aug. 17, 2026, 1:40 p.m. UTC
Switch to explicitly specifying the pipeline-name as the name of the IPA
to create.

This is a preparation patch for switching the default IPA creation to
matching IPA by IPA proxy type, which does not work for rpi because
the same IPAProxyRPi type is used for both the rpi/vc4 and rpi/pisp
pipeline handlers.

Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
---
Changes in v7:
- Add a comment explaining why pipe()->name() is used when creating the IPA

Changes in v6:
- New patch in v6 of this patch-series
---
 src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Barnabás Pőcze Aug. 17, 2026, 7:08 p.m. UTC | #1
2026. 08. 17. 15:40 keltezéssel, Hans de Goede írta:
> Switch to explicitly specifying the pipeline-name as the name of the IPA
> to create.
> 
> This is a preparation patch for switching the default IPA creation to
> matching IPA by IPA proxy type, which does not work for rpi because
> the same IPAProxyRPi type is used for both the rpi/vc4 and rpi/pisp
> pipeline handlers.
> 
> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
> Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
> ---
> Changes in v7:
> - Add a comment explaining why pipe()->name() is used when creating the IPA
> 
> Changes in v6:
> - New patch in v6 of this patch-series
> ---

Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>


>   src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 8 +++++++-
>   1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> index 5a5acf6a1..802b2b3c7 100644
> --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> @@ -1165,7 +1165,13 @@ int CameraData::loadIPA(ipa::RPi::InitResult *result)
>   {
>   	int ret;
>   
> -	ipa_ = pipe()->createIPA<ipa::RPi::IPAProxyRPi>(1, 1);
> +	/*
> +	 * Explicitly pass pipe()->name() to select the IPA to create.
> +	 * The default behavior of creating the IPA by the IPA proxy type name
> +	 * does not work because the same IPAProxyRPi type is used for both
> +	 * the rpi/vc4 and rpi/pisp pipeline handlers.
> +	 */
> +	ipa_ = pipe()->createIPA<ipa::RPi::IPAProxyRPi>(pipe()->name(), 1, 1);
>   
>   	if (!ipa_)
>   		return -ENOENT;

Patch
diff mbox series

diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
index 5a5acf6a1..802b2b3c7 100644
--- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
+++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
@@ -1165,7 +1165,13 @@  int CameraData::loadIPA(ipa::RPi::InitResult *result)
 {
 	int ret;
 
-	ipa_ = pipe()->createIPA<ipa::RPi::IPAProxyRPi>(1, 1);
+	/*
+	 * Explicitly pass pipe()->name() to select the IPA to create.
+	 * The default behavior of creating the IPA by the IPA proxy type name
+	 * does not work because the same IPAProxyRPi type is used for both
+	 * the rpi/vc4 and rpi/pisp pipeline handlers.
+	 */
+	ipa_ = pipe()->createIPA<ipa::RPi::IPAProxyRPi>(pipe()->name(), 1, 1);
 
 	if (!ipa_)
 		return -ENOENT;