diff options
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.patch | 82 |
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 + |