[libcamera-devel,09/11] libcamera: pipeline: vimc: Pass configuration file to IPA init()

Message ID 20200427031713.14013-10-laurent.pinchart@ideasonboard.com
State Accepted
Headers show
Series
  • libcamera: Add support for IPA configuration
Related show

Commit Message

Laurent Pinchart April 27, 2020, 3:17 a.m. UTC
Pass the vimc IPA dummy configuration file to the IPA init() function.
This will be used by the IPA to validate the init() call.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/libcamera/pipeline/vimc/vimc.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

Comments

Jacopo Mondi April 27, 2020, 9:15 a.m. UTC | #1
Hi Laurent,

On Mon, Apr 27, 2020 at 06:17:11AM +0300, Laurent Pinchart wrote:
> Pass the vimc IPA dummy configuration file to the IPA init() function.
> This will be used by the IPA to validate the init() call.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>

Thanks
  j

> ---
>  src/libcamera/pipeline/vimc/vimc.cpp | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp
> index 699f788aa1b8..ec3ee7241cdf 100644
> --- a/src/libcamera/pipeline/vimc/vimc.cpp
> +++ b/src/libcamera/pipeline/vimc/vimc.cpp
> @@ -371,10 +371,12 @@ bool PipelineHandlerVimc::match(DeviceEnumerator *enumerator)
>  	std::unique_ptr<VimcCameraData> data = std::make_unique<VimcCameraData>(this);
>
>  	data->ipa_ = IPAManager::instance()->createIPA(this, 0, 0);
> -	if (data->ipa_ == nullptr)
> +	if (data->ipa_ != nullptr) {
> +		std::string conf = data->ipa_->configurationFile("vimc.conf");
> +		data->ipa_->init(IPASettings{ conf });
> +	} else {
>  		LOG(VIMC, Warning) << "no matching IPA found";
> -	else
> -		data->ipa_->init(IPASettings{});
> +	}
>
>  	/* Locate and open the capture video node. */
>  	if (data->init(media))
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
Kieran Bingham April 27, 2020, 2:15 p.m. UTC | #2
Hi Laurent,

On 27/04/2020 10:15, Jacopo Mondi wrote:
> Hi Laurent,
> 
> On Mon, Apr 27, 2020 at 06:17:11AM +0300, Laurent Pinchart wrote:
>> Pass the vimc IPA dummy configuration file to the IPA init() function.
>> This will be used by the IPA to validate the init() call.
>>
>> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> 

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
> 
> Thanks
>   j
> 
>> ---
>>  src/libcamera/pipeline/vimc/vimc.cpp | 8 +++++---
>>  1 file changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp
>> index 699f788aa1b8..ec3ee7241cdf 100644
>> --- a/src/libcamera/pipeline/vimc/vimc.cpp
>> +++ b/src/libcamera/pipeline/vimc/vimc.cpp
>> @@ -371,10 +371,12 @@ bool PipelineHandlerVimc::match(DeviceEnumerator *enumerator)
>>  	std::unique_ptr<VimcCameraData> data = std::make_unique<VimcCameraData>(this);
>>
>>  	data->ipa_ = IPAManager::instance()->createIPA(this, 0, 0);
>> -	if (data->ipa_ == nullptr)
>> +	if (data->ipa_ != nullptr) {
>> +		std::string conf = data->ipa_->configurationFile("vimc.conf");
>> +		data->ipa_->init(IPASettings{ conf });
>> +	} else {
>>  		LOG(VIMC, Warning) << "no matching IPA found";
>> -	else
>> -		data->ipa_->init(IPASettings{});
>> +	}
>>
>>  	/* Locate and open the capture video node. */
>>  	if (data->init(media))
>> --
>> Regards,
>>
>> Laurent Pinchart
>>
>> _______________________________________________
>> libcamera-devel mailing list
>> libcamera-devel@lists.libcamera.org
>> https://lists.libcamera.org/listinfo/libcamera-devel
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
>

Patch

diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp
index 699f788aa1b8..ec3ee7241cdf 100644
--- a/src/libcamera/pipeline/vimc/vimc.cpp
+++ b/src/libcamera/pipeline/vimc/vimc.cpp
@@ -371,10 +371,12 @@  bool PipelineHandlerVimc::match(DeviceEnumerator *enumerator)
 	std::unique_ptr<VimcCameraData> data = std::make_unique<VimcCameraData>(this);
 
 	data->ipa_ = IPAManager::instance()->createIPA(this, 0, 0);
-	if (data->ipa_ == nullptr)
+	if (data->ipa_ != nullptr) {
+		std::string conf = data->ipa_->configurationFile("vimc.conf");
+		data->ipa_->init(IPASettings{ conf });
+	} else {
 		LOG(VIMC, Warning) << "no matching IPA found";
-	else
-		data->ipa_->init(IPASettings{});
+	}
 
 	/* Locate and open the capture video node. */
 	if (data->init(media))