From fad451203daca58e09ffc0f1bd28fc6fdd555b78 Mon Sep 17 00:00:00 2001 From: Liang Chen Date: Sat, 29 Dec 2018 18:05:33 +0800 Subject: [PATCH] MALI: bifrost_for_linux: optimize opp-table for rockchip SoCs Change-Id: I33e029a58880c3a54f36e9c5d7d94ce2394404b7 Signed-off-by: Liang Chen --- .../backend/gpu/mali_kbase_devfreq.h | 1 + .../arm/bifrost_for_linux/mali_kbase_core_linux.c | 14 ++------------ .../platform/rk/mali_kbase_config_rk.c | 6 ++++++ 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/arm/bifrost_for_linux/backend/gpu/mali_kbase_devfreq.h b/drivers/gpu/arm/bifrost_for_linux/backend/gpu/mali_kbase_devfreq.h index c0bf8b15b3bc..7bcc350f3006 100644 --- a/drivers/gpu/arm/bifrost_for_linux/backend/gpu/mali_kbase_devfreq.h +++ b/drivers/gpu/arm/bifrost_for_linux/backend/gpu/mali_kbase_devfreq.h @@ -20,5 +20,6 @@ int kbase_devfreq_init(struct kbase_device *kbdev); void kbase_devfreq_term(struct kbase_device *kbdev); +int kbase_platform_rk_init_opp_table(struct kbase_device *kbdev); #endif /* _BASE_DEVFREQ_H_ */ diff --git a/drivers/gpu/arm/bifrost_for_linux/mali_kbase_core_linux.c b/drivers/gpu/arm/bifrost_for_linux/mali_kbase_core_linux.c index d45a7f971742..b15fc1f2b8d1 100644 --- a/drivers/gpu/arm/bifrost_for_linux/mali_kbase_core_linux.c +++ b/drivers/gpu/arm/bifrost_for_linux/mali_kbase_core_linux.c @@ -3928,19 +3928,9 @@ static int power_control_init(struct platform_device *pdev) } } -#if defined(CONFIG_OF) && defined(CONFIG_PM_OPP) - /* Register the OPPs if they are available in device tree */ -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)) \ - || defined(LSK_OPPV2_BACKPORT) - err = dev_pm_opp_of_add_table(kbdev->dev); -#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 7, 0)) - err = of_init_opp_table(kbdev->dev); -#else - err = 0; -#endif /* LINUX_VERSION_CODE */ + err = kbase_platform_rk_init_opp_table(kbdev); if (err) - dev_dbg(kbdev->dev, "OPP table not found\n"); -#endif /* CONFIG_OF && CONFIG_PM_OPP */ + dev_err(kbdev->dev, "Failed to init_opp_table (%d)\n", err); return 0; diff --git a/drivers/gpu/arm/bifrost_for_linux/platform/rk/mali_kbase_config_rk.c b/drivers/gpu/arm/bifrost_for_linux/platform/rk/mali_kbase_config_rk.c index b10b8a9ade35..926c2dd3f8c9 100755 --- a/drivers/gpu/arm/bifrost_for_linux/platform/rk/mali_kbase_config_rk.c +++ b/drivers/gpu/arm/bifrost_for_linux/platform/rk/mali_kbase_config_rk.c @@ -22,6 +22,7 @@ #include #include #include +#include #include "mali_kbase_rk.h" @@ -451,3 +452,8 @@ static void kbase_platform_rk_remove_sysfs_files(struct device *dev) device_remove_file(dev, &dev_attr_utilisation); } +int kbase_platform_rk_init_opp_table(struct kbase_device *kbdev) +{ + return rockchip_init_opp_table(kbdev->dev, NULL, + "gpu_leakage", "mali"); +}