aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4281-drm-amdgpu-Move-amdgpu_ras_recovery_init-to-after-SM.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4281-drm-amdgpu-Move-amdgpu_ras_recovery_init-to-after-SM.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4281-drm-amdgpu-Move-amdgpu_ras_recovery_init-to-after-SM.patch68
1 files changed, 68 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4281-drm-amdgpu-Move-amdgpu_ras_recovery_init-to-after-SM.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4281-drm-amdgpu-Move-amdgpu_ras_recovery_init-to-after-SM.patch
new file mode 100644
index 00000000..7299f949
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4281-drm-amdgpu-Move-amdgpu_ras_recovery_init-to-after-SM.patch
@@ -0,0 +1,68 @@
+From 4247199656c3a7e8b1bed2c1318166bd60636da5 Mon Sep 17 00:00:00 2001
+From: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
+Date: Fri, 18 Oct 2019 16:15:04 -0400
+Subject: [PATCH 4281/4736] drm/amdgpu: Move amdgpu_ras_recovery_init to after
+ SMU ready.
+
+For Arcturus the I2C traffic is done through SMU tables and so
+we must postpone RAS recovery init to after they are ready
+which is in amdgpu_device_ip_hw_init_phase2.
+
+Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+reviewed-by: Evan Quan <evan.quan@amd.com>
+Reviewed-by: Guchun Chen <guchun.chen@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 13 +++++++++++++
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 11 -----------
+ 2 files changed, 13 insertions(+), 11 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+index 634b581f96b8..e30e4f8f7df3 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+@@ -1877,6 +1877,19 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)
+ if (r)
+ goto init_failed;
+
++ /*
++ * retired pages will be loaded from eeprom and reserved here,
++ * it should be called after amdgpu_device_ip_hw_init_phase2 since
++ * for some ASICs the RAS EEPROM code relies on SMU fully functioning
++ * for I2C communication which only true at this point.
++ * recovery_init may fail, but it can free all resources allocated by
++ * itself and its failure should not stop amdgpu init process.
++ *
++ * Note: theoretically, this should be called before all vram allocations
++ * to protect retired page from abusing
++ */
++ amdgpu_ras_recovery_init(adev);
++
+ if (adev->gmc.xgmi.num_physical_nodes > 1)
+ amdgpu_xgmi_add_device(adev);
+ amdgpu_amdkfd_device_init(adev);
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+index 968595138b32..8bdc1eec496e 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+@@ -2115,17 +2115,6 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
+ adev->gmc.visible_vram_size);
+ #endif
+
+- /*
+- * retired pages will be loaded from eeprom and reserved here,
+- * it should be called after ttm init since new bo may be created,
+- * recovery_init may fail, but it can free all resources allocated by
+- * itself and its failure should not stop amdgpu init process.
+- *
+- * Note: theoretically, this should be called before all vram allocations
+- * to protect retired page from abusing
+- */
+- amdgpu_ras_recovery_init(adev);
+-
+ /*
+ *The reserved vram for firmware must be pinned to the specified
+ *place on the VRAM, so reserve it early.
+--
+2.17.1
+