From 2f7c68cb55ecb7331f2381deb497c27155f32faf Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Wed, 03 Jan 2024 09:43:39 +0000
Subject: [PATCH] update kernel to 5.10.198

---
 kernel/drivers/media/i2c/sc5336.c |   22 ++++++++++++++++++++--
 1 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/kernel/drivers/media/i2c/sc5336.c b/kernel/drivers/media/i2c/sc5336.c
index eb0b925..9420ac1 100644
--- a/kernel/drivers/media/i2c/sc5336.c
+++ b/kernel/drivers/media/i2c/sc5336.c
@@ -51,7 +51,7 @@
 #define SC5336_REG_EXPOSURE_H		0x3e00
 #define SC5336_REG_EXPOSURE_M		0x3e01
 #define SC5336_REG_EXPOSURE_L		0x3e02
-#define	SC5336_EXPOSURE_MIN		1
+#define	SC5336_EXPOSURE_MIN		2
 #define	SC5336_EXPOSURE_STEP		1
 #define SC5336_VTS_MAX			0x7fff
 
@@ -244,7 +244,7 @@
 	{0x3633, 0x33},
 	{0x3638, 0xcf},
 	{0x363f, 0xc0},
-	{0x3641, 0x20},
+	{0x3641, 0x38},
 	{0x3670, 0x56},
 	{0x3674, 0xc0},
 	{0x3675, 0xa0},
@@ -287,6 +287,7 @@
 	{0x37fb, 0x24},
 	{0x37fc, 0x01},
 	{0x37fd, 0x36},
+	{0x3900, 0x0d},
 	{0x3901, 0x00},
 	{0x3904, 0x04},
 	{0x3905, 0x8c},
@@ -866,6 +867,7 @@
 static int __sc5336_start_stream(struct sc5336 *sc5336)
 {
 	int ret;
+	u32 chip_version = 0;
 
 	if (!sc5336->is_thunderboot) {
 		ret = sc5336_write_array(sc5336->client, sc5336->cur_mode->reg_list);
@@ -877,6 +879,22 @@
 		if (ret)
 			return ret;
 	}
+	ret = sc5336_read_reg(sc5336->client, 0x3040, SC5336_REG_VALUE_08BIT, &chip_version);
+	if (chip_version == 0x00) {
+		ret |= sc5336_write_reg(sc5336->client, 0x3258, SC5336_REG_VALUE_08BIT, 0x0c);
+		ret |= sc5336_write_reg(sc5336->client, 0x3249, SC5336_REG_VALUE_08BIT, 0x0b);
+		ret |= sc5336_write_reg(sc5336->client, 0x3934, SC5336_REG_VALUE_08BIT, 0x0a);
+		ret |= sc5336_write_reg(sc5336->client, 0x3935, SC5336_REG_VALUE_08BIT, 0x00);
+		ret |= sc5336_write_reg(sc5336->client, 0x3937, SC5336_REG_VALUE_08BIT, 0x75);
+	} else if (chip_version == 0x03) {
+		ret |= sc5336_write_reg(sc5336->client, 0x3258, SC5336_REG_VALUE_08BIT, 0x08);
+		ret |= sc5336_write_reg(sc5336->client, 0x3249, SC5336_REG_VALUE_08BIT, 0x07);
+		ret |= sc5336_write_reg(sc5336->client, 0x3934, SC5336_REG_VALUE_08BIT, 0x05);
+		ret |= sc5336_write_reg(sc5336->client, 0x3935, SC5336_REG_VALUE_08BIT, 0x07);
+		ret |= sc5336_write_reg(sc5336->client, 0x3937, SC5336_REG_VALUE_08BIT, 0x74);
+	}
+	if (ret)
+		return ret;
 
 	return sc5336_write_reg(sc5336->client, SC5336_REG_CTRL_MODE,
 				 SC5336_REG_VALUE_08BIT, SC5336_MODE_STREAMING);

--
Gitblit v1.6.2