media: i2c: imx334: add missing reset values for mode 3840x2160_regs[]
authorShravan Chippa <shravan.chippa@microchip.com>
Wed, 1 Mar 2023 07:34:09 +0000 (08:34 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Mon, 20 Mar 2023 15:23:27 +0000 (16:23 +0100)
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[].

Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Signed-off-by: Shravan Chippa <shravan.chippa@microchip.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/i2c/imx334.c

index ebacba3..40ece08 100644 (file)
@@ -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 */