ipa: rkisp1: Pass IPASettings at init call

When the IPA is initialized, it will need to know the sensor model
used in order to properly call CameraSensorHelper for the analogue gain.
Modify the init definition in the pipeline handler and in the IPA as
well as the mojo interface to pass the IPASettings.

Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Jean-Michel Hautbois 2021-11-18 14:35:25 +01:00
parent aad674c544
commit 90da3af347
3 changed files with 7 additions and 4 deletions

View file

@ -29,7 +29,9 @@ struct RkISP1Action {
}; };
interface IPARkISP1Interface { interface IPARkISP1Interface {
init(uint32 hwRevision) => (int32 ret); init(libcamera.IPASettings settings,
uint32 hwRevision)
=> (int32 ret);
start() => (int32 ret); start() => (int32 ret);
stop(); stop();

View file

@ -34,7 +34,7 @@ namespace ipa::rkisp1 {
class IPARkISP1 : public IPARkISP1Interface class IPARkISP1 : public IPARkISP1Interface
{ {
public: public:
int init(unsigned int hwRevision) override; int init(const IPASettings &settings, unsigned int hwRevision) override;
int start() override; int start() override;
void stop() override {} void stop() override {}
@ -75,7 +75,8 @@ private:
unsigned int hwHistogramWeightGridsSize_; unsigned int hwHistogramWeightGridsSize_;
}; };
int IPARkISP1::init(unsigned int hwRevision) int IPARkISP1::init([[maybe_unused]] const IPASettings &settings,
unsigned int hwRevision)
{ {
/* \todo Add support for other revisions */ /* \todo Add support for other revisions */
switch (hwRevision) { switch (hwRevision) {

View file

@ -319,7 +319,7 @@ int RkISP1CameraData::loadIPA(unsigned int hwRevision)
ipa_->queueFrameAction.connect(this, ipa_->queueFrameAction.connect(this,
&RkISP1CameraData::queueFrameAction); &RkISP1CameraData::queueFrameAction);
int ret = ipa_->init(hwRevision); int ret = ipa_->init(IPASettings{ "", sensor_->model() }, hwRevision);
if (ret < 0) { if (ret < 0) {
LOG(RkISP1, Error) << "IPA initialization failure"; LOG(RkISP1, Error) << "IPA initialization failure";
return ret; return ret;