[libcamera-devel] [PATCH] ipa: rkisp1: Add support for V12 isp blocks

Heiko Stuebner heiko at sntech.de
Mon Jun 21 16:59:47 CEST 2021


From: Heiko Stuebner <heiko.stuebner at theobroma-systems.com>

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 <heiko.stuebner at theobroma-systems.com>
---
 src/ipa/rkisp1/rkisp1.cpp | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
index b47ea324..5f529334 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 */
+	int hwAeMeanMax_;
+	int hwHistBinNMax_;
+	int hwGammaOutMaxSamples_;
+	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 (int i = 0; i < hwAeMeanMax_; i++) {
 			if (ae->exp_mean[i] <= 15)
 				continue;
 
-- 
2.20.1



More information about the libcamera-devel mailing list