From patchwork Fri Mar 11 13:19:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Umang Jain X-Patchwork-Id: 15442 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id F2440BF415 for ; Fri, 11 Mar 2022 13:19:46 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 539C6604E9; Fri, 11 Mar 2022 14:19:46 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1647004786; bh=juPqk83+z/tOMHpGkI8BUxszy3RPuuTuCn17FT4vubM=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=waHRTpW3cCheZwBaJ2W+g8y0TNPSyxlEZA4WgIvSlcPyt6eJntsdZKHceEvH3mVKC 7vKIFCMMqMTsVNe6eddunN2N1NlJipEpar3l71KYMszPJYkOd7wIx6s8kTWGJdQ2AS NrmXPcPpHscb3Qkt/DQt7OLG1G27OG0H+UjEEuxvcQNZJVORXthOEsMGMxwmMH0Duh RMi75vYxbKHZ95GO5oue8bYatsEndPGb44OIyDSdjBBnMS/5qOpb6N7m+jfsZlg0Ro h2Q1EOTuNfFTNG6djB7PqWTMVOK1Jh4A4dz+X83Q4QJIilKSWdKRhf4n601BW5o/KY EztHARaz2Wq6Q== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id B5128604E8 for ; Fri, 11 Mar 2022 14:19:44 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="LnFMfhGp"; dkim-atps=neutral Received: from perceval.ideasonboard.com (unknown [103.251.226.65]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 90C27482; Fri, 11 Mar 2022 14:19:42 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1647004784; bh=juPqk83+z/tOMHpGkI8BUxszy3RPuuTuCn17FT4vubM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LnFMfhGpOfk5nf+87TMcBo3F0VFTWGJE5ii8A/7a9Jexw05vMnw/6VGDmOboyKHh8 2eqKgWxZQ5e+Cpd4h6KDfHNBMOdCtUVxBRNIGH70es8tCBEEXyhizaFZgj30/7wqvX i1qloBN/0A6YLoPoymjBiNQ2xfUTP0UkGBtQVsIg= To: libcamera-devel@lists.libcamera.org Date: Fri, 11 Mar 2022 18:49:29 +0530 Message-Id: <20220311131929.506764-1-umang.jain@ideasonboard.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220224151113.109858-5-jeanmichel.hautbois@ideasonboard.com> References: <20220224151113.109858-5-jeanmichel.hautbois@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH] ipa: ipu3: awb: Clamp gain values X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Umang Jain via libcamera-devel From: Umang Jain Reply-To: Umang Jain Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" From: Jean-Michel Hautbois The gain values are coded as u3.13 fixed point values, ie they can not be more than 8. Clamp the values in order to avoid any off limits value which could make the IPU3 behave in a weird manner. Signed-off-by: Jean-Michel Hautbois Reviewed-by: Kieran Bingham Signed-off-by: Umang Jain Reviewed-by: Umang Jain --- src/ipa/ipu3/algorithms/awb.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ipa/ipu3/algorithms/awb.cpp b/src/ipa/ipu3/algorithms/awb.cpp index 1dc27fc9..dc25be81 100644 --- a/src/ipa/ipu3/algorithms/awb.cpp +++ b/src/ipa/ipu3/algorithms/awb.cpp @@ -353,6 +353,14 @@ void Awb::awbGreyWorld() /* Color temperature is not relevant in Grey world but still useful to estimate it :-) */ asyncResults_.temperatureK = estimateCCT(sumRed.R, sumRed.G, sumBlue.B); + + /* + * Gain values are unsigned integer value, range 0 to 8 with 13 bit + * fractional part. + */ + redGain = std::clamp(redGain, 0.0, 65535.0 / 8192); + blueGain = std::clamp(blueGain, 0.0, 65535.0 / 8192); + asyncResults_.redGain = redGain; /* Hardcode the green gain to 1.0. */ asyncResults_.greenGain = 1.0;