[libcamera-devel] [PATCH] ipa: rkisp1: Add support for V12 isp blocks
Dafna Hirschfeld
dafna.hirschfeld at collabora.com
Tue Jun 22 09:42:56 CEST 2021
On 21.06.21 17:59, Heiko Stuebner wrote:
> 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>
Reviewed-by: Dafna Hirschfeld <dafna.hirschfeld at collabora.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;
>
>
More information about the libcamera-devel
mailing list