| Message ID | 20260817134042.277168-5-johannes.goede@oss.qualcomm.com |
|---|---|
| State | Superseded |
| Headers | show |
| Series |
|
| Related | show |
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;
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;