summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
diff options
context:
space:
mode:
authorHorace Chen <horace.chen@amd.com>2023-07-19 10:55:04 +0300
committerAlex Deucher <alexander.deucher@amd.com>2023-07-25 20:35:23 +0300
commit83f24a8f0532f6d9fcdbe36e438f00a1a082fcd4 (patch)
treeab036e252c4f6f8df460cd8ed9cc6ed77c5d4cf7 /drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
parent8cddd3dc3c53b2612d5de0ef9416b661695557a5 (diff)
downloadlinux-83f24a8f0532f6d9fcdbe36e438f00a1a082fcd4.tar.xz
drm/amdgpu: set sw state to gfxoff after SR-IOV reset
[Why] Current SR-IOV will not set GC to off state, while it is a real GC hard reset. Whthout GFX off flag, driver may do gfxhub invalidation before firmware load and gfxhub gart enable. This operation may cause CP to become busy because GC is not in the right state for invalidation. [How] Add a function for SR-IOV to clean up some sw state before recover. Set adev->gfx.is_poweron to false to prevent gfxhub invalidation before gfx firmware autoload complete. Signed-off-by: Horace Chen <horace.chen@amd.com> Reviewed-by: HaiJun Chang <HaiJun.Chang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_device.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_device.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 28e6419023b7..1c786190a84e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -4575,6 +4575,9 @@ retry:
if (r)
return r;
+ /* some sw clean up VF needs to do before recover */
+ amdgpu_virt_post_reset(adev);
+
/* Resume IP prior to SMC */
r = amdgpu_device_ip_reinit_early_sriov(adev);
if (r)