From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="isKlb227" Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A43FC95; Mon, 11 Dec 2023 10:11:48 -0800 (PST) Received: from pendragon.ideasonboard.com (213-243-189-158.bb.dnainternet.fi [213.243.189.158]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 2964AC58; Mon, 11 Dec 2023 19:11:03 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1702318263; bh=iyuo6d2Ac26yQfhw96gW7KS6Y5R6Sy0Mk/XyqYwpjkY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=isKlb227rd7Xhnd9dr7S8UmV4whYM5BqcCv/PCHFyaDRkrqKy+Ob4kMKQpbbvmNjE JBWxpq4lwWnb3XKmRXgfbMKtCRTv3Jpa8Z1Cbvv7GVls4MoI37YYHf30/6dA+Ayoge vGMeZHdX/yL0KrCUzRqbKOqonhToUNMiGA0B4yI0= Date: Mon, 11 Dec 2023 20:11:54 +0200 From: Laurent Pinchart To: Mikhail Rudenko Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Sakari Ailus , Jacopo Mondi , Tommaso Merciai , Christophe JAILLET , Dave Stevenson , Mauro Carvalho Chehab Subject: Re: [PATCH 06/19] media: i2c: ov4689: Set gain in one 16 bit write Message-ID: <20231211181154.GE27535@pendragon.ideasonboard.com> References: <20231211175023.1680247-1-mike.rudenko@gmail.com> <20231211175023.1680247-7-mike.rudenko@gmail.com> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20231211175023.1680247-7-mike.rudenko@gmail.com> On Mon, Dec 11, 2023 at 08:50:09PM +0300, Mikhail Rudenko wrote: > According to the datasheet, bits 0-7 of the AEC LONG GAIN > register (0x3508) map to bits 8-15 of the gain value and no masking is > required. Thus set analogue gain in a single 16-bit write instead of > two 8-bit writes. > > Signed-off-by: Mikhail Rudenko You could squash it with patch 03/19. Reviewed-by: Laurent Pinchart > --- > drivers/media/i2c/ov4689.c | 15 ++------------- > 1 file changed, 2 insertions(+), 13 deletions(-) > > diff --git a/drivers/media/i2c/ov4689.c b/drivers/media/i2c/ov4689.c > index 42700ecfbe0e..5392f650960c 100644 > --- a/drivers/media/i2c/ov4689.c > +++ b/drivers/media/i2c/ov4689.c > @@ -32,11 +32,7 @@ > #define OV4689_EXPOSURE_STEP 1 > #define OV4689_VTS_MAX 0x7fff > > -#define OV4689_REG_GAIN_H CCI_REG8(0x3508) > -#define OV4689_REG_GAIN_L CCI_REG8(0x3509) > -#define OV4689_GAIN_H_MASK 0x07 > -#define OV4689_GAIN_H_SHIFT 8 > -#define OV4689_GAIN_L_MASK 0xff > +#define OV4689_REG_GAIN CCI_REG16(0x3508) > #define OV4689_GAIN_STEP 1 > #define OV4689_GAIN_DEFAULT 0x80 > > @@ -613,14 +609,7 @@ static int ov4689_set_ctrl(struct v4l2_ctrl *ctrl) > break; > case V4L2_CID_ANALOGUE_GAIN: > ret = ov4689_map_gain(ov4689, val, &sensor_gain); > - > - cci_write(regmap, OV4689_REG_GAIN_H, > - (sensor_gain >> OV4689_GAIN_H_SHIFT) & > - OV4689_GAIN_H_MASK, &ret); > - > - cci_write(regmap, OV4689_REG_GAIN_L, > - sensor_gain & OV4689_GAIN_L_MASK, > - &ret); > + cci_write(regmap, OV4689_REG_GAIN, sensor_gain, &ret); > break; > case V4L2_CID_VBLANK: > cci_write(regmap, OV4689_REG_VTS, -- Regards, Laurent Pinchart