aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJerome Glisse <jglisse@redhat.com>2014-02-26 19:22:47 -0500
committerAlex Deucher <alexander.deucher@amd.com>2014-02-27 14:10:35 -0500
commitd965441342f3b7d63db784cad852328d17d47942 (patch)
tree06f0f34f7b511555e70cf2676a5128b53b614e15
parent9ef4e1d000a5b335fcebfcf8aef3405e59574c89 (diff)
drm/radeon: free uvd ring on unload
Need to free the uvd ring. Also reshuffle gart tear down to happen after uvd tear down. Signed-off-by: Jérôme Glisse <jglisse@redhat.com> Cc: stable@vger.kernel.org Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/radeon/evergreen.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_uvd.c2
-rw-r--r--drivers/gpu/drm/radeon/rv770.c2
3 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
index 5623e7542d99..8a2c010b7dc5 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -5475,9 +5475,9 @@ void evergreen_fini(struct radeon_device *rdev)
5475 radeon_wb_fini(rdev); 5475 radeon_wb_fini(rdev);
5476 radeon_ib_pool_fini(rdev); 5476 radeon_ib_pool_fini(rdev);
5477 radeon_irq_kms_fini(rdev); 5477 radeon_irq_kms_fini(rdev);
5478 evergreen_pcie_gart_fini(rdev);
5479 uvd_v1_0_fini(rdev); 5478 uvd_v1_0_fini(rdev);
5480 radeon_uvd_fini(rdev); 5479 radeon_uvd_fini(rdev);
5480 evergreen_pcie_gart_fini(rdev);
5481 r600_vram_scratch_fini(rdev); 5481 r600_vram_scratch_fini(rdev);
5482 radeon_gem_fini(rdev); 5482 radeon_gem_fini(rdev);
5483 radeon_fence_driver_fini(rdev); 5483 radeon_fence_driver_fini(rdev);
diff --git a/drivers/gpu/drm/radeon/radeon_uvd.c b/drivers/gpu/drm/radeon/radeon_uvd.c
index 6781fee1eaad..3e6804b2b2ef 100644
--- a/drivers/gpu/drm/radeon/radeon_uvd.c
+++ b/drivers/gpu/drm/radeon/radeon_uvd.c
@@ -171,6 +171,8 @@ void radeon_uvd_fini(struct radeon_device *rdev)
171 171
172 radeon_bo_unref(&rdev->uvd.vcpu_bo); 172 radeon_bo_unref(&rdev->uvd.vcpu_bo);
173 173
174 radeon_ring_fini(rdev, &rdev->ring[R600_RING_TYPE_UVD_INDEX]);
175
174 release_firmware(rdev->uvd_fw); 176 release_firmware(rdev->uvd_fw);
175} 177}
176 178
diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c
index 6c772e58c784..4e37a42305d8 100644
--- a/drivers/gpu/drm/radeon/rv770.c
+++ b/drivers/gpu/drm/radeon/rv770.c
@@ -1955,9 +1955,9 @@ void rv770_fini(struct radeon_device *rdev)
1955 radeon_wb_fini(rdev); 1955 radeon_wb_fini(rdev);
1956 radeon_ib_pool_fini(rdev); 1956 radeon_ib_pool_fini(rdev);
1957 radeon_irq_kms_fini(rdev); 1957 radeon_irq_kms_fini(rdev);
1958 rv770_pcie_gart_fini(rdev);
1959 uvd_v1_0_fini(rdev); 1958 uvd_v1_0_fini(rdev);
1960 radeon_uvd_fini(rdev); 1959 radeon_uvd_fini(rdev);
1960 rv770_pcie_gart_fini(rdev);
1961 r600_vram_scratch_fini(rdev); 1961 r600_vram_scratch_fini(rdev);
1962 radeon_gem_fini(rdev); 1962 radeon_gem_fini(rdev);
1963 radeon_fence_driver_fini(rdev); 1963 radeon_fence_driver_fini(rdev);