diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/dce_virtual.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_virtual.c | 14 | 
1 files changed, 6 insertions, 8 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c index 5c11144da051..7e0d8c092c7e 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c @@ -421,6 +421,11 @@ static int dce_virtual_sw_init(void *handle)  static int dce_virtual_sw_fini(void *handle)  {  	struct amdgpu_device *adev = (struct amdgpu_device *)handle; +	int i = 0; + +	for (i = 0; i < adev->mode_info.num_crtc; i++) +		if (adev->mode_info.crtcs[i]) +			hrtimer_cancel(&adev->mode_info.crtcs[i]->vblank_timer);  	kfree(adev->mode_info.bios_hardcoded_edid); @@ -480,13 +485,6 @@ static int dce_virtual_hw_init(void *handle)  static int dce_virtual_hw_fini(void *handle)  { -	struct amdgpu_device *adev = (struct amdgpu_device *)handle; -	int i = 0; - -	for (i = 0; i<adev->mode_info.num_crtc; i++) -		if (adev->mode_info.crtcs[i]) -			hrtimer_cancel(&adev->mode_info.crtcs[i]->vblank_timer); -  	return 0;  } @@ -768,7 +766,7 @@ static const struct amdgpu_irq_src_funcs dce_virtual_crtc_irq_funcs = {  static void dce_virtual_set_irq_funcs(struct amdgpu_device *adev)  { -	adev->crtc_irq.num_types = AMDGPU_CRTC_IRQ_VBLANK6 + 1; +	adev->crtc_irq.num_types = adev->mode_info.num_crtc;  	adev->crtc_irq.funcs = &dce_virtual_crtc_irq_funcs;  } | 
