aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0986-drm-amdgpu-sriov-Correct-pfvf-exchange-logic.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0986-drm-amdgpu-sriov-Correct-pfvf-exchange-logic.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0986-drm-amdgpu-sriov-Correct-pfvf-exchange-logic.patch66
1 files changed, 66 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0986-drm-amdgpu-sriov-Correct-pfvf-exchange-logic.patch b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0986-drm-amdgpu-sriov-Correct-pfvf-exchange-logic.patch
new file mode 100644
index 00000000..8f341e90
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0986-drm-amdgpu-sriov-Correct-pfvf-exchange-logic.patch
@@ -0,0 +1,66 @@
+From f0e3343e8e8ea7d0186ff791deb4890e519a8c83 Mon Sep 17 00:00:00 2001
+From: Emily Deng <Emily.Deng@amd.com>
+Date: Sat, 29 Dec 2018 17:46:05 +0800
+Subject: [PATCH 0986/2940] drm/amdgpu/sriov:Correct pfvf exchange logic
+
+The pfvf exchange need be in exclusive mode. And add pfvf exchange in gpu
+reset.
+
+Signed-off-by: Emily Deng <Emily.Deng@amd.com>
+Reviewed-By: Xiangliang Yu <Xiangliang.Yu@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 8 ++++----
+ drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+index 2e720c181815..bdae7ae7e43b 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+@@ -1749,8 +1749,10 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)
+ amdgpu_xgmi_add_device(adev);
+ amdgpu_amdkfd_device_init(adev);
+
+- if (amdgpu_sriov_vf(adev))
++ if (amdgpu_sriov_vf(adev)) {
++ amdgpu_virt_init_data_exchange(adev);
+ amdgpu_virt_release_full_gpu(adev, true);
++ }
+
+ return 0;
+ }
+@@ -2681,9 +2683,6 @@ int amdgpu_device_init(struct amdgpu_device *adev,
+ goto failed;
+ }
+
+- if (amdgpu_sriov_vf(adev))
+- amdgpu_virt_init_data_exchange(adev);
+-
+ amdgpu_fbdev_init(adev);
+
+ r = amdgpu_pm_sysfs_init(adev);
+@@ -3275,6 +3274,7 @@ static int amdgpu_device_reset_sriov(struct amdgpu_device *adev,
+ r = amdgpu_ib_ring_tests(adev);
+
+ error:
++ amdgpu_virt_init_data_exchange(adev);
+ amdgpu_virt_release_full_gpu(adev, true);
+ if (!r && adev->virt.gim_feature & AMDGIM_FEATURE_GIM_FLR_VRAMLOST) {
+ atomic_inc(&adev->vram_lost_counter);
+diff --git a/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c b/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c
+index 8cbb4655896a..b11a1c17a7f2 100644
+--- a/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c
++++ b/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c
+@@ -174,7 +174,7 @@ static int xgpu_ai_send_access_requests(struct amdgpu_device *adev,
+ return r;
+ }
+ /* Retrieve checksum from mailbox2 */
+- if (req == IDH_REQ_GPU_INIT_ACCESS) {
++ if (req == IDH_REQ_GPU_INIT_ACCESS || req == IDH_REQ_GPU_RESET_ACCESS) {
+ adev->virt.fw_reserve.checksum_key =
+ RREG32_NO_KIQ(SOC15_REG_OFFSET(NBIO, 0,
+ mmBIF_BX_PF0_MAILBOX_MSGBUF_RCV_DW2));
+--
+2.17.1
+