Commit 016a14be authored by Thomas Zimmermann's avatar Thomas Zimmermann
Browse files

drm/ast: Enable primary plane with CRTC



As the CRTC requires a primary plane for display, ensure that the
primary plane is enabled with the CRTC.

Use drm_atomic_helper_check_crtc_state(). Add all affected planes
to the atomic state so that their state will be checked as well.

Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Acked-by: default avatarJocelyn Falempe <jfalempe@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220617103226.25617-4-tzimmermann@suse.de
parent dc2cdd17
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -1108,15 +1108,19 @@ ast_crtc_helper_mode_valid(struct drm_crtc *crtc, const struct drm_display_mode
static int ast_crtc_helper_atomic_check(struct drm_crtc *crtc,
					struct drm_atomic_state *state)
{
	struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state,
									  crtc);
	struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, crtc);
	struct drm_device *dev = crtc->dev;
	struct ast_crtc_state *ast_state;
	const struct drm_format_info *format;
	bool succ;
	int ret;

	ret = drm_atomic_helper_check_crtc_state(crtc_state, false);
	if (ret)
		return ret;

	if (!crtc_state->enable)
		return 0; /* no mode checks if CRTC is being disabled */
		goto out;

	ast_state = to_ast_crtc_state(crtc_state);

@@ -1130,7 +1134,8 @@ static int ast_crtc_helper_atomic_check(struct drm_crtc *crtc,
	if (!succ)
		return -EINVAL;

	return 0;
out:
	return drm_atomic_add_affected_planes(state, crtc);
}

static void ast_crtc_helper_atomic_begin(struct drm_crtc *crtc, struct drm_atomic_state *state)