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/mfd/rkx110_x120/rkx120.c |   30 +++++++++++++++++++++++++-----
 1 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/kernel/drivers/mfd/rkx110_x120/rkx120.c b/kernel/drivers/mfd/rkx110_x120/rkx120.c
index 75150fe..2f38af1 100644
--- a/kernel/drivers/mfd/rkx110_x120/rkx120.c
+++ b/kernel/drivers/mfd/rkx110_x120/rkx120.c
@@ -21,16 +21,24 @@
 		.base = RKX120_PATTERN_GEN_DSI_BASE,
 		.link_src_reg = DES_GRF_SOC_CON2,
 		.link_src_offset = 12,
+		.type = RK_SERDES_DSI_TX0,
+	}, {
+		.name = "dual-lvds",
+		.link_src_reg = DES_GRF_SOC_CON1,
+		.link_src_offset = 14,
+		.type = RK_SERDES_DUAL_LVDS_TX,
 	}, {
 		.name = "lvds0",
 		.base = RKX120_PATTERN_GEN_LVDS0_BASE,
 		.link_src_reg = DES_GRF_SOC_CON2,
 		.link_src_offset = 13,
+		.type = RK_SERDES_LVDS_TX0,
 	}, {
 		.name = "lvds1",
 		.base = RKX120_PATTERN_GEN_LVDS1_BASE,
 		.link_src_reg = DES_GRF_SOC_CON2,
 		.link_src_offset = 14,
+		.type = RK_SERDES_LVDS_TX1,
 	},
 	{ /* sentinel */ }
 };
@@ -111,6 +119,11 @@
 		.name = "pcs1",
 		.reg_base = RKX120_DES_PCS1_BASE,
 		.reg_len = 0x1c0,
+	},
+	{
+		.name = "pwm",
+		.reg_base = RKX120_PWM_BASE,
+		.reg_len = 0x100,
 	},
 	{
 		.name = "pma0",
@@ -231,8 +244,13 @@
 void rkx120_debugfs_init(struct rk_serdes_chip *chip, struct dentry *dentry)
 {
 	const struct rk_serdes_reg *regs = rkx120_regs;
-	struct pattern_gen *pattern_gen = rkx120_pattern_gen;
+	struct pattern_gen *pattern_gen;
 	struct dentry *dir;
+
+	pattern_gen = devm_kmemdup(chip->serdes->dev, &rkx120_pattern_gen,
+				   sizeof(rkx120_pattern_gen), GFP_KERNEL);
+	if (!pattern_gen)
+		return;
 
 	dir = debugfs_create_dir("registers", dentry);
 	if (!IS_ERR(dir)) {
@@ -289,6 +307,8 @@
 			  u8 phy_id)
 {
 	struct i2c_client *client = serdes->chip[remote_id].client;
+	struct rk_serdes_panel *sd_panel = container_of(route, struct rk_serdes_panel, route);
+	struct rkx120_combtxphy *combtxphy = &sd_panel->combtxphy;
 
 	if (phy_id) {
 		serdes->i2c_write_reg(client, DES_GRF_SOC_CON7, 0xfff00630);
@@ -298,12 +318,12 @@
 		serdes->i2c_write_reg(client, DES_GRF_SOC_CON2, 0x00040004);
 	}
 
-	rkx120_combtxphy_set_mode(serdes, COMBTX_PHY_MODE_VIDEO_LVDS);
+	rkx120_combtxphy_set_mode(combtxphy, COMBTX_PHY_MODE_VIDEO_LVDS);
 	if (route->remote0_port0 & RK_SERDES_DUAL_LVDS_TX)
-		rkx120_combtxphy_set_rate(serdes, route->vm.pixelclock * 7 / 2);
+		rkx120_combtxphy_set_rate(combtxphy, route->vm.pixelclock * 7 / 2);
 	else
-		rkx120_combtxphy_set_rate(serdes, route->vm.pixelclock * 7);
-	rkx120_combtxphy_power_on(serdes, remote_id, phy_id);
+		rkx120_combtxphy_set_rate(combtxphy, route->vm.pixelclock * 7);
+	rkx120_combtxphy_power_on(serdes, combtxphy, remote_id, phy_id);
 
 	return 0;
 }

--
Gitblit v1.6.2