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

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
...@@ -1108,15 +1108,19 @@ ast_crtc_helper_mode_valid(struct drm_crtc *crtc, const struct drm_display_mode ...@@ -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, static int ast_crtc_helper_atomic_check(struct drm_crtc *crtc,
struct drm_atomic_state *state) struct drm_atomic_state *state)
{ {
struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, crtc);
crtc);
struct drm_device *dev = crtc->dev; struct drm_device *dev = crtc->dev;
struct ast_crtc_state *ast_state; struct ast_crtc_state *ast_state;
const struct drm_format_info *format; const struct drm_format_info *format;
bool succ; bool succ;
int ret;
ret = drm_atomic_helper_check_crtc_state(crtc_state, false);
if (ret)
return ret;
if (!crtc_state->enable) if (!crtc_state->enable)
return 0; /* no mode checks if CRTC is being disabled */ goto out;
ast_state = to_ast_crtc_state(crtc_state); ast_state = to_ast_crtc_state(crtc_state);
...@@ -1130,7 +1134,8 @@ static int ast_crtc_helper_atomic_check(struct drm_crtc *crtc, ...@@ -1130,7 +1134,8 @@ static int ast_crtc_helper_atomic_check(struct drm_crtc *crtc,
if (!succ) if (!succ)
return -EINVAL; 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) static void ast_crtc_helper_atomic_begin(struct drm_crtc *crtc, struct drm_atomic_state *state)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment