diff mbox series

[v9,2/4] media: i2c: imx334: add missing reset values for mode 3840x2160_regs[]

Message ID 20230113010135.2620818-3-shravan.chippa@microchip.com (mailing list archive)
State New, archived
Headers show
Series media: i2c: imx334: support lower bandwidth mode | expand

Commit Message

shravan kumar Jan. 13, 2023, 1:01 a.m. UTC
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
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[].

Signed-off-by: Shravan Chippa <shravan.chippa@microchip.com>
---
 drivers/media/i2c/imx334.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

Comments

Jacopo Mondi Jan. 13, 2023, 8:36 a.m. UTC | #1
Hi Shravan

On Fri, Jan 13, 2023 at 06:31:33AM +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
 ^ rougue 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[].
>
> Signed-off-by: Shravan Chippa <shravan.chippa@microchip.com>

Not checking the register values as I don't have a datasheet

Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>

Thanks
  j

> ---
>  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..40ece08f20f5 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 */
> --
> 2.34.1
>
diff mbox series

Patch

diff --git a/drivers/media/i2c/imx334.c b/drivers/media/i2c/imx334.c
index ebacba3059b3..40ece08f20f5 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 */