devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
To: Sakari Ailus <sakari.ailus@linux.intel.com>,
	linux-media@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Conor Dooley <conor+dt@kernel.org>,
	devicetree@vger.kernel.org
Cc: Dave Stevenson <dave.stevenson@raspberrypi.com>
Subject: [PATCH 06/21] media: i2c: imx258: Make V4L2_CID_VBLANK configurable.
Date: Tue, 30 May 2023 18:29:45 +0100	[thread overview]
Message-ID: <20230530173000.3060865-7-dave.stevenson@raspberrypi.com> (raw)
In-Reply-To: <20230530173000.3060865-1-dave.stevenson@raspberrypi.com>

The values and ranges of V4L2_CID_VBLANK are all computed,
so there is no reason for it to be a read only control.
Remove the register values from the mode lists, add the
handler, and remove the read only flag.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
---
 drivers/media/i2c/imx258.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/drivers/media/i2c/imx258.c b/drivers/media/i2c/imx258.c
index 30bae7388c3a..c6fb649abb95 100644
--- a/drivers/media/i2c/imx258.c
+++ b/drivers/media/i2c/imx258.c
@@ -30,6 +30,8 @@
 #define IMX258_VTS_30FPS_VGA		0x034c
 #define IMX258_VTS_MAX			0xffff
 
+#define IMX258_REG_VTS			0x0340
+
 /* HBLANK control - read only */
 #define IMX258_PPL_DEFAULT		5352
 
