On Wed, 8 Jun 2016 14:19:15 +0200 Daniel Vetter <daniel.vetter@xxxxxxxx> wrote: > Drivers transitioning to atomic might not yet want to enable full > DRIVER_ATOMIC support when it's not entirely working. But using atomic > internally makes a lot more sense earlier. > > Instead of spreading such flags to more places I figured it's simpler > to just check for mode_config->funcs->atomic_commit, and use atomic > paths if that is set. For the only driver currently transitioning > (i915) this does the right thing. > > Cc: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx> > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx> Reviewed-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/drm_fb_helper.c | 6 ++---- > drivers/gpu/drm/i915/intel_fbdev.c | 2 -- > include/drm/drm_fb_helper.h | 11 ----------- > 3 files changed, 2 insertions(+), 17 deletions(-) > > diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c > index c0e0a2e78d75..ba2fcb2a68ad 100644 > --- a/drivers/gpu/drm/drm_fb_helper.c > +++ b/drivers/gpu/drm/drm_fb_helper.c > @@ -385,7 +385,7 @@ static int restore_fbdev_mode(struct drm_fb_helper *fb_helper) > > drm_warn_on_modeset_not_all_locked(dev); > > - if (fb_helper->atomic) > + if (dev->mode_config.funcs->atomic_commit) > return restore_fbdev_mode_atomic(fb_helper); > > drm_for_each_plane(plane, dev) { > @@ -716,8 +716,6 @@ int drm_fb_helper_init(struct drm_device *dev, > i++; > } > > - fb_helper->atomic = !!drm_core_check_feature(dev, DRIVER_ATOMIC); > - > return 0; > out_free: > drm_fb_helper_crtc_free(fb_helper); > @@ -1344,7 +1342,7 @@ int drm_fb_helper_pan_display(struct fb_var_screeninfo *var, > return -EBUSY; > } > > - if (fb_helper->atomic) { > + if (dev->mode_config.funcs->atomic_commit) { > ret = pan_display_atomic(var, info); > goto unlock; > } > diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c > index ef8e67690f3d..4c725ad6fb54 100644 > --- a/drivers/gpu/drm/i915/intel_fbdev.c > +++ b/drivers/gpu/drm/i915/intel_fbdev.c > @@ -724,8 +724,6 @@ int intel_fbdev_init(struct drm_device *dev) > return ret; > } > > - ifbdev->helper.atomic = true; > - > dev_priv->fbdev = ifbdev; > INIT_WORK(&dev_priv->fbdev_suspend_work, intel_fbdev_suspend_worker); > > diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h > index 5b4aa35026a3..db8d4780eaa2 100644 > --- a/include/drm/drm_fb_helper.h > +++ b/include/drm/drm_fb_helper.h > @@ -212,17 +212,6 @@ struct drm_fb_helper { > * needs to be reprobe when fbdev is in control again. > */ > bool delayed_hotplug; > - > - /** > - * @atomic: > - * > - * Use atomic updates for restore_fbdev_mode(), etc. This defaults to > - * true if driver has DRIVER_ATOMIC feature flag, but drivers can > - * override it to true after drm_fb_helper_init() if they support atomic > - * modeset but do not yet advertise DRIVER_ATOMIC (note that fb-helper > - * does not require ASYNC commits). > - */ > - bool atomic; > }; > > #ifdef CONFIG_DRM_FBDEV_EMULATION -- Boris Brezillon, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel