Commit b3656b35 authored by Ivan Lipski's avatar Ivan Lipski Committed by Alex Deucher
Browse files

drm/amd/display: Fix incorrect return of vblank enable on unconfigured crtc



[Why&How]
Return -EINVAL when userspace asks us to enable vblank on a crtc that is
not yet enabled.

Suggested-by: default avatarAurabindo Pillai <aurabindo.pillai@amd.com>
Reviewed-by: default avatarAurabindo Pillai <aurabindo.pillai@amd.com>
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/1856


Signed-off-by: default avatarIvan Lipski <ivan.lipski@amd.com>
Signed-off-by: default avatarWayne Lin <wayne.lin@amd.com>
Tested-by: default avatarDan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
(cherry picked from commit cb57b8cd)
Cc: stable@vger.kernel.org
parent 7d08c3b1
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -308,8 +308,12 @@ static inline int amdgpu_dm_crtc_set_vblank(struct drm_crtc *crtc, bool enable)
	int irq_type;
	int rc = 0;

	if (acrtc->otg_inst == -1)
		goto skip;
	if (enable && !acrtc->base.enabled) {
		drm_dbg_vbl(crtc->dev,
				"Reject vblank enable on unconfigured CRTC %d (enabled=%d)\n",
				acrtc->crtc_id, acrtc->base.enabled);
		return -EINVAL;
	}

	irq_type = amdgpu_display_crtc_idx_to_irq_type(adev, acrtc->crtc_id);

@@ -394,7 +398,7 @@ static inline int amdgpu_dm_crtc_set_vblank(struct drm_crtc *crtc, bool enable)
			return rc;
	}
#endif
skip:

	if (amdgpu_in_reset(adev))
		return 0;