diff options
Diffstat (limited to 'drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c')
| -rw-r--r-- | drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c index 1d924dc51a3e..440fc0869a34 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c @@ -146,7 +146,6 @@ static void vblank_control_worker(struct work_struct *work)  static inline int dm_set_vblank(struct drm_crtc *crtc, bool enable)  { -	enum dc_irq_source irq_source;  	struct amdgpu_crtc *acrtc = to_amdgpu_crtc(crtc);  	struct amdgpu_device *adev = drm_to_adev(crtc->dev);  	struct dm_crtc_state *acrtc_state = to_dm_crtc_state(crtc->state); @@ -169,10 +168,12 @@ static inline int dm_set_vblank(struct drm_crtc *crtc, bool enable)  	if (rc)  		return rc; -	irq_source = IRQ_TYPE_VBLANK + acrtc->otg_inst; +	rc = (enable) +		? amdgpu_irq_get(adev, &adev->crtc_irq, acrtc->crtc_id) +		: amdgpu_irq_put(adev, &adev->crtc_irq, acrtc->crtc_id); -	if (!dc_interrupt_set(adev->dm.dc, irq_source, enable)) -		return -EBUSY; +	if (rc) +		return rc;  skip:  	if (amdgpu_in_reset(adev))  | 
