diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/dce_v6_0.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 12 | 
1 files changed, 8 insertions, 4 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c index a51e35f824a1..bd2c4f727df6 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c @@ -2639,7 +2639,6 @@ static int dce_v6_0_early_init(void *handle)  	adev->audio_endpt_wreg = &dce_v6_0_audio_endpt_wreg;  	dce_v6_0_set_display_funcs(adev); -	dce_v6_0_set_irq_funcs(adev);  	adev->mode_info.num_crtc = dce_v6_0_get_num_crtc(adev); @@ -2658,6 +2657,8 @@ static int dce_v6_0_early_init(void *handle)  		return -EINVAL;  	} +	dce_v6_0_set_irq_funcs(adev); +  	return 0;  } @@ -3441,13 +3442,16 @@ static const struct amdgpu_irq_src_funcs dce_v6_0_hpd_irq_funcs = {  static void dce_v6_0_set_irq_funcs(struct amdgpu_device *adev)  { -	adev->crtc_irq.num_types = AMDGPU_CRTC_IRQ_LAST; +	if (adev->mode_info.num_crtc > 0) +		adev->crtc_irq.num_types = AMDGPU_CRTC_IRQ_VLINE1 + adev->mode_info.num_crtc; +	else +		adev->crtc_irq.num_types = 0;  	adev->crtc_irq.funcs = &dce_v6_0_crtc_irq_funcs; -	adev->pageflip_irq.num_types = AMDGPU_PAGEFLIP_IRQ_LAST; +	adev->pageflip_irq.num_types = adev->mode_info.num_crtc;  	adev->pageflip_irq.funcs = &dce_v6_0_pageflip_irq_funcs; -	adev->hpd_irq.num_types = AMDGPU_HPD_LAST; +	adev->hpd_irq.num_types = adev->mode_info.num_hpd;  	adev->hpd_irq.funcs = &dce_v6_0_hpd_irq_funcs;  } | 
