drm: Replace fb_helper->atomic with mode_config->atomic_commit
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@linux.intel.com> Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1465388359-8070-23-git-send-email-daniel.vetter@ffwll.ch
This commit is contained in:
parent
c39032a892
commit
d3a46183db
3 changed files with 2 additions and 17 deletions
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue