Skip to content

Commit

Permalink
drm/amdgpu:Always save uvd vcpu_bo in VM Mode
Browse files Browse the repository at this point in the history
When UVD is in VM mode, there is not uvd handle exchanged,
uvd.handles are always 0. So vcpu_bo always need save,
Otherwise amdgpu driver will fail during suspend/resume.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105021
Signed-off-by: James Zhu <James.Zhu@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
  • Loading branch information
James Zhu authored and Alex Deucher committed Mar 7, 2018
1 parent ec7549d commit f6c3b60
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
Original file line number Diff line number Diff line change
Expand Up @@ -299,12 +299,15 @@ int amdgpu_uvd_suspend(struct amdgpu_device *adev)

cancel_delayed_work_sync(&adev->uvd.idle_work);

for (i = 0; i < adev->uvd.max_handles; ++i)
if (atomic_read(&adev->uvd.handles[i]))
break;
/* only valid for physical mode */
if (adev->asic_type < CHIP_POLARIS10) {
for (i = 0; i < adev->uvd.max_handles; ++i)
if (atomic_read(&adev->uvd.handles[i]))
break;

if (i == adev->uvd.max_handles)
return 0;
if (i == adev->uvd.max_handles)
return 0;
}

size = amdgpu_bo_size(adev->uvd.vcpu_bo);
ptr = adev->uvd.cpu_addr;
Expand Down

0 comments on commit f6c3b60

Please sign in to comment.