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