From ab4932f87dd363c04c70887d57f0e36a2a59c5a6 Mon Sep 17 00:00:00 2001 From: Heiko Stuebner Date: Mon, 21 Jun 2021 16:59:47 +0200 Subject: ipa: rkisp1: Add support for V12 isp blocks Some values for array sizes differ between v10 and v12, so set them in init() and adjust the auto exposure algorithm to the ae value from there. Signed-off-by: Heiko Stuebner Reviewed-by: Dafna Hirschfeld Reviewed-by: Kieran Bingham Signed-off-by: Jacopo Mondi --- src/ipa/rkisp1/rkisp1.cpp | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp index b881d42e..06fb9640 100644 --- a/src/ipa/rkisp1/rkisp1.cpp +++ b/src/ipa/rkisp1/rkisp1.cpp @@ -66,12 +66,31 @@ private: uint32_t gain_; uint32_t minGain_; uint32_t maxGain_; + + /* revision-specific data */ + unsigned int hwAeMeanMax_; + unsigned int hwHistBinNMax_; + unsigned int hwGammaOutMaxSamples_; + unsigned int hwHistogramWeightGridsSize_; }; int IPARkISP1::init(unsigned int hwRevision) { /* \todo Add support for other revisions */ - if (hwRevision != RKISP1_V10) { + switch (hwRevision) { + case RKISP1_V10: + hwAeMeanMax_ = RKISP1_CIF_ISP_AE_MEAN_MAX_V10; + hwHistBinNMax_ = RKISP1_CIF_ISP_HIST_BIN_N_MAX_V10; + hwGammaOutMaxSamples_ = RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V10; + hwHistogramWeightGridsSize_ = RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V10; + break; + case RKISP1_V12: + hwAeMeanMax_ = RKISP1_CIF_ISP_AE_MEAN_MAX_V12; + hwHistBinNMax_ = RKISP1_CIF_ISP_HIST_BIN_N_MAX_V12; + hwGammaOutMaxSamples_ = RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V12; + hwHistogramWeightGridsSize_ = RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V12; + break; + default: LOG(IPARkISP1, Error) << "Hardware revision " << hwRevision << " is currently not supported"; @@ -236,7 +255,7 @@ void IPARkISP1::updateStatistics(unsigned int frame, unsigned int value = 0; unsigned int num = 0; - for (int i = 0; i < RKISP1_CIF_ISP_AE_MEAN_MAX_V10; i++) { + for (unsigned int i = 0; i < hwAeMeanMax_; i++) { if (ae->exp_mean[i] <= 15) continue; -- cgit v1.2.1