Commit e77018f7 authored by Chris Wilson's avatar Chris Wilson

drm/i915/fbdev: Flush mode configuration before lastclose

During lastclose, we call intel_fbdev_restore_mode() to switch back to
the fbcon configuration on return to VT. However, if we have not yet
finished the asynchronous fbdev initialisation, the current mode will be
invalid and trigger WARNs upon application.

Serialise with the outstanding initialisation if the first application
exits quickly. Note that to hit this in practice requires using an
unregistered async_domain as otherwise modprobe will force a full
synchronisation prior to init() completing.

v2: Reuse comment explaining the +1 by refactoring the wait on fbdev
sync in the previous patch.
Reported-by: default avatarGustav Fägerlind <gustav.fagerlind@gmail.com>
Reported-by: default avatar"Li, Weinan Z" <weinan.z.li@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93580Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1466497015-8509-3-git-send-email-chris@chris-wilson.co.uk
parent 43cee314
...@@ -840,6 +840,8 @@ void intel_fbdev_restore_mode(struct drm_device *dev) ...@@ -840,6 +840,8 @@ void intel_fbdev_restore_mode(struct drm_device *dev)
if (!ifbdev) if (!ifbdev)
return; return;
intel_fbdev_sync(ifbdev);
fb_helper = &ifbdev->helper; fb_helper = &ifbdev->helper;
ret = drm_fb_helper_restore_fbdev_mode_unlocked(fb_helper); ret = drm_fb_helper_restore_fbdev_mode_unlocked(fb_helper);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment