diff options
author | Grazvydas Ignotas <notasas@gmail.com> | 2016-09-25 16:34:48 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-09-27 12:22:21 -0400 |
commit | a951ed85abd4615e98e36b536e3b3b07b22a88ac (patch) | |
tree | be39fc799fb6342242dbeebacd2d0688d2874979 /drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |
parent | 47a66e45d7a7613322549c2475ea9d809baaf514 (diff) |
drm/amdgpu: disable CRTCs before teardown
Some code called by drm_crtc_force_disable_all() wants to wait for all
fences, so only do fence teardown after CRTCs are disabled.
Fixes: 84b89bdcedf8 ("drm/amdgpu: Turn off CRTCs on driver unload")
Cc: stable@vger.kernel.org # v4.8+
Signed-off-by: Grazvydas Ignotas <notasas@gmail.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.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index df7ab2458e50..39c01b942ee4 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |||
@@ -1708,11 +1708,11 @@ void amdgpu_device_fini(struct amdgpu_device *adev) | |||
1708 | 1708 | ||
1709 | DRM_INFO("amdgpu: finishing device.\n"); | 1709 | DRM_INFO("amdgpu: finishing device.\n"); |
1710 | adev->shutdown = true; | 1710 | adev->shutdown = true; |
1711 | drm_crtc_force_disable_all(adev->ddev); | ||
1711 | /* evict vram memory */ | 1712 | /* evict vram memory */ |
1712 | amdgpu_bo_evict_vram(adev); | 1713 | amdgpu_bo_evict_vram(adev); |
1713 | amdgpu_ib_pool_fini(adev); | 1714 | amdgpu_ib_pool_fini(adev); |
1714 | amdgpu_fence_driver_fini(adev); | 1715 | amdgpu_fence_driver_fini(adev); |
1715 | drm_crtc_force_disable_all(adev->ddev); | ||
1716 | amdgpu_fbdev_fini(adev); | 1716 | amdgpu_fbdev_fini(adev); |
1717 | r = amdgpu_fini(adev); | 1717 | r = amdgpu_fini(adev); |
1718 | kfree(adev->ip_block_status); | 1718 | kfree(adev->ip_block_status); |