@@ -202,8 +204,6 @@ static const struct imx258_reg mode_4208x3120_regs[] = {
 	{ 0x0114, 0x03 },
 	{ 0x0342, 0x14 },
 	{ 0x0343, 0xE8 },
-	{ 0x0340, 0x0C },
-	{ 0x0341, 0x50 },
 	{ 0x0344, 0x00 },
 	{ 0x0345, 0x00 },
 	{ 0x0346, 0x00 },
@@ -319,8 +319,6 @@ static const struct imx258_reg mode_2104_1560_regs[] = {
 	{ 0x0114, 0x03 },
 	{ 0x0342, 0x14 },
 	{ 0x0343, 0xE8 },
-	{ 0x0340, 0x06 },
-	{ 0x0341, 0x38 },
 	{ 0x0344, 0x00 },
 	{ 0x0345, 0x00 },
 	{ 0x0346, 0x00 },
@@ -436,8 +434,6 @@ static const struct imx258_reg mode_1048_780_regs[] = {
 	{ 0x0114, 0x03 },
 	{ 0x0342, 0x14 },
 	{ 0x0343, 0xE8 },
-	{ 0x0340, 0x03 },
-	{ 0x0341, 0x4C },
 	{ 0x0344, 0x00 },
 	{ 0x0345, 0x00 },
 	{ 0x0346, 0x00 },
@@ -803,6 +799,11 @@ static int imx258_set_ctrl(struct v4l2_ctrl *ctrl)
 					       BIT(IMX258_HDR_RATIO_MAX));
 		}
 		break;
+	case V4L2_CID_VBLANK:
+		ret = imx258_write_reg(imx258, IMX258_REG_VTS,
+				       IMX258_REG_VALUE_16BIT,
+				       imx258->cur_mode->height + ctrl->val);
+		break;
 	default:
 		dev_info(&client->dev,
 			 "ctrl(id:0x%x,val:0x%x) is not handled\n",
@@ -1214,9 +1215,6 @@ static int imx258_init_controls(struct imx258 *imx258)
 				IMX258_VTS_MAX - imx258->cur_mode->height, 1,
 				vblank_def);
 
-	if (imx258->vblank)
-		imx258->vblank->flags |= V4L2_CTRL_FLAG_READ_ONLY;
-
 	imx258->hblank = v4l2_ctrl_new_std(
 				ctrl_hdlr, &imx258_ctrl_ops, V4L2_CID_HBLANK,
 				IMX258_PPL_DEFAULT - imx258->cur_mode->width,
-- 
2.25.1


  parent reply	other threads:[~2023-05-30 17:31 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-30 17:29 [PATCH 00/21] imx258 improvements series Dave Stevenson
2023-05-30 17:29 ` [PATCH 01/21] media: i2c: imx258: Remove unused defines Dave Stevenson
2023-05-31 15:08   ` Jacopo Mondi
2023-05-30 17:29 ` [PATCH 02/21] media: i2c: imx258: Make image geometry meet sensor requirements Dave Stevenson
2023-05-31 15:09   ` Jacopo Mondi
2023-05-30 17:29 ` [PATCH 03/21] media: i2c: imx258: Disable digital cropping on binned modes Dave Stevenson
2023-05-31 15:02   ` Jacopo Mondi
2023-05-30 17:29 ` [PATCH 04/21] media: i2c: imx258: Remove redundant I2C writes Dave Stevenson
2023-05-31 15:10   ` Jacopo Mondi
2023-05-30 17:29 ` [PATCH 05/21] media: i2c: imx258: Add regulator control Dave Stevenson
2023-05-31 15:11   ` Jacopo Mondi
2023-05-31 15:26     ` Dave Stevenson
2023-05-30 17:29 ` Dave Stevenson [this message]
2023-05-31 15:16   ` [PATCH 06/21] media: i2c: imx258: Make V4L2_CID_VBLANK configurable Jacopo Mondi
2023-05-31 15:33     ` Dave Stevenson
2023-05-30 17:29 ` [PATCH 07/21] media: i2c: imx258: Split out common registers from the mode based ones Dave Stevenson
2023-05-31 15:26   ` Jacopo Mondi
2023-05-30 17:29 ` [PATCH 08/21] media: i2c: imx258: Add support for 24MHz clock Dave Stevenson
2023-06-02 12:59   ` Jacopo Mondi
2023-05-30 17:29 ` [PATCH 09/21] media: i2c: imx258: Add support for running on 2 CSI data lanes Dave Stevenson
2023-05-30 17:37   ` Dave Stevenson
2023-05-31  8:07   ` kernel test robot
2023-06-02 13:23   ` Jacopo Mondi
2023-06-02 17:46     ` Dave Stevenson
2023-05-30 17:29 ` [PATCH 10/21] media: i2c: imx258: Follow normal V4L2 behaviours for clipping exposure Dave Stevenson
2023-05-31 15:27   ` Jacopo Mondi
2023-05-30 17:29 ` [PATCH 11/21] media: i2c: imx258: Add get_selection for pixel array information Dave Stevenson
2023-06-02 13:24   ` Jacopo Mondi
2023-05-30 17:29 ` [PATCH 12/21] media: i2c: imx258: Allow configuration of clock lane behaviour Dave Stevenson
2023-06-02 13:26   ` Jacopo Mondi
2023-06-02 15:18     ` Dave Stevenson
2023-05-30 17:29 ` [PATCH 13/21] media: i2c: imx258: Correct max FRM_LENGTH_LINES value Dave Stevenson
2023-06-02 13:33   ` Jacopo Mondi
2023-05-30 17:29 ` [PATCH 14/21] media: i2c: imx258: Add support for long exposure modes Dave Stevenson
2023-06-02 13:38   ` Jacopo Mondi
2023-06-02 17:12     ` Dave Stevenson
2023-05-30 17:29 ` [PATCH 15/21] media: i2c: imx258: Issue reset before starting streaming Dave Stevenson
2023-06-02 13:42   ` Jacopo Mondi
2023-05-30 17:29 ` [PATCH 16/21] media: i2c: imx258: Set pixel_rate range to the same as the value Dave Stevenson
2023-06-02 13:44   ` Jacopo Mondi
2023-05-30 17:29 ` [PATCH 17/21] media: i2c: imx258: Support faster pixel rate on binned modes Dave Stevenson
2023-05-30 17:29 ` [PATCH 18/21] dt-bindings: media: imx258: Rename to include vendor prefix Dave Stevenson
2023-05-30 17:35   ` Conor Dooley
2023-05-30 17:29 ` [PATCH 19/21] dt-bindings: media: imx258: Add alternate compatible strings Dave Stevenson
2023-05-30 17:38   ` Conor Dooley
2023-05-30 17:48     ` Dave Stevenson
2023-05-30 19:36       ` Conor Dooley
2023-05-30 17:29 ` [PATCH 20/21] media: i2c: imx258: Change register settings for variants of the sensor Dave Stevenson
2023-06-02 13:48   ` Jacopo Mondi
2023-06-02 14:30     ` Dave Stevenson
2023-05-30 17:30 ` [PATCH 21/21] media: i2c: imx258: Make HFLIP and VFLIP controls writable Dave Stevenson
2023-06-02 13:58   ` Jacopo Mondi
2023-06-02 14:42     ` Dave Stevenson
2023-07-18 12:08 ` [PATCH 00/21] imx258 improvements series Arnaud Ferraris

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230530173000.3060865-7-dave.stevenson@raspberrypi.com \
    --to=dave.stevenson@raspberrypi.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-media@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).