From 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Tue, 22 Oct 2024 10:36:11 +0000
Subject: [PATCH] 修改4g拨号为QMI,需要在系统里后台执行quectel-CM

---
 kernel/drivers/gpu/arm/midgard/platform/rk/mali_kbase_config_rk.c |   29 ++++++++++++++---------------
 1 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/kernel/drivers/gpu/arm/midgard/platform/rk/mali_kbase_config_rk.c b/kernel/drivers/gpu/arm/midgard/platform/rk/mali_kbase_config_rk.c
index a0e251b..8ad910c 100644
--- a/kernel/drivers/gpu/arm/midgard/platform/rk/mali_kbase_config_rk.c
+++ b/kernel/drivers/gpu/arm/midgard/platform/rk/mali_kbase_config_rk.c
@@ -119,7 +119,7 @@
 		ret = -ENOMEM;
 		goto err_wq;
 	}
-	INIT_DELAYED_WORK(&platform->work, rk_pm_power_off_delay_work);
+	INIT_DEFERRABLE_WORK(&platform->work, rk_pm_power_off_delay_work);
 
 	wake_lock_init(&platform->wake_lock, WAKE_LOCK_SUSPEND, "gpu");
 
@@ -378,19 +378,13 @@
 	struct rk_context *platform = get_rk_context(kbdev);
 	ssize_t ret = 0;
 	unsigned long period_in_us = platform->utilisation_period * 1000;
-	unsigned long total_time = 0;
-	unsigned long busy_time = 0;
-	unsigned long utilisation = 0;
+	unsigned long total_time;
+	unsigned long busy_time;
+	unsigned long utilisation;
 
-#ifdef CONFIG_MALI_DEVFREQ
 	kbase_pm_reset_dvfs_utilisation(kbdev);
-#endif
 	usleep_range(period_in_us, period_in_us + 100);
-#ifdef CONFIG_MALI_DEVFREQ
 	kbase_pm_get_dvfs_utilisation(kbdev, &total_time, &busy_time);
-#else
-	dev_warn(dev, "can not get 'total_time' and 'busy_time', for CONFIG_MALI_DEVFREQ is disabled");
-#endif
 	/* 'devfreq_dev_profile' instance registered to devfreq
 	 * also uses kbase_pm_reset_dvfs_utilisation
 	 * and kbase_pm_get_dvfs_utilisation.
@@ -398,8 +392,7 @@
 	 */
 	D("total_time : %lu, busy_time : %lu.", total_time, busy_time);
 
-	if (total_time != 0)
-		utilisation = busy_time * 100 / total_time;
+	utilisation = busy_time * 100 / total_time;
 	ret += snprintf(buf, PAGE_SIZE, "%ld\n", utilisation);
 
 	return ret;
@@ -474,20 +467,26 @@
 	return ret;
 }
 
+static const struct rockchip_opp_data rk3288_gpu_opp_data = {
+	.get_soc_info = rk3288_get_soc_info,
+};
+
 static const struct of_device_id rockchip_mali_of_match[] = {
 	{
 		.compatible = "rockchip,rk3288",
-		.data = (void *)&rk3288_get_soc_info,
+		.data = (void *)&rk3288_gpu_opp_data,
 	},
 	{
 		.compatible = "rockchip,rk3288w",
-		.data = (void *)&rk3288_get_soc_info,
+		.data = (void *)&rk3288_gpu_opp_data,
 	},
 	{},
 };
 
 int kbase_platform_rk_init_opp_table(struct kbase_device *kbdev)
 {
-	return rockchip_init_opp_table(kbdev->dev, rockchip_mali_of_match,
+	rockchip_get_opp_data(rockchip_mali_of_match, &kbdev->opp_info);
+
+	return rockchip_init_opp_table(kbdev->dev, &kbdev->opp_info,
 				       "gpu_leakage", "mali");
 }

--
Gitblit v1.6.2