Message ID | 20230106072931.2317597-3-shravan.chippa@microchip.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: i2c: imx334: support lower bandwidth mode | expand |
Hi Shravan On Fri, Jan 06, 2023 at 12:59:29PM +0530, shravan kumar wrote: > From: Shravan Chippa <shravan.chippa@microchip.com> > > There are some missing reset reg_mode values for the 3840x2160@60 > resolution. The camera sensor still works in 3840x2160@60 resolution mode > because of the register reset values. This is an issue when we change the > modes dynamically. As an example, when we change the mode from 1920x1080@30 > resolution to 3840x2160@60 resoultion then the mode values will be written ^ rogue space > to the registers from the array mode_3840x2160_regs[] which gives the wrong > output which is incorrect resolution. > > So add the missing reset values to the mode_3840x2160_regs[]. > Are you resetting the registers to their default values, or are they actually tuned for 3840x2160 operations ? > Signed-off-by: Shravan Chippa <shravan.chippa@microchip.com> > --- > drivers/media/i2c/imx334.c | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/drivers/media/i2c/imx334.c b/drivers/media/i2c/imx334.c > index ebacba3059b3..a4549d194cae 100644 > --- a/drivers/media/i2c/imx334.c > +++ b/drivers/media/i2c/imx334.c > @@ -166,6 +166,7 @@ static const struct imx334_reg mode_3840x2160_regs[] = { > {0x3288, 0x21}, > {0x328a, 0x02}, > {0x302c, 0x3c}, > + {0x302d, 0x00}, > {0x302e, 0x00}, > {0x302f, 0x0f}, > {0x3076, 0x70}, > @@ -240,7 +241,26 @@ static const struct imx334_reg mode_3840x2160_regs[] = { > {0x3794, 0x7a}, > {0x3796, 0xa1}, > {0x3e04, 0x0e}, > + {0x319e, 0x00}, > {0x3a00, 0x01}, > + {0x3A18, 0xBF}, > + {0x3A19, 0x00}, > + {0x3A1A, 0x67}, > + {0x3A1B, 0x00}, > + {0x3A1C, 0x6F}, > + {0x3A1D, 0x00}, > + {0x3A1E, 0xD7}, > + {0x3A1F, 0x01}, > + {0x3A20, 0x6F}, > + {0x3A21, 0x00}, > + {0x3A22, 0xCF}, > + {0x3A23, 0x00}, > + {0x3A24, 0x6F}, > + {0x3A25, 0x00}, > + {0x3A26, 0xB7}, > + {0x3A27, 0x00}, > + {0x3A28, 0x5F}, > + {0x3A29, 0x00}, Nit: this is a small bunch of registers, and all the rest of the table uses lowercase. Please do the same for sake of consistency. Thanks j > }; > > /* Supported sensor mode configurations */ > -- > 2.34.1 >
diff --git a/drivers/media/i2c/imx334.c b/drivers/media/i2c/imx334.c index ebacba3059b3..a4549d194cae 100644 --- a/drivers/media/i2c/imx334.c +++ b/drivers/media/i2c/imx334.c @@ -166,6 +166,7 @@ static const struct imx334_reg mode_3840x2160_regs[] = { {0x3288, 0x21}, {0x328a, 0x02}, {0x302c, 0x3c}, + {0x302d, 0x00}, {0x302e, 0x00}, {0x302f, 0x0f}, {0x3076, 0x70}, @@ -240,7 +241,26 @@ static const struct imx334_reg mode_3840x2160_regs[] = { {0x3794, 0x7a}, {0x3796, 0xa1}, {0x3e04, 0x0e}, + {0x319e, 0x00}, {0x3a00, 0x01}, + {0x3A18, 0xBF}, + {0x3A19, 0x00}, + {0x3A1A, 0x67}, + {0x3A1B, 0x00}, + {0x3A1C, 0x6F}, + {0x3A1D, 0x00}, + {0x3A1E, 0xD7}, + {0x3A1F, 0x01}, + {0x3A20, 0x6F}, + {0x3A21, 0x00}, + {0x3A22, 0xCF}, + {0x3A23, 0x00}, + {0x3A24, 0x6F}, + {0x3A25, 0x00}, + {0x3A26, 0xB7}, + {0x3A27, 0x00}, + {0x3A28, 0x5F}, + {0x3A29, 0x00}, }; /* Supported sensor mode configurations */