| From f8bee6135e167f5b35b7789c74c2956dad14d0d5 Mon Sep 17 00:00:00 2001 |
| From: James Zhu <James.Zhu@amd.com> |
| Date: Tue, 6 Mar 2018 14:52:35 -0500 |
| Subject: drm/amdgpu:Always save uvd vcpu_bo in VM Mode |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: James Zhu <James.Zhu@amd.com> |
| |
| commit f8bee6135e167f5b35b7789c74c2956dad14d0d5 upstream. |
| |
| 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 |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 13 ++++++++----- |
| 1 file changed, 8 insertions(+), 5 deletions(-) |
| |
| --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c |
| +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c |
| @@ -293,12 +293,15 @@ int amdgpu_uvd_suspend(struct amdgpu_dev |
| if (adev->uvd.vcpu_bo == NULL) |
| return 0; |
| |
| - 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; |
| + } |
| |
| cancel_delayed_work_sync(&adev->uvd.idle_work); |
| |