Message ID | 20190110103045.26821-1-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/crtc-helpers: WARN when used with atomic drivers | expand |
On Thu, Jan 10, 2019 at 11:30:45AM +0100, Daniel Vetter wrote: > Motivated by an oversight of mine when looking at the atomic bochs > conversion. For consistency also switch over to the same style as used > elsewhere (e.g. in drm_mode_set_config_internal). > > Cc: Gerd Hoffmann <kraxel@redhat.com> > Cc: Noralf Trønnes <noralf@tronnes.org> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Reviewed-by: Gerd Hoffmann <kraxel@redhat.com> > --- > drivers/gpu/drm/drm_crtc_helper.c | 18 ++++++++++++++---- > 1 file changed, 14 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c > index 23159eb494f1..91dc9b6386e7 100644 > --- a/drivers/gpu/drm/drm_crtc_helper.c > +++ b/drivers/gpu/drm/drm_crtc_helper.c > @@ -93,6 +93,8 @@ bool drm_helper_encoder_in_use(struct drm_encoder *encoder) > struct drm_connector_list_iter conn_iter; > struct drm_device *dev = encoder->dev; > > + WARN_ON(drm_drv_uses_atomic_modeset(dev)); > + > /* > * We can expect this mutex to be locked if we are not panicking. > * Locking is currently fubar in the panic handler. > @@ -131,6 +133,8 @@ bool drm_helper_crtc_in_use(struct drm_crtc *crtc) > struct drm_encoder *encoder; > struct drm_device *dev = crtc->dev; > > + WARN_ON(drm_drv_uses_atomic_modeset(dev)); > + > /* > * We can expect this mutex to be locked if we are not panicking. > * Locking is currently fubar in the panic handler. > @@ -212,8 +216,7 @@ static void __drm_helper_disable_unused_functions(struct drm_device *dev) > */ > void drm_helper_disable_unused_functions(struct drm_device *dev) > { > - if (drm_core_check_feature(dev, DRIVER_ATOMIC)) > - DRM_ERROR("Called for atomic driver, this is not what you want.\n"); > + WARN_ON(drm_drv_uses_atomic_modeset(dev)); > > drm_modeset_lock_all(dev); > __drm_helper_disable_unused_functions(dev); > @@ -281,6 +284,8 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc, > struct drm_encoder *encoder; > bool ret = true; > > + WARN_ON(drm_drv_uses_atomic_modeset(dev)); > + > drm_warn_on_modeset_not_all_locked(dev); > > saved_enabled = crtc->enabled; > @@ -540,6 +545,9 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set, > > crtc_funcs = set->crtc->helper_private; > > + dev = set->crtc->dev; > + WARN_ON(drm_drv_uses_atomic_modeset(dev)); > + > if (!set->mode) > set->fb = NULL; > > @@ -555,8 +563,6 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set, > return 0; > } > > - dev = set->crtc->dev; > - > drm_warn_on_modeset_not_all_locked(dev); > > /* > @@ -875,6 +881,8 @@ int drm_helper_connector_dpms(struct drm_connector *connector, int mode) > struct drm_crtc *crtc = encoder ? encoder->crtc : NULL; > int old_dpms, encoder_dpms = DRM_MODE_DPMS_OFF; > > + WARN_ON(drm_drv_uses_atomic_modeset(connector->dev)); > + > if (mode == connector->dpms) > return 0; > > @@ -946,6 +954,8 @@ void drm_helper_resume_force_mode(struct drm_device *dev) > int encoder_dpms; > bool ret; > > + WARN_ON(drm_drv_uses_atomic_modeset(dev)); > + > drm_modeset_lock_all(dev); > drm_for_each_crtc(crtc, dev) { > > -- > 2.20.0.rc1 >
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c index 23159eb494f1..91dc9b6386e7 100644 --- a/drivers/gpu/drm/drm_crtc_helper.c +++ b/drivers/gpu/drm/drm_crtc_helper.c @@ -93,6 +93,8 @@ bool drm_helper_encoder_in_use(struct drm_encoder *encoder) struct drm_connector_list_iter conn_iter; struct drm_device *dev = encoder->dev; + WARN_ON(drm_drv_uses_atomic_modeset(dev)); + /* * We can expect this mutex to be locked if we are not panicking. * Locking is currently fubar in the panic handler. @@ -131,6 +133,8 @@ bool drm_helper_crtc_in_use(struct drm_crtc *crtc) struct drm_encoder *encoder; struct drm_device *dev = crtc->dev; + WARN_ON(drm_drv_uses_atomic_modeset(dev)); + /* * We can expect this mutex to be locked if we are not panicking. * Locking is currently fubar in the panic handler. @@ -212,8 +216,7 @@ static void __drm_helper_disable_unused_functions(struct drm_device *dev) */ void drm_helper_disable_unused_functions(struct drm_device *dev) { - if (drm_core_check_feature(dev, DRIVER_ATOMIC)) - DRM_ERROR("Called for atomic driver, this is not what you want.\n"); + WARN_ON(drm_drv_uses_atomic_modeset(dev)); drm_modeset_lock_all(dev); __drm_helper_disable_unused_functions(dev); @@ -281,6 +284,8 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc, struct drm_encoder *encoder; bool ret = true; + WARN_ON(drm_drv_uses_atomic_modeset(dev)); + drm_warn_on_modeset_not_all_locked(dev); saved_enabled = crtc->enabled; @@ -540,6 +545,9 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set, crtc_funcs = set->crtc->helper_private; + dev = set->crtc->dev; + WARN_ON(drm_drv_uses_atomic_modeset(dev)); + if (!set->mode) set->fb = NULL; @@ -555,8 +563,6 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set, return 0; } - dev = set->crtc->dev; - drm_warn_on_modeset_not_all_locked(dev); /* @@ -875,6 +881,8 @@ int drm_helper_connector_dpms(struct drm_connector *connector, int mode) struct drm_crtc *crtc = encoder ? encoder->crtc : NULL; int old_dpms, encoder_dpms = DRM_MODE_DPMS_OFF; + WARN_ON(drm_drv_uses_atomic_modeset(connector->dev)); + if (mode == connector->dpms) return 0; @@ -946,6 +954,8 @@ void drm_helper_resume_force_mode(struct drm_device *dev) int encoder_dpms; bool ret; + WARN_ON(drm_drv_uses_atomic_modeset(dev)); + drm_modeset_lock_all(dev); drm_for_each_crtc(crtc, dev) {
Motivated by an oversight of mine when looking at the atomic bochs conversion. For consistency also switch over to the same style as used elsewhere (e.g. in drm_mode_set_config_internal). Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Noralf Trønnes <noralf@tronnes.org> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> --- drivers/gpu/drm/drm_crtc_helper.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-)