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