drm/i915/fbdev: Flush mode configuration before lastclose
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 21 Jun 2016 08:16:55 +0000 (09:16 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 21 Jun 2016 08:36:56 +0000 (09:36 +0100)
commite77018f7618960f7ec0e73e63868514ff16f8ddc
tree84723f857c24923cddaa7a64db77168b7585c858
parent43cee314345ac9e34e744f8c335150a17ff9a6fb
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: Gustav Fägerlind <gustav.fagerlind@gmail.com>
Reported-by: "Li, Weinan Z" <weinan.z.li@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93580
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1466497015-8509-3-git-send-email-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/intel_fbdev.c