diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0986-drm-amdgpu-sriov-Correct-pfvf-exchange-logic.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/0986-drm-amdgpu-sriov-Correct-pfvf-exchange-logic.patch | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0986-drm-amdgpu-sriov-Correct-pfvf-exchange-logic.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0986-drm-amdgpu-sriov-Correct-pfvf-exchange-logic.patch new file mode 100644 index 00000000..8f341e90 --- /dev/null +++ b/common/recipes-kernel/linux/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 + |