[PATCH v2 12/25] media: i2c: imx283: Simplify v_pos determination
From: Kieran Bingham
Date: Fri Feb 13 2026 - 09:04:39 EST
Refactor the v_pos to separate out the vflip handling from the top
coordinate.
No functional change is intended in this commit.
Signed-off-by: Kieran Bingham <kieran.bingham@xxxxxxxxxxxxxxxx>
---
drivers/media/i2c/imx283.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/media/i2c/imx283.c b/drivers/media/i2c/imx283.c
index f115a6df7b31..315c050c4fd0 100644
--- a/drivers/media/i2c/imx283.c
+++ b/drivers/media/i2c/imx283.c
@@ -1143,16 +1143,18 @@ static int imx283_start_streaming(struct imx283 *imx283,
{
u32 y_out_size = mode->crop.height / mode->vbin_ratio;
u32 write_v_size = y_out_size + mode->scan->vertical_ob;
+ s16 top = mode->crop.top;
u32 v_widcut;
s32 v_pos;
+ if (imx283->vflip->val)
+ top = -top;
+
/*
* cropping start position = (VWINPOS – Vst) × 2
* cropping width = Veff – (VWIDCUT – Vct) × 2
*/
- v_pos = imx283->vflip->val ?
- ((-mode->crop.top / mode->vbin_ratio) / 2) + mode->scan->vst :
- ((mode->crop.top / mode->vbin_ratio) / 2) + mode->scan->vst;
+ v_pos = (top / mode->vbin_ratio / 2) + mode->scan->vst;
v_widcut = ((mode->scan->veff - y_out_size) / 2) + mode->scan->vct;
cci_write(imx283->cci, IMX283_REG_Y_OUT_SIZE, y_out_size, &ret);
--
2.52.0