[v4,4/4] libcamera: software_isp: Explicitly load "simple" IPA
diff mbox series

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

Commit Message

Hans de Goede April 8, 2026, 11:56 a.m. UTC
Explicitly specify the "simple" IPA name when loading the IPA so that
the softISP can be used with other pipeline-handlers too.

Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
---
 src/libcamera/software_isp/software_isp.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jacopo Mondi April 9, 2026, 8:09 a.m. UTC | #1
Hi Hans

On Wed, Apr 08, 2026 at 01:56:06PM +0200, Hans de Goede wrote:
> Explicitly specify the "simple" IPA name when loading the IPA so that
> the softISP can be used with other pipeline-handlers too.
>
> Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
> ---
>  src/libcamera/software_isp/software_isp.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/libcamera/software_isp/software_isp.cpp b/src/libcamera/software_isp/software_isp.cpp
> index 60228369f..99e4635b3 100644
> --- a/src/libcamera/software_isp/software_isp.cpp
> +++ b/src/libcamera/software_isp/software_isp.cpp
> @@ -127,7 +127,7 @@ SoftwareIsp::SoftwareIsp(PipelineHandler *pipe, const CameraSensor *sensor,
>  	debayer_->inputBufferReady.connect(this, &SoftwareIsp::inputReady);
>  	debayer_->outputBufferReady.connect(this, &SoftwareIsp::outputReady);
>
> -	ipa_ = IPAManager::createIPA<ipa::soft::IPAProxySoft>(pipe, 0, 0);
> +	ipa_ = IPAManager::createIPA<ipa::soft::IPAProxySoft>(pipe, "simple", 0, 0);

I might be missing how this used to work before this patch when only a
1-to-1 matching between the pipeline and the IPA name was allowed.

If nothing has changed on the IPA/PH naming, do you need this change
or can you resort on the createIPA(pipe, min, max) overload ?

>  	if (!ipa_) {
>  		LOG(SoftwareIsp, Error)
>  			<< "Creating IPA for software ISP failed";
> --
> 2.53.0
>
Hans de Goede April 9, 2026, 2:22 p.m. UTC | #2
Hi Jacopo,

On 9-Apr-26 10:09, Jacopo Mondi wrote:
> Hi Hans
> 
> On Wed, Apr 08, 2026 at 01:56:06PM +0200, Hans de Goede wrote:
>> Explicitly specify the "simple" IPA name when loading the IPA so that
>> the softISP can be used with other pipeline-handlers too.
>>
>> Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
>> ---
>>  src/libcamera/software_isp/software_isp.cpp | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/libcamera/software_isp/software_isp.cpp b/src/libcamera/software_isp/software_isp.cpp
>> index 60228369f..99e4635b3 100644
>> --- a/src/libcamera/software_isp/software_isp.cpp
>> +++ b/src/libcamera/software_isp/software_isp.cpp
>> @@ -127,7 +127,7 @@ SoftwareIsp::SoftwareIsp(PipelineHandler *pipe, const CameraSensor *sensor,
>>  	debayer_->inputBufferReady.connect(this, &SoftwareIsp::inputReady);
>>  	debayer_->outputBufferReady.connect(this, &SoftwareIsp::outputReady);
>>
>> -	ipa_ = IPAManager::createIPA<ipa::soft::IPAProxySoft>(pipe, 0, 0);
>> +	ipa_ = IPAManager::createIPA<ipa::soft::IPAProxySoft>(pipe, "simple", 0, 0);
> 
> I might be missing how this used to work before this patch when only a
> 1-to-1 matching between the pipeline and the IPA name was allowed.
> 
> If nothing has changed on the IPA/PH naming, do you need this change
> or can you resort on the createIPA(pipe, min, max) overload ?

This change is necessary to allow instantiating a SoftWareIsp object
from the camss pipeline-handler.

Otherwise loading the IPA will fail in this case because it will
try to load a camss IPA which does not exist (yet).

Regards,

Hans

Patch
diff mbox series

diff --git a/src/libcamera/software_isp/software_isp.cpp b/src/libcamera/software_isp/software_isp.cpp
index 60228369f..99e4635b3 100644
--- a/src/libcamera/software_isp/software_isp.cpp
+++ b/src/libcamera/software_isp/software_isp.cpp
@@ -127,7 +127,7 @@  SoftwareIsp::SoftwareIsp(PipelineHandler *pipe, const CameraSensor *sensor,
 	debayer_->inputBufferReady.connect(this, &SoftwareIsp::inputReady);
 	debayer_->outputBufferReady.connect(this, &SoftwareIsp::outputReady);
 
-	ipa_ = IPAManager::createIPA<ipa::soft::IPAProxySoft>(pipe, 0, 0);
+	ipa_ = IPAManager::createIPA<ipa::soft::IPAProxySoft>(pipe, "simple", 0, 0);
 	if (!ipa_) {
 		LOG(SoftwareIsp, Error)
 			<< "Creating IPA for software ISP failed";