2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-16 09:34:22 +08:00
linux-next/drivers/gpu/drm/i915
Chris Wilson 5ab57c7020 drm/i915: Flush logical context image out to memory upon suspend
Before suspend, and especially before building the hibernation image, we
need to context image to be coherent in memory. To do this we require
that we perform a context switch to a disposable context (i.e. the
dev_priv->kernel_context) - when that switch is complete, all other
context images will be complete. This leaves the kernel_context image as
incomplete, but fortunately that is disposable and we can do a quick
fixup of the logical state after resuming.

v2: Share the nearly identical code to switch to the kernel context with
eviction.
v3: Explain why we need the switch and reset.

Testcase: igt/gem_exec_suspend # bsw
References: https://bugs.freedesktop.org/show_bug.cgi?id=96526
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1468590980-6186-2-git-send-email-chris@chris-wilson.co.uk
2016-07-15 20:41:05 +01:00
..
gvt drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
dvo.h
i915_cmd_parser.c drm/i915: Fix a buch of kerneldoc warnings 2016-06-06 13:04:26 +01:00
i915_debugfs.c drm/i915: Remove superfluous powersave work flushing 2016-07-14 15:23:16 +01:00
i915_drv.c drm/i915: Flush logical context image out to memory upon suspend 2016-07-15 20:41:05 +01:00
i915_drv.h drm/i915: Flush logical context image out to memory upon suspend 2016-07-15 20:41:05 +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/evict: Always switch away from the current context 2016-07-15 20:40:53 +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/evict: Always switch away from the current context 2016-07-15 20:40:53 +01:00
i915_gem_execbuffer.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
i915_gem_fence.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
i915_gem_gtt.c drm/i915: Fill unused GGTT with scratch pages for VT-d 2016-07-08 13:36:27 +01:00
i915_gem_gtt.h drm/i915: tweak gen6_for_{each_pde, all_pdes} macros 2016-06-27 13:13:53 +01:00
i915_gem_render_state.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +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: Update ifdeffery for mutex->owner 2016-07-12 11:54:27 +01:00
i915_gem_stolen.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
i915_gem_tiling.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
i915_gem_userptr.c drm/i915: Introduce & use new lightweight SGL iterators 2016-05-20 13:43:00 +01:00
i915_gem.c drm/i915: Flush logical context image out to memory upon suspend 2016-07-15 20:41:05 +01:00
i915_gem.h drm/i915: Add GEM debugging Kconfig option 2016-04-14 10:45:40 +01:00
i915_gpu_error.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +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: avoid wait_for_atomic() in non-atomic host2guc_action() 2016-07-06 16:24:46 +01:00
i915_ioc32.c
i915_irq.c drm/i915: Define a separate variable and control for RPS waitboost frequency 2016-07-14 15:22:58 +01:00
i915_params.c drm/i915: Set the access right of kernel param "i915.enable_gvt" to read-only. 2016-06-21 11:45:27 +01:00
i915_params.h drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
i915_pci.c drm/i915/bxt: Remove the preliminary_hw_support flag 2016-07-01 21:25:54 +03: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/bxt: Fix sanity check for BIOS RC6 setup 2016-07-01 14:57:20 +03:00
i915_suspend.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
i915_sysfs.c drm/i915: Remove superfluous powersave work flushing 2016-07-14 15:23:16 +01:00
i915_trace_points.c
i915_trace.h drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
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_plane.c drm/i915: Revert async unpin and nonblocking atomic commit 2016-06-01 09:46:46 +02:00
intel_atomic.c drm: Consolidate plane arrays in drm_atomic_state 2016-06-02 17:20:25 +02:00
intel_audio.c drm/i915: Replace some open coded intel_crtc_has_dp_encoder()s 2016-07-07 13:10:12 +03:00
intel_bios.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
intel_bios.h drm/i915: Parse LFP brightness control field in VBT 2016-05-02 16:17:38 +03:00
intel_breadcrumbs.c drm/i915/breadcrumbs: Queue hangcheck before sleeping 2016-07-11 13:48:22 +01:00
intel_color.c drm/i915: Kill has_dsi_encoder 2016-07-07 13:10:20 +03:00
intel_crt.c drm/i915/vlv: Disable HPD in valleyview_crt_detect_hotplug() 2016-07-14 22:06:11 +02:00
intel_csr.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
intel_ddi.c drm/i915: s/INTEL_OUTPUT_DISPLAYPORT/INTEL_OUTPUT_DP/ 2016-07-07 13:10:16 +03:00
intel_device_info.c drm/i915: Split out runtime configuration of device info to its own file 2016-07-05 11:53:27 +01:00
intel_display.c drm/i915: add missing condition for committing planes on crtc 2016-07-14 22:15:06 +02: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: Kill has_dp_encoder from pipe_config 2016-07-07 13:10:07 +03:00
intel_dp.c drm/i915: s/INTEL_OUTPUT_DISPLAYPORT/INTEL_OUTPUT_DP/ 2016-07-07 13:10:16 +03:00
intel_dpio_phy.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_dpll_mgr.c drm/i915: s/INTEL_OUTPUT_DISPLAYPORT/INTEL_OUTPUT_DP/ 2016-07-07 13:10: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: Enable polling when we don't have hpd 2016-07-14 22:06:11 +02:00
intel_dsi_dcs_backlight.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_dsi_panel_vbt.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_dsi_pll.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_dsi.c drm/i915: Kill has_dsi_encoder 2016-07-07 13:10:20 +03:00
intel_dsi.h drm/i915/dsi: CABC support for Panel PWM backlight control 2016-05-17 16:12:39 +03:00
intel_dvo.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_engine_cs.c drm/i915: Pull out some more common engine init code 2016-07-14 11:17:24 +01:00
intel_fbc.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
intel_fbdev.c drm/i915/fbdev: Check for the framebuffer before use 2016-07-14 21:32:27 +01:00
intel_fifo_underrun.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
intel_frontbuffer.c
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: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
intel_guc.h drm/i915/guc: index host arrays by i915 engine ID, not guc_id 2016-06-21 11:24:25 +01:00
intel_gvt.c drm/i915/gvt: Mark i915.enable_gvt as false if loading fails 2016-06-21 12:40:13 +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 drm/i915: Simplify hdmi_12bpc_possible() 2016-07-07 13:10:24 +03:00
intel_hotplug.c drm/i915: Enable polling when we don't have hpd 2016-07-14 22:06:11 +02:00
intel_i2c.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
intel_lrc.c drm/i915: Pull out some more common engine init code 2016-07-14 11:17:24 +01:00
intel_lrc.h drm/i915: Move common engine setup into intel_engine_cs.c 2016-07-14 11:17:20 +01:00
intel_lvds.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01: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 drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_opregion.c drm/i915: Ignore panel type from OpRegion on SKL 2016-07-14 16:05:40 +03:00
intel_overlay.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
intel_panel.c drm/i915: Introduce Kabypoint PCH for Kabylake H/DT. 2016-07-07 10:01:37 -07:00
intel_pm.c drm/i915: Hide gen6_update_ring_freq() 2016-07-14 15:24:34 +01:00
intel_psr.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_renderstate.h
intel_ringbuffer.c drm/i915: Pull out some more common engine init code 2016-07-14 11:17:24 +01:00
intel_ringbuffer.h drm/i915: Pull out some more common engine init code 2016-07-14 11:17:24 +01:00
intel_runtime_pm.c drm/i915: Enable polling when we don't have hpd 2016-07-14 22:06:11 +02:00
intel_sdvo_regs.h
intel_sdvo.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
intel_sideband.c drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() 2016-06-30 15:42:33 +01:00
intel_sprite.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_tv.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_uncore.c drm/i915: Defer enabling rc6 til after we submit the first batch/context 2016-07-14 15:24:21 +01:00
intel_vbt_defs.h drm/i915: Extract physical display dimensions from VBT 2016-06-02 14:33:09 +03:00
Kconfig drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
Kconfig.debug drm/i915: Select DRM_VGEM for igt 2016-07-10 13:22:39 +01:00
Makefile drm/i915: Move common engine setup into intel_engine_cs.c 2016-07-14 11:17:20 +01:00