Message ID | 20201222134002.161613-1-contact@emersion.fr (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm: warn if cursor plane is set with legacy funcs | expand |
On Tue, Dec 22, 2020 at 02:40:02PM +0100, Simon Ser wrote: > A driver must not set drm_crtc.cursor and any of the legacy funcs at the > same time, otherwise it's not clear which one DRM core should use for > legacy cursor updates. > > Signed-off-by: Simon Ser <contact@emersion.fr> > Cc: Daniel Vetter <daniel@ffwll.ch> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > drivers/gpu/drm/drm_mode_config.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/gpu/drm/drm_mode_config.c b/drivers/gpu/drm/drm_mode_config.c > index 9611f21bca00..92e56baf04ad 100644 > --- a/drivers/gpu/drm/drm_mode_config.c > +++ b/drivers/gpu/drm/drm_mode_config.c > @@ -645,6 +645,16 @@ void drm_mode_config_validate(struct drm_device *dev) > WARN(!crtc->primary, "Missing primary plane on [CRTC:%d:%s]\n", > crtc->base.id, crtc->name); > > + WARN(crtc->cursor && crtc->funcs->cursor_set, > + "[CRTC:%d:%s] must not have both a cursor plane and a cursor_set func", > + crtc->base.id, crtc->name); > + WARN(crtc->cursor && crtc->funcs->cursor_set2, > + "[CRTC:%d:%s] must not have both a cursor plane and a cursor_set2 func", > + crtc->base.id, crtc->name); > + WARN(crtc->cursor && crtc->funcs->cursor_move, > + "[CRTC:%d:%s] must not have both a cursor plane and a cursor_move func", > + crtc->base.id, crtc->name); > + > if (crtc->primary) { > WARN(!(crtc->primary->possible_crtcs & drm_crtc_mask(crtc)), > "Bogus primary plane possible_crtcs: [PLANE:%d:%s] must be compatible with [CRTC:%d:%s]\n", > -- > 2.29.2 >
diff --git a/drivers/gpu/drm/drm_mode_config.c b/drivers/gpu/drm/drm_mode_config.c index 9611f21bca00..92e56baf04ad 100644 --- a/drivers/gpu/drm/drm_mode_config.c +++ b/drivers/gpu/drm/drm_mode_config.c @@ -645,6 +645,16 @@ void drm_mode_config_validate(struct drm_device *dev) WARN(!crtc->primary, "Missing primary plane on [CRTC:%d:%s]\n", crtc->base.id, crtc->name); + WARN(crtc->cursor && crtc->funcs->cursor_set, + "[CRTC:%d:%s] must not have both a cursor plane and a cursor_set func", + crtc->base.id, crtc->name); + WARN(crtc->cursor && crtc->funcs->cursor_set2, + "[CRTC:%d:%s] must not have both a cursor plane and a cursor_set2 func", + crtc->base.id, crtc->name); + WARN(crtc->cursor && crtc->funcs->cursor_move, + "[CRTC:%d:%s] must not have both a cursor plane and a cursor_move func", + crtc->base.id, crtc->name); + if (crtc->primary) { WARN(!(crtc->primary->possible_crtcs & drm_crtc_mask(crtc)), "Bogus primary plane possible_crtcs: [PLANE:%d:%s] must be compatible with [CRTC:%d:%s]\n",
A driver must not set drm_crtc.cursor and any of the legacy funcs at the same time, otherwise it's not clear which one DRM core should use for legacy cursor updates. Signed-off-by: Simon Ser <contact@emersion.fr> Cc: Daniel Vetter <daniel@ffwll.ch> --- drivers/gpu/drm/drm_mode_config.c | 10 ++++++++++ 1 file changed, 10 insertions(+)