aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/0782-drm-amdgpu-Each-PSP-need-to-get-latest-topology-info.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0782-drm-amdgpu-Each-PSP-need-to-get-latest-topology-info.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/0782-drm-amdgpu-Each-PSP-need-to-get-latest-topology-info.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0782-drm-amdgpu-Each-PSP-need-to-get-latest-topology-info.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0782-drm-amdgpu-Each-PSP-need-to-get-latest-topology-info.patch
new file mode 100644
index 00000000..7577bf19
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0782-drm-amdgpu-Each-PSP-need-to-get-latest-topology-info.patch
@@ -0,0 +1,49 @@
+From b7ab735426f6cd42da9fe55d0f461b2f791ad768 Mon Sep 17 00:00:00 2001
+From: shaoyunl <Shaoyun.Liu@amd.com>
+Date: Mon, 15 Oct 2018 14:40:06 -0400
+Subject: [PATCH 0782/2940] drm/amdgpu: Each PSP need to get latest topology
+ info on XGMI configuration
+
+Driver need to call each psp instance to get topology info before set topology
+
+Signed-off-by: shaoyunl <Shaoyun.Liu@amd.com>
+reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 19 ++++++++++++-------
+ 1 file changed, 12 insertions(+), 7 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
+index 56acdeab3812..909216a9b447 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
+@@ -88,14 +88,19 @@ int amdgpu_xgmi_add_device(struct amdgpu_device *adev)
+ list_for_each_entry(entry, &hive->device_list, head)
+ tmp_topology->nodes[count++].node_id = entry->node_id;
+
+- ret = psp_xgmi_get_topology_info(&adev->psp, count, tmp_topology);
+- if (ret) {
+- dev_err(adev->dev,
+- "XGMI: Get topology failure on device %llx, hive %llx, ret %d",
+- adev->gmc.xgmi.node_id,
+- adev->gmc.xgmi.hive_id, ret);
+- goto exit;
++ /* Each psp need to get the latest topology */
++ list_for_each_entry(tmp_adev, &hive->device_list, gmc.xgmi.head) {
++ ret = psp_xgmi_get_topology_info(&tmp_adev->psp, count, tmp_topology);
++ if (ret) {
++ dev_err(tmp_adev->dev,
++ "XGMI: Get topology failure on device %llx, hive %llx, ret %d",
++ tmp_adev->gmc.xgmi.node_id,
++ tmp_adev->gmc.xgmi.hive_id, ret);
++ /* To do : continue with some node failed or disable the whole hive */
++ break;
++ }
+ }
++
+ /* Each psp need to set the latest topology */
+ list_for_each_entry(tmp_adev, &hive->device_list, gmc.xgmi.head) {
+ ret = psp_xgmi_set_topology_info(&tmp_adev->psp, count, tmp_topology);
+--
+2.17.1
+