[PATCH] drm/amdgpu: disable CRTCs before teardown

Lukas Wunner lukas at wunner.de
Mon Sep 26 17:29:14 UTC 2016


On Sun, Sep 25, 2016 at 11:34:48PM +0300, Grazvydas Ignotas wrote:
> Some code called by drm_crtc_force_disable_all() wants to wait for all
> fences, so only do fence teardown after CRTCs are disabled.

Ugh, how embarrassing, that was added by me.

Do you have a BUG splat (e.g. soft lockup) for this?  I'd be curious to
see exactly where things explode, would also be good to have that in
the commit message.

Thanks!

Lukas

> 
> Signed-off-by: Grazvydas Ignotas <notasas at gmail.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 99a15ca..1a1bc79 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -1822,11 +1822,11 @@ void amdgpu_device_fini(struct amdgpu_device *adev)
>  
>  	DRM_INFO("amdgpu: finishing device.\n");
>  	adev->shutdown = true;
> +	drm_crtc_force_disable_all(adev->ddev);
>  	/* evict vram memory */
>  	amdgpu_bo_evict_vram(adev);
>  	amdgpu_ib_pool_fini(adev);
>  	amdgpu_fence_driver_fini(adev);
> -	drm_crtc_force_disable_all(adev->ddev);
>  	amdgpu_fbdev_fini(adev);
>  	r = amdgpu_fini(adev);
>  	kfree(adev->ip_block_status);
> -- 
> 2.7.4


More information about the dri-devel mailing list