From 55a16bbbf598785e91da81610a91d37fb94b3ec1 Mon Sep 17 00:00:00 2001 From: Wang Panzhenzhuan Date: Fri, 28 Oct 2022 07:15:20 +0000 Subject: [PATCH] media: i2c: s5kjn1: fix full size analog gain range Signed-off-by: Wang Panzhenzhuan Change-Id: Ib9d3d454c42dc7c89b3f128b7330ec840eed3f3a --- drivers/media/i2c/s5kjn1.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/media/i2c/s5kjn1.c b/drivers/media/i2c/s5kjn1.c index df2dd228e9b7..8172cdfb2416 100644 --- a/drivers/media/i2c/s5kjn1.c +++ b/drivers/media/i2c/s5kjn1.c @@ -65,6 +65,7 @@ #define S5KJN1_REG_AGAIN_LONG_H 0x0204 #define S5KJN1_GAIN_MIN 0x20 #define S5KJN1_GAIN_MAX 0x800 +#define S5KJN1_FULL_SIZE_GAIN_MAX 0x200 #define S5KJN1_GAIN_STEP 1 #define S5KJN1_GAIN_DEFAULT 0xc0 @@ -1054,6 +1055,16 @@ static int s5kjn1_set_fmt(struct v4l2_subdev *sd, pixel_rate); __v4l2_ctrl_s_ctrl(s5kjn1->link_freq, mode->mipi_freq_idx); + + if (mode->width == 8128) + __v4l2_ctrl_modify_range(s5kjn1->anal_gain, S5KJN1_GAIN_MIN, + S5KJN1_FULL_SIZE_GAIN_MAX, + S5KJN1_GAIN_STEP, S5KJN1_GAIN_DEFAULT); + else + __v4l2_ctrl_modify_range(s5kjn1->anal_gain, S5KJN1_GAIN_MIN, + S5KJN1_GAIN_MAX, + S5KJN1_GAIN_STEP, S5KJN1_GAIN_DEFAULT); + } dev_info(&s5kjn1->client->dev, "%s: mode->mipi_freq_idx(%d)", __func__, mode->mipi_freq_idx);