WSL2-Linux-Kernel/drivers/gpu/drm/i915
Chris Wilson e77018f761 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
2016-06-21 09:36:56 +01:00
..
gvt drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
Kconfig drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
Kconfig.debug drm/i915: Add GEM debugging Kconfig option 2016-04-14 10:45:40 +01:00
Makefile drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
dvo.h
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
i915_cmd_parser.c drm/i915: Fix a buch of kerneldoc warnings 2016-06-06 13:04:26 +01:00
i915_debugfs.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-06-16 14:18:30 +02:00
i915_dma.c drm/i915/fbdev: Perform async fbdev initialisation much later 2016-06-21 09:36:11 +01:00
i915_drv.c drm/i915/bxt: Add WaEnablePooledEuFor2x6 2016-06-14 10:42:35 +01:00
i915_drv.h drm/i915: use ORIGIN_CPU for frontbuffer invalidation on WC mmaps 2016-06-20 17:47:36 -03:00
i915_gem.c drm/i915: use ORIGIN_CPU for frontbuffer invalidation on WC mmaps 2016-06-20 17:47:36 -03:00
i915_gem.h drm/i915: Add GEM debugging Kconfig option 2016-04-14 10:45:40 +01:00
i915_gem_batch_pool.c drm/i915: Propagate error from drm_gem_object_init() 2016-04-28 12:28:58 +03:00
i915_gem_batch_pool.h
i915_gem_context.c drm/i915: Introduce GVT context creation API 2016-06-17 20:36:43 +01:00
i915_gem_debug.c drm/i915: replace for_each_engine() 2016-03-24 14:34:11 +00:00
i915_gem_dmabuf.c Linux 4.6-rc3 2016-04-11 19:25:13 +02:00
i915_gem_dmabuf.h drm/i915: Serialise presentation with imported dmabufs 2016-06-17 10:32:26 +01:00
i915_gem_evict.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_gem_execbuffer.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-06-02 09:54:12 +02:00
i915_gem_fence.c drm/i915: Introduce & use new lightweight SGL iterators 2016-05-20 13:43:00 +01:00
i915_gem_gtt.c drm/i915: Fold vGPU active check into inner functions 2016-06-17 19:44:29 +01:00
i915_gem_gtt.h drm/i915: Add support for mapping an object page by page 2016-06-13 10:03:54 +01:00
i915_gem_render_state.c drm/i915:bxt: Enable Pooled EU support 2016-06-14 10:42:35 +01:00
i915_gem_render_state.h drm/i915: Rename intel_engine_cs function parameters 2016-03-16 15:33:10 +00:00
i915_gem_shrinker.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_gem_stolen.c drm/i915/kbl: Add WaSkipStolenMemoryFirstPage for A0 2016-06-08 16:20:23 +03:00
i915_gem_tiling.c Merge branch 'drm-intel-next' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-02 07:58:36 +10:00
i915_gem_userptr.c drm/i915: Introduce & use new lightweight SGL iterators 2016-05-20 13:43:00 +01:00
i915_gpu_error.c drm/i915: Replace "INTEL_INFO->gen == x" checks with IS_GENx 2016-05-11 12:27:27 +01:00
i915_guc_reg.h drm/i915/bxt: reserve space for RC6 in the the GuC WOPCM 2016-05-18 12:49:19 +01:00
i915_guc_submission.c drm/i915/guc: (re)initialise doorbell h/w when enabling GuC submission 2016-06-14 15:04:08 +01:00
i915_ioc32.c
i915_irq.c drm/i915: Fix a buch of kerneldoc warnings 2016-06-06 13:04:26 +01:00
i915_params.c drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
i915_params.h drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
i915_pvinfo.h drm/i915: Use offsetof() to calculate the offset of members in PVINFO page 2016-06-17 19:44:25 +01:00
i915_reg.h drm/i915: Make addressing mode bits in context descriptor configurable 2016-06-17 20:35:26 +01:00
i915_suspend.c
i915_sysfs.c drm/i915: Rename struct intel_context 2016-05-24 15:27:14 +01:00
i915_trace.h drm/i915: Rename struct intel_context 2016-05-24 15:27:14 +01:00
i915_trace_points.c
i915_vgpu.c drm/i915: Fold vGPU active check into inner functions 2016-06-17 19:44:29 +01:00
i915_vgpu.h drm/i915: Fold vGPU active check into inner functions 2016-06-17 19:44:29 +01:00
intel_acpi.c
intel_atomic.c drm: Consolidate plane arrays in drm_atomic_state 2016-06-02 17:20:25 +02:00
intel_atomic_plane.c drm/i915: Revert async unpin and nonblocking atomic commit 2016-06-01 09:46:46 +02:00
intel_audio.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2016-05-23 11:48:48 -07:00
intel_bios.c drm/i915: Check VBT for port presence in addition to the strap on VLV/CHV 2016-06-07 18:45:43 +03:00
intel_bios.h drm/i915: Parse LFP brightness control field in VBT 2016-05-02 16:17:38 +03:00
intel_color.c drm: drm_helper_crtc_enable_color_mgmt() => drm_crtc_enable_color_mgmt() 2016-06-07 17:10:49 +03:00
intel_crt.c drm: i915: Rely on the default ->best_encoder() behavior where appropriate 2016-06-10 18:41:18 +02:00
intel_csr.c drm/i915/kbl: Introduce the first official DMC for Kabylake. 2016-05-05 16:49:01 -07:00
intel_ddi.c drm/i915/bxt: Sanitiy check the PHY lane power down status 2016-06-13 18:46:10 +03:00
intel_display.c drm/i915: Serialise presentation with imported dmabufs 2016-06-17 10:32:26 +01:00
intel_dp.c drm/i915: Revert DisplayPort fast link training feature 2016-06-20 12:37:07 +03:00
intel_dp_aux_backlight.c drm/i915: Add Backlight Control using DPCD for eDP connectors (v9) 2016-04-26 15:17:54 +03:00
intel_dp_link_training.c drm/i915: Revert DisplayPort fast link training feature 2016-06-20 12:37:07 +03:00
intel_dp_mst.c drm/i915: Give encoders useful names 2016-05-30 17:02:26 +03:00
intel_dpio_phy.c drm/i915: Move VLV HDMI lane reset work around logic to intel_dpio_phy.c 2016-04-29 09:59:00 +03:00
intel_dpll_mgr.c drm/i915: Use crtc->name in debug messages 2016-05-30 17:01:16 +03:00
intel_dpll_mgr.h drm/i915: Use a crtc mask instead of a refcount for dpll functions, v2. 2016-03-17 09:27:28 +01:00
intel_drv.h drm/i915/fbdev: Limit the global async-domain synchronization 2016-06-21 09:36:33 +01:00
intel_dsi.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-06-16 14:18:30 +02:00
intel_dsi.h drm/i915/dsi: CABC support for Panel PWM backlight control 2016-05-17 16:12:39 +03:00
intel_dsi_dcs_backlight.c drm/i915/dsi: CABC support for Panel PWM backlight control 2016-05-17 16:12:39 +03:00
intel_dsi_panel_vbt.c drm/i915/dsi: add support for gpio elements on CHV 2016-04-27 09:48:17 +03:00
intel_dsi_pll.c drm/i915: Eliminate {vlv,bxt}_configure_dsi_pll() 2016-04-15 16:25:27 +03:00
intel_dvo.c drm: i915: Rely on the default ->best_encoder() behavior where appropriate 2016-06-10 18:41:18 +02:00
intel_fbc.c drm/i915/fbc: sanitize i915.enable_fbc during FBC init 2016-06-20 17:47:30 -03:00
intel_fbdev.c drm/i915/fbdev: Flush mode configuration before lastclose 2016-06-21 09:36:56 +01:00
intel_fifo_underrun.c drm/i915: Do not use {HAS_*, IS_*, INTEL_INFO}(dev_priv->dev) 2016-04-07 14:50:26 +03:00
intel_frontbuffer.c
intel_guc.h drm/i915/guc: prefer 'dev_priv' to 'dev' for intra-module functions 2016-06-13 16:47:39 +01:00
intel_guc_fwif.h drm/i915/guc: rework guc_add_workqueue_item() 2016-05-23 14:21:53 +01:00
intel_guc_loader.c drm/i915/guc: prefer 'dev_priv' to 'dev' for intra-module functions 2016-06-13 16:47:39 +01:00
intel_gvt.c drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
intel_gvt.h drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
intel_hdmi.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-06-16 14:18:30 +02:00
intel_hotplug.c drm/i915: Small display interrupt handlers tidy 2016-05-09 13:38:16 +01:00
intel_i2c.c drm/i915: Make GMBUS timeout message DRM_DEBUG_KMS 2016-04-12 13:23:17 +03:00
intel_lrc.c drm/i915: Support LRC context single submission 2016-06-17 20:36:37 +01:00
intel_lrc.h drm/i915: Introduce execlist context status change notification 2016-06-17 20:36:19 +01:00
intel_lvds.c drm: i915: Rely on the default ->best_encoder() behavior where appropriate 2016-06-10 18:41:18 +02:00
intel_mocs.c drm/i915/mocs: || vs | typo in get_mocs_settings() 2016-06-13 17:38:01 +03:00
intel_mocs.h drm/i915/mocs: Program MOCS for all engines on init 2016-04-14 10:45:40 +01:00
intel_modes.c
intel_opregion.c drm/i915/opregion: Rename init/fini functions to register/unregister 2016-05-23 16:35:50 +01:00
intel_overlay.c Merge branch 'drm-intel-next' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-02 07:58:36 +10:00
intel_panel.c Merge branch 'drm-intel-next' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-02 07:58:36 +10:00
intel_pm.c drm/i915/gen9: Add WaFbcHighMemBwCorruptionAvoidance 2016-06-08 16:27:07 +03:00
intel_psr.c drm/i915/psr: Try to program link training times correctly 2016-05-23 15:10:25 +03:00
intel_renderstate.h
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_ringbuffer.c drm/i915/bxt: Add WaDisablePooledEuLoadBalancingFix 2016-06-14 10:44:07 +01:00
intel_ringbuffer.h drm/i915: Rename struct intel_context 2016-05-24 15:27:14 +01:00
intel_runtime_pm.c drm/i915/bxt: Rename broxton to bxt in PHY/CDCLK function prefixes 2016-06-13 18:46:09 +03:00
intel_sdvo.c drm: i915: Rely on the default ->best_encoder() behavior where appropriate 2016-06-10 18:41:18 +02:00
intel_sdvo_regs.h
intel_sideband.c
intel_sprite.c drm/i915: Signal drm events for atomic 2016-06-16 14:28:34 +02:00
intel_tv.c drm: i915: Rely on the default ->best_encoder() behavior where appropriate 2016-06-10 18:41:18 +02:00
intel_uncore.c drm/i915/guc: distinguish HAS_GUC() from HAS_GUC_UCODE/HAS_GUC_SCHED 2016-05-23 14:21:52 +01:00
intel_vbt_defs.h drm/i915: Extract physical display dimensions from VBT 2016-06-02 14:33:09 +03:00