linux-stable/drivers/gpu/drm/i915
Chris Wilson 8fcd86baab drm/i915/guc: Restore preempt-context across S3/S4
Stolen memory is lost across S4 (hibernate) or S3-RST as it is a portion
of ordinary volatile RAM. As we allocate our rings from stolen, this may
include the rings used for our preempt context and their breadcrumb
instructions. In order to allow preemption following hibernation and
loss of stolen memory, we therefore need to repopulate the instructions
inside the lost ring upon resume. To handle both module load and resume,
we simply defer constructing the ring to first use.

Testcase: igt/drv_selftest/live_gem
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180919205432.18394-1-chris@chris-wilson.co.uk
2018-09-20 12:51:42 +01:00
..
gvt Merge tag 'gvt-next-2018-09-04' of https://github.com/intel/gvt-linux into drm-intel-next-queued 2018-09-06 16:51:50 +03:00
selftests drm/i915/selftests: Basic stress test for rapid context switching 2018-09-20 12:49:25 +01:00
dvo.h
dvo_ch7xxx.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_ch7017.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_ivch.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_ns2501.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_sil164.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_tfp410.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
i915_cmd_parser.c
i915_debugfs.c drm/i915: Missed interrupt simulation is no more, tell the world 2018-09-07 14:38:48 +01:00
i915_drv.c drm/i915/kbl+: Enable IPC only for symmetric memory configurations 2018-09-13 14:33:03 -07:00
i915_drv.h drm/i915/execlists: Use coherent writes into the context image 2018-09-14 14:23:34 +01:00
i915_gem.c drm/i915/execlists: Reset CSB pointers on canceling requests (wedging) 2018-09-14 15:21:58 +01:00
i915_gem.h drm/i915/execlists: Flush tasklet directly from reset-finish 2018-08-29 13:49:08 +01:00
i915_gem_batch_pool.c
i915_gem_batch_pool.h
i915_gem_clflush.c
i915_gem_clflush.h
i915_gem_context.c drm/i915: Nuke struct_mutex from context_setparam 2018-09-11 20:42:56 +01:00
i915_gem_context.h drm/i915: Nuke struct_mutex from context_setparam 2018-09-11 20:42:56 +01:00
i915_gem_dmabuf.c dma-buf: remove kmap_atomic interface 2018-06-20 15:59:34 +02:00
i915_gem_evict.c drm/i915: Provide a timeout to i915_gem_wait_for_idle() 2018-07-09 13:55:41 +01:00
i915_gem_execbuffer.c drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G 2018-09-12 15:34:49 +01:00
i915_gem_fence_reg.c
i915_gem_fence_reg.h
i915_gem_gtt.c drm/i915: Replace some PAGE_SHIFTs with I915_GTT_PAGE_SIZE 2018-09-18 17:05:08 +03:00
i915_gem_gtt.h drm/i915: Explicitly mark Global GTT address spaces 2018-09-01 10:25:38 +01:00
i915_gem_internal.c
i915_gem_object.c
i915_gem_object.h drm/i915: Mark up object tiling-and-stride getters as const 2018-07-26 12:31:02 +01:00
i915_gem_render_state.c drm/i915: Start returning an error from i915_vma_move_to_active() 2018-07-06 18:22:37 +01:00
i915_gem_render_state.h
i915_gem_shrinker.c drm/i915: Introduce i915_address_space.mutex 2018-07-11 13:56:16 +01:00
i915_gem_stolen.c drm/i915: use the ICL stolen memory 2018-07-10 16:29:56 -07:00
i915_gem_tiling.c
i915_gem_userptr.c drm/i915/userptr: Enable read-only support on gen8+ 2018-07-13 16:18:15 +01:00
i915_gemfs.c
i915_gemfs.h
i915_gpu_error.c drm/i915: Limit number of capture objects 2018-09-14 21:21:38 +01:00
i915_gpu_error.h drm/i915: Track vma activity per fence.context, not per engine 2018-07-06 18:22:43 +01:00
i915_ioc32.c
i915_irq.c drm/i915: Do a full device reset after being wedged 2018-09-03 12:02:01 +01:00
i915_memcpy.c
i915_mm.c
i915_oa_bdw.c
i915_oa_bdw.h
i915_oa_bxt.c
i915_oa_bxt.h
i915_oa_cflgt2.c
i915_oa_cflgt2.h
i915_oa_cflgt3.c
i915_oa_cflgt3.h
i915_oa_chv.c
i915_oa_chv.h
i915_oa_cnl.c
i915_oa_cnl.h
i915_oa_glk.c
i915_oa_glk.h
i915_oa_hsw.c
i915_oa_hsw.h
i915_oa_icl.c
i915_oa_icl.h
i915_oa_kblgt2.c
i915_oa_kblgt2.h
i915_oa_kblgt3.c
i915_oa_kblgt3.h
i915_oa_sklgt2.c
i915_oa_sklgt2.h
i915_oa_sklgt3.c
i915_oa_sklgt3.h
i915_oa_sklgt4.c
i915_oa_sklgt4.h
i915_params.c drm/i915: Remove intel_panel_detect() 2018-07-19 18:39:31 +03:00
i915_params.h drm/i915: Remove intel_panel_detect() 2018-07-19 18:39:31 +03:00
i915_pci.c drm/i915: Do not redefine the has_csr parameter. 2018-08-17 13:54:33 -07:00
i915_perf.c drm/i915/execlists: Use coherent writes into the context image 2018-09-14 14:23:34 +01:00
i915_pmu.c drm/i915/pmu: Do not assume fixed hrtimer period 2018-06-05 16:45:01 +01:00
i915_pmu.h drm/i915/pmu: Do not assume fixed hrtimer period 2018-06-05 16:45:01 +01:00
i915_pvinfo.h - Ice Lake's display enabling patches (Jose, Mahesh, Dhinakaran, Paulo, Manasi, Anusha, Arkadiusz) 2018-06-07 10:24:50 +08:00
i915_query.c drm/i915/query: nospec expects no more than an unsigned long 2018-05-29 13:53:07 +03:00
i915_query.h
i915_reg.h drm/i915/skl+: Decode memory bandwidth and parameters 2018-09-13 14:33:03 -07:00
i915_request.c drm/i915: Limit the backpressure for i915_request allocation 2018-09-14 11:54:59 +01:00
i915_request.h drm/i915: Limit the backpressure for i915_request allocation 2018-09-14 11:54:59 +01:00
i915_scheduler.h drm/i915: Pack params to engine->schedule() into a struct 2018-04-18 21:09:11 +01:00
i915_selftest.h drm/i915/selftests: Downgrade igt_timeout message 2018-07-16 11:23:45 +01:00
i915_suspend.c
i915_sw_fence.c drm/i915: Include fence-hint for timeout warning 2018-09-14 14:28:32 +01:00
i915_sw_fence.h
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c
i915_timeline.c drm/i915: Split i915_gem_timeline into individual timelines 2018-05-02 23:57:18 +01:00
i915_timeline.h drm/i915: Replace nested subclassing with explicit subclasses 2018-07-07 08:09:43 +01:00
i915_trace.h drm/i915/ringbuffer: Fix context restore upon reset 2018-06-11 14:03:47 +01:00
i915_trace_points.c
i915_utils.h drm/i915: Retire requests along rings 2018-04-30 16:01:18 +01:00
i915_vgpu.c drm/i915/gtt: Rename i915_hw_ppgtt base member 2018-06-05 21:11:20 +01:00
i915_vgpu.h drm/i915: Add new vGPU cap info bit VGT_CAPS_HUGE_GTT 2018-06-05 16:57:01 +03:00
i915_vma.c drm/i915: Stop holding a ref to the ppgtt from each vma 2018-08-16 13:31:37 +01:00
i915_vma.h drm/i915: Fix gtt_view asserts 2018-08-28 18:49:33 +03:00
icl_dsi.c drm/i915/icl: Power down unused DSI lanes 2018-07-06 12:14:16 +03:00
intel_acpi.c drm/i915/dsm: remove unnecessary dsm priv structure 2018-06-14 15:59:09 +03:00
intel_atomic.c Chris is doing many reworks that allow us to get full-ppgtt supported 2018-06-28 13:10:44 +10:00
intel_atomic_plane.c drm/i915: Move chv rotation checks to plane->check() 2018-09-12 18:03:57 +03:00
intel_audio.c drm/i915/audio: Hook up component bindings even if displays are disabled 2018-08-20 14:30:43 +01:00
intel_bios.c drm/i915/psr: fix copy-paste error with setting of tp2_wakeup_time_us 2018-06-20 12:00:31 -07:00
intel_bios.h
intel_breadcrumbs.c drm/i915: Pull seqno started checks together 2018-08-07 12:43:00 +01:00
intel_cdclk.c drm/i915: Mark expected switch fall-throughs 2018-07-05 16:40:51 +03:00
intel_color.c
intel_crt.c drm/i915: Enforce max hdisplay/hblank_start limits on HSW/BDW FDI 2018-06-19 17:18:24 +03:00
intel_csr.c firmware/dmc/icl: load v1.07 on icelake. 2018-09-13 14:19:20 -07:00
intel_ddi.c drm/i915/psr: Enable AUX-A IO power well on ICL for PSR 2018-09-18 15:04:59 -07:00
intel_device_info.c drm/i915: Record logical context support in driver caps 2018-07-06 14:05:23 +01:00
intel_device_info.h drm/i915: kill resource streamer support 2018-08-06 17:19:51 +01:00
intel_display.c drm/i915: Mark up a couple of KMS debug messages as such 2018-09-14 09:12:08 +01:00
intel_display.h drm/i915: Add a small wrapper to check for CCS modifiers. 2018-08-22 15:39:42 -07:00
intel_dp.c drm/i915: introduce dp_to_i915() helper 2018-08-28 06:58:16 -07:00
intel_dp_aux_backlight.c drm/i915/backlight: switch to kernel unsigned int types 2018-06-18 14:46:04 +03:00
intel_dp_link_training.c drm/i915/dp: Improve clock recovery loop limit comment 2018-07-25 09:57:25 -07:00
intel_dp_mst.c drm/i915/dp_mst: Fix enabling pipe clock for all streams 2018-09-01 09:13:01 +03:00
intel_dpio_phy.c drm/i915/gen9_lp: Increase DDI PHY0 power well enabling timeout 2018-04-10 13:12:22 +03:00
intel_dpll_mgr.c drm/i915: Fix ICL+ HDMI clock readout 2018-09-04 16:15:49 +03:00
intel_dpll_mgr.h drm/i915: Fix ICL+ HDMI clock readout 2018-09-04 16:15:49 +03:00
intel_drv.h drm/i915: Move chv rotation checks to plane->check() 2018-09-12 18:03:57 +03:00
intel_dsi.h drm/i915/dsi: use vlv and bxt prefixes for the global DSI functions 2018-07-06 10:54:05 +03:00
intel_dsi_dcs_backlight.c
intel_dsi_vbt.c drm/i915/dsi: use vlv and bxt prefixes for the global DSI functions 2018-07-06 10:54:05 +03:00
intel_dvo.c drm/i915: Allow DBLSCAN user modes with eDP/LVDS/DSI 2018-06-19 15:47:49 +03:00
intel_engine_cs.c drm/i915: Flush the tasklet when checking for idle 2018-09-14 11:55:00 +01:00
intel_fbc.c drm/i915: Rename the plane_state->main/aux to plane_state->color_plane[] 2018-09-12 17:50:31 +03:00
intel_fbdev.c drm/i915: Store ggtt_view in plane_state 2018-09-12 17:54:21 +03:00
intel_fifo_underrun.c
intel_frontbuffer.c drm/i915/psr: Nuke PSR support for VLV and CHV 2018-05-24 16:05:19 +03:00
intel_frontbuffer.h
intel_gpu_commands.h
intel_guc.c drm/i915/guc: Move the pin bias value from GuC to GGTT 2018-07-27 16:03:41 +01:00
intel_guc.h drm/i915/guc: Move the pin bias value from GuC to GGTT 2018-07-27 16:03:41 +01:00
intel_guc_ads.c drm/i915: Pull unpin map into vma release 2018-07-24 09:55:12 +01:00
intel_guc_ads.h
intel_guc_ct.c drm/i915: Pull unpin map into vma release 2018-07-24 09:55:12 +01:00
intel_guc_ct.h
intel_guc_fw.c
intel_guc_fw.h
intel_guc_fwif.h drm/i915/selftests: ring all doorbells in igt_guc_doorbells 2018-08-28 13:41:27 +01:00
intel_guc_log.c drm/i915: Pull unpin map into vma release 2018-07-24 09:55:12 +01:00
intel_guc_log.h drm/i915/guc: Add support for define guc_log_size in megabytes. 2018-06-12 15:44:47 +01:00
intel_guc_reg.h
intel_guc_submission.c drm/i915/guc: Restore preempt-context across S3/S4 2018-09-20 12:51:42 +01:00
intel_guc_submission.h drm/i915/selftests: ring all doorbells in igt_guc_doorbells 2018-08-28 13:41:27 +01:00
intel_gvt.c drm/i915: Unwind HW init after GVT setup failure 2018-07-10 16:46:09 +01:00
intel_gvt.h
intel_hangcheck.c drm/i915: Pull seqno started checks together 2018-08-07 12:43:00 +01:00
intel_hdcp.c drm/i915: Constify power well descriptors 2018-08-08 13:49:43 +03:00
intel_hdmi.c drm/i915/icl: implement the tc/legacy HPD {dis,}connect flows 2018-08-24 12:26:42 -07:00
intel_hotplug.c drm/i915: Pass hpd_pin to long_pulse_detect() 2018-07-13 18:22:22 +03:00
intel_huc.c drm/i915/guc: Move the pin bias value from GuC to GGTT 2018-07-27 16:03:41 +01:00
intel_huc.h drm/i915/uc: Fetch GuC/HuC firmwares from guc/huc specific init 2018-06-28 22:51:33 +01:00
intel_huc_fw.c
intel_huc_fw.h
intel_i2c.c drm/i915: remove confusing GPIO vs PCH_GPIO 2018-08-16 11:52:08 -07:00
intel_lpe_audio.c drm/i915/lpe: Mark LPE audio runtime pm as "no callbacks" 2018-08-03 10:35:13 +01:00
intel_lrc.c drm/i915/execlists: Use coherent writes into the context image 2018-09-14 14:23:34 +01:00
intel_lrc.h drm/i915: Remove superfluous GEN8_LR_CONTEXT_ALIGN 2018-07-27 11:30:42 +01:00
intel_lrc_reg.h drm/i915/execlists: Terminate the context image with BB_END 2018-08-01 17:03:31 +01:00
intel_lspcon.c drm/i915: Increase LSPCON timeout 2018-08-20 14:19:43 +03:00
intel_lvds.c On GEM side: 2018-07-20 12:29:24 +10:00
intel_mocs.c drm/i915: Remove useless error return from intel_init_mocs_engine() 2018-08-15 23:25:43 +01:00
intel_mocs.h drm/i915: Remove useless error return from intel_init_mocs_engine() 2018-08-15 23:25:43 +01:00
intel_modes.c drm: drop _mode_ from update_edit_property() 2018-07-13 18:40:27 +02:00
intel_opregion.c drm/i915/opregion: move acpi notifier to dev_priv 2018-06-14 13:48:10 +03:00
intel_opregion.h drm/i915/opregion: move acpi notifier to dev_priv 2018-06-14 13:48:10 +03:00
intel_overlay.c drm/i915/overlay: Use the ioctl parameters directly 2018-09-11 15:51:27 +01:00
intel_panel.c drm/i915: Remove intel_panel_detect() 2018-07-19 18:39:31 +03:00
intel_pipe_crc.c drm/i915: Remove support for legacy debugfs crc interface 2018-07-06 14:33:35 +02:00
intel_pm.c drm/i915/kbl+: Enable IPC only for symmetric memory configurations 2018-09-13 14:33:03 -07:00
intel_psr.c drm/i915: Be defensive and don't assume PSR has any commit to sync against 2018-09-04 21:21:50 +01: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/ringbuffer: Reload PDs harder on byt/bcs 2018-09-12 11:02:08 +01:00
intel_ringbuffer.h drm/i915: Clear stop-engine for a pardoned reset 2018-08-15 10:15:28 +01:00
intel_runtime_pm.c drm/i915/psr: Enable AUX-A IO power well on ICL for PSR 2018-09-18 15:04:59 -07:00
intel_sdvo.c drm/i915/sdvo: Fix multi function encoder stuff 2018-09-18 21:05:06 +03:00
intel_sdvo_regs.h
intel_sideband.c
intel_sprite.c drm/i915: Fix logic fumble in rotation vs. ccs check 2018-09-18 18:12:12 +03:00
intel_tv.c drm/i915/tv: fix strncpy truncation warning 2018-07-12 10:18:19 +01:00
intel_uc.c drm/i915/guc: Update GuC power domain states 2018-09-10 20:31:55 +01:00
intel_uc.h
intel_uc_fw.c drm/i915/guc: Move the pin bias value from GuC to GGTT 2018-07-27 16:03:41 +01:00
intel_uc_fw.h drm/i915/firmware: Correct URL for firmware 2018-05-02 13:40:17 -07:00
intel_uncore.c drm/i915: Pull intel_uncore_arm_unclaimed_mmio_detection() under the spinlock 2018-09-04 16:01:14 +01:00
intel_uncore.h drm/i915: Restore user forcewake domains across suspend 2018-08-09 14:25:46 +01:00
intel_vbt_defs.h drm/i915/vbt: switch to kernel unsigned int types 2018-06-18 14:44:52 +03:00
intel_wopcm.c drm/i915: Add a fault injection point to WOPCM init 2018-07-27 16:07:45 +01:00
intel_wopcm.h
intel_workarounds.c Revert "drm/i915/icl: WaEnableFloatBlendOptimization" 2018-08-01 17:17:27 +03:00
intel_workarounds.h drm/i915: Check whitelist registers across resets 2018-04-14 18:36:45 +01:00
Kconfig
Kconfig.debug drm/i915: Verify power domains after enabling them 2018-08-20 12:13:09 +03:00
Makefile drm/i915/icl: Program DSI Escape clock Divider 2018-07-06 12:13:34 +03:00
vlv_dsi.c drm/i915/dsi: update some of the platform based checks 2018-07-06 10:54:10 +03:00
vlv_dsi_pll.c drm/i915/dsi: use vlv and bxt prefixes for the global DSI functions 2018-07-06 10:54:05 +03:00