aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/1734-drm-amdgpu-Introduce-another-ras-enable-function.patch
diff options
context:
space:
mode:
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.patch71
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
+