On Thu, Mar 31, 2016 at 07:05:21PM +0300, Joonas Lahtinen wrote: > On to, 2016-03-31 at 14:57 +0100, Chris Wilson wrote: > > void intel_fbdev_restore_mode(struct drm_device *dev) > > { > > - int ret; > > - struct drm_i915_private *dev_priv = dev->dev_private; > > - struct intel_fbdev *ifbdev = dev_priv->fbdev; > > - struct drm_fb_helper *fb_helper; > > + struct intel_fbdev *ifbdev = intel_fbdev_get_if_active(dev); > > > > - async_synchronize_full(); > > What's with the async_synchronize_full() begin removed completely? Because it's not just wrong, but completely broken imo. During suspend, we want to freeze the async task not flush. Then here and during resume we skip the restoration of the unregistered fbdev, and then when the task is woken it can complete the registration and present the vanilla ifbdev. During hibernation, we really just want to cancel the task and start from scratch on resume. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx