Am 18.09.2017 um 08:12 schrieb Monk Liu:
fix missing finish uvd enc_ring and wrongly finish uvd ring

Change-Id: Ib74237ca5adcb3b128c9b751fced0b7db7b09e86
Signed-off-by: Monk Liu <monk....@amd.com>
---
  drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 12 +++++++++++-
  1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
index 331e34a..63b00eb 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
@@ -269,6 +269,8 @@ int amdgpu_uvd_sw_init(struct amdgpu_device *adev)
int amdgpu_uvd_sw_fini(struct amdgpu_device *adev)
  {
+       struct amdgpu_ring *ring;
+       int i;

A newline should be between declaration and code.

        kfree(adev->uvd.saved_bo);
amd_sched_entity_fini(&adev->uvd.ring.sched, &adev->uvd.entity);
@@ -277,7 +279,15 @@ int amdgpu_uvd_sw_fini(struct amdgpu_device *adev)
                              &adev->uvd.gpu_addr,
                              (void **)&adev->uvd.cpu_addr);
- amdgpu_ring_fini(&adev->uvd.ring);
+       ring = &adev->uvd.ring;
+       if (ring->adev)

No need for that, the first thing that amdgpu_ring_fini() does is checking ring->adev, so that is just duplicated.

Reviewed-by: Christian König <christian.koe...@amd.com> with those two minor issues fixed.

Regards,
Christian.

+               amdgpu_ring_fini(ring);
+
+       for (i = 0; i < AMDGPU_MAX_UVD_ENC_RINGS; ++i) {
+               ring = &adev->uvd.ring_enc[i];
+               if (ring->adev)
+                       amdgpu_ring_fini(ring);
+       }
release_firmware(adev->uvd.fw);


_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to