diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1734-drm-amdgpu-Introduce-another-ras-enable-function.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/1734-drm-amdgpu-Introduce-another-ras-enable-function.patch | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1734-drm-amdgpu-Introduce-another-ras-enable-function.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1734-drm-amdgpu-Introduce-another-ras-enable-function.patch new file mode 100644 index 00000000..cfc82c70 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1734-drm-amdgpu-Introduce-another-ras-enable-function.patch @@ -0,0 +1,71 @@ +From 39061919f1700b0c91e16686bf4a535b9e5fbd20 Mon Sep 17 00:00:00 2001 +From: xinhui pan <xinhui.pan@amd.com> +Date: Mon, 8 Apr 2019 14:49:37 +0800 +Subject: [PATCH 1734/2940] drm/amdgpu: Introduce another ras enable function + +Many parts of the whole SW stack can program the ras enablement state +during the boot. Now we handle that case by adding one function which +check the ras flags and choose different code path. + +Reviewed-by: Evan Quan <evan.quan@amd.com> +Signed-off-by: xinhui pan <xinhui.pan@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 27 +++++++++++++++++++++++++ + drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h | 3 +++ + 2 files changed, 30 insertions(+) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +index a0e34f62f110..22bd21efe6b1 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +@@ -530,6 +530,33 @@ int amdgpu_ras_feature_enable(struct amdgpu_device *adev, + return 0; + } + ++/* Only used in device probe stage and called only once. */ ++int amdgpu_ras_feature_enable_on_boot(struct amdgpu_device *adev, ++ struct ras_common_if *head, bool enable) ++{ ++ struct amdgpu_ras *con = amdgpu_ras_get_context(adev); ++ int ret; ++ ++ if (!con) ++ return -EINVAL; ++ ++ if (con->flags & AMDGPU_RAS_FLAG_INIT_BY_VBIOS) { ++ /* If ras is enabled by vbios, we set up ras object first in ++ * both case. For enable, that is all what we need do. For ++ * disable, we need perform a ras TA disable cmd after that. ++ */ ++ ret = __amdgpu_ras_feature_enable(adev, head, 1); ++ if (ret) ++ return ret; ++ ++ if (!enable) ++ ret = amdgpu_ras_feature_enable(adev, head, 0); ++ } else ++ ret = amdgpu_ras_feature_enable(adev, head, enable); ++ ++ return ret; ++} ++ + static int amdgpu_ras_disable_all_features(struct amdgpu_device *adev, + bool bypass) + { +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h +index 682f2be0d68c..eaef5edefc34 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h +@@ -262,6 +262,9 @@ int amdgpu_ras_pre_fini(struct amdgpu_device *adev); + int amdgpu_ras_feature_enable(struct amdgpu_device *adev, + struct ras_common_if *head, bool enable); + ++int amdgpu_ras_feature_enable_on_boot(struct amdgpu_device *adev, ++ struct ras_common_if *head, bool enable); ++ + int amdgpu_ras_sysfs_create(struct amdgpu_device *adev, + struct ras_fs_if *head); + +-- +2.17.1 + |