aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/1393-drm-amd-powerplay-implement-feature-get-set-function.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1393-drm-amd-powerplay-implement-feature-get-set-function.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/1393-drm-amd-powerplay-implement-feature-get-set-function.patch82
1 files changed, 82 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1393-drm-amd-powerplay-implement-feature-get-set-function.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1393-drm-amd-powerplay-implement-feature-get-set-function.patch
new file mode 100644
index 00000000..9ab27143
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1393-drm-amd-powerplay-implement-feature-get-set-function.patch
@@ -0,0 +1,82 @@
+From 3eded21ad1e7ab4f18c4f488c2b5f50e4cd5e200 Mon Sep 17 00:00:00 2001
+From: Kevin Wang <Kevin1.Wang@amd.com>
+Date: Wed, 26 Dec 2018 16:13:09 +0800
+Subject: [PATCH 1393/2940] drm/amd/powerplay: implement feature get&set
+ functions
+
+add smu feature operation function helper to deal with smu feature
+bitmap.
+
+Signed-off-by: Kevin Wang <Kevin1.Wang@amd.com>
+Reviewed-by: Huang Rui <ray.huang@amd.com>
+Acked-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/powerplay/amdgpu_smu.c | 37 +++++++++++++++++++
+ .../gpu/drm/amd/powerplay/inc/amdgpu_smu.h | 5 +++
+ 2 files changed, 42 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
+index f9b254c8dad9..aba3fb1a6bdb 100644
+--- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
++++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
+@@ -49,6 +49,43 @@ int smu_feature_init_dpm(struct smu_context *smu)
+ return ret;
+ }
+
++int smu_feature_is_enabled(struct smu_context *smu, int feature_id)
++{
++ struct smu_feature *feature = &smu->smu_feature;
++ WARN_ON(feature_id > feature->feature_num);
++ return test_bit(feature_id, feature->enabled);
++}
++
++int smu_feature_set_enabled(struct smu_context *smu, int feature_id, bool enable)
++{
++ struct smu_feature *feature = &smu->smu_feature;
++ WARN_ON(feature_id > feature->feature_num);
++ if (enable)
++ test_and_set_bit(feature_id, feature->enabled);
++ else
++ test_and_clear_bit(feature_id, feature->enabled);
++ return 0;
++}
++
++int smu_feature_is_supported(struct smu_context *smu, int feature_id)
++{
++ struct smu_feature *feature = &smu->smu_feature;
++ WARN_ON(feature_id > feature->feature_num);
++ return test_bit(feature_id, feature->supported);
++}
++
++int smu_feature_set_supported(struct smu_context *smu, int feature_id,
++ bool enable)
++{
++ struct smu_feature *feature = &smu->smu_feature;
++ WARN_ON(feature_id > feature->feature_num);
++ if (enable)
++ test_and_set_bit(feature_id, feature->supported);
++ else
++ test_and_clear_bit(feature_id, feature->supported);
++ return 0;
++}
++
+ static int smu_set_funcs(struct amdgpu_device *adev)
+ {
+ struct smu_context *smu = &adev->smu;
+diff --git a/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h b/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
+index 740dae2d6221..dfabd73fedaf 100644
+--- a/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
++++ b/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
+@@ -327,4 +327,9 @@ extern const struct amd_ip_funcs smu_ip_funcs;
+ extern const struct amdgpu_ip_block_version smu_v11_0_ip_block;
+ extern int smu_feature_init_dpm(struct smu_context *smu);
+
++extern int smu_feature_is_enabled(struct smu_context *smu, int feature_id);
++extern int smu_feature_set_enabled(struct smu_context *smu, int feature_id, bool enable);
++extern int smu_feature_is_supported(struct smu_context *smu, int feature_id);
++extern int smu_feature_set_supported(struct smu_context *smu, int feature_id, bool enable);
++
+ #endif
+--
+2.17.1
+