From 102a0743326a03cd1a1202ceda21e175b7d3575c Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Tue, 20 Feb 2024 01:20:52 +0000
Subject: [PATCH] add new system file
---
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