From 7e1950eb53ce0b05e5a39b8aef15428691a2a417 Mon Sep 17 00:00:00 2001
From: tzh <tanzhtanzh@gmail.com>
Date: Tue, 23 Jul 2024 02:00:21 +0000
Subject: [PATCH] feat(patch): add ido patch

---
 longan/kernel/linux-4.9/modules/gpu/img-rgx/android/rogue_km/services/system/rgx_sunxi/sunxi_platform.c |   58 ++--------------------------------------------------------
 1 files changed, 2 insertions(+), 56 deletions(-)

diff --git a/longan/kernel/linux-4.9/modules/gpu/img-rgx/android/rogue_km/services/system/rgx_sunxi/sunxi_platform.c b/longan/kernel/linux-4.9/modules/gpu/img-rgx/android/rogue_km/services/system/rgx_sunxi/sunxi_platform.c
index 04b1fb6..7a53fcf 100644
--- a/longan/kernel/linux-4.9/modules/gpu/img-rgx/android/rogue_km/services/system/rgx_sunxi/sunxi_platform.c
+++ b/longan/kernel/linux-4.9/modules/gpu/img-rgx/android/rogue_km/services/system/rgx_sunxi/sunxi_platform.c
@@ -590,50 +590,6 @@
 }
 #endif /* CONFIG_DEBUG_FS */
 
-static inline int sunxi_get_ic_version(struct device *dev, char *version)
-{
-#define SYS_CFG_BASE 0x03000000
-#define VER_REG_OFFS 0x00000024
-	void __iomem *io = NULL;
-	static char ver = 0xff;
-	/* IC version:
-	 * A/B/C: 0
-	 *     D: 3
-	 *     E: 4
-	 *     F: 5
-	 *        6/7/1/2 to be used in future.
-	 */
-	*version = 0;
-	if (ver == 0xff) {
-		io = ioremap(SYS_CFG_BASE, 0x100);
-		if (io == NULL) {
-			dev_err(dev, "ioremap of sys_cfg register failed!\n");
-			return -1;
-		}
-		*version = (char)(readl(io + VER_REG_OFFS) & 0x7);
-		iounmap(io);
-		ver = *version;
-	} else {
-		*version = ver;
-	}
-	return 0;
-}
-
-bool sunxi_ic_version_ctrl(struct device *dev)
-{
-	char ic_version = 0;
-	sunxi_get_ic_version(dev, &ic_version);
-	/*
-	 * The flow of jtag reset before gpu reset will cause MIPS crash, so we
-	 * will put the domainA, domainB and gpu reset operations to boot0 stage.
-	 * And in kernel stage, we will always keep domainA poweron.
-	 */
-	if (ic_version == 0 || ic_version == 3 || ic_version == 4 || ic_version == 5)
-		return false;
-	return true;
-}
-
-
 int sunxi_platform_init(struct device *dev)
 {
 #if defined(CONFIG_OF)
@@ -641,7 +597,7 @@
 	struct platform_device *pdev = to_platform_device(dev);
 #endif /* defined(CONFIG_OF) */
 	unsigned int val, volt_val = 0;
-	char ic_version = 0;
+
 	sunxi_data = (struct sunxi_platform *)kzalloc(sizeof(struct sunxi_platform), GFP_KERNEL);
 	if (!sunxi_data) {
 		dev_err(dev, "failed to get kzalloc sunxi_platform");
@@ -678,20 +634,11 @@
 	sunxi_data->power_idle = 1;
 	sunxi_data->dvfs = 1;
 	sunxi_data->independent_power = 0;
-	sunxi_data->soft_mode = 0;
+	sunxi_data->soft_mode = 1;
 
 	parse_dts(dev, sunxi_data);
 	if (!sunxi_data->independent_power)
 		sunxi_data->dvfs = 0;
-	sunxi_get_ic_version(dev, &ic_version);
-	dev_info(dev, "IC version: 0x%08x \n", ic_version);
-
-	if (!sunxi_ic_version_ctrl(dev)) {
-		sunxi_data->power_idle = 0;
-		sunxi_data->soft_mode = 1;
-	} else {
-		sunxi_data->soft_mode = 0;
-	}
 
 	sunxi_decide_pll(sunxi_data);
 	spin_lock_init(&sunxi_data->lock);
@@ -720,7 +667,6 @@
 	sunxi_data->power_idle = 0;
 	regulator_set_voltage(sunxi_data->regula, 900000, 900000);
 #endif
-
 	init_waitqueue_head(&dvfs_wq);
 
 	dev_info(dev, "idle:%d dvfs:%d power:%d %s mode:%d volt:%u core:%lu\n",

--
Gitblit v1.6.2