linux/drivers/gpu/drm/i915
Chris Wilson e7ae86bab9 drm/i915: Unify GPU resets upon shutdown
Both execlists and legacy need to reset the context (and mode) of the
GPU before we lose control of the system. By resetting the GPU, we
revert back to default settings. This simplifies the life of any
subsequent driver (in particular for virtualized setups) as it does not
then have to try and recover from an unknown condition. As both paths
need to reset for the same reason, move the reset to a common point.

This unifies the resets added in a647828afc (drm/i915: Also perform gpu
reset under execlist mode) and 8e96d9c4d9 (drm/i915: reset the GPU on
context fini).

v2: Restrict the reset to "modern" gen (where we enable HW contexts) to
try and avoid leaving the machine in an unusable state with a risky
reset on older GPU. This should keep the status quo as to who performs
resets (i.e. currently only GPUs with HW contexts perform a reset on
shutdown).

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
CC: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: "Niu, Bing" <bing.niu@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1461833819-3991-25-git-send-email-chris@chris-wilson.co.uk
2016-04-28 12:17:32 +01:00
..
dvo_ch7xxx.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_ch7017.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_ivch.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_ns2501.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_sil164.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_tfp410.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo.h drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
i915_cmd_parser.c drm/i915: Bump command parser version for new whitelisted registers 2016-03-21 10:03:26 +01:00
i915_debugfs.c drm/i915: Refactor execlists default context pinning 2016-04-28 12:17:32 +01:00
i915_dma.c drm/i915: Unify GPU resets upon shutdown 2016-04-28 12:17:32 +01:00
i915_drv.c drm/i915/bxt: Enable DC5 during runtime resume 2016-04-22 15:12:05 +03:00
i915_drv.h drm/i915: Store LRC hardware id in the request 2016-04-28 12:17:32 +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: Unify GPU resets upon shutdown 2016-04-28 12:17:32 +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_evict.c drm/i915: Rename vma->*_list to *_link for consistency 2016-02-26 13:15:39 +00:00
i915_gem_execbuffer.c drm/i915: Move the magical deferred context allocation into the request 2016-04-28 12:17:32 +01:00
i915_gem_fence.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2016-03-17 21:38:27 -07:00
i915_gem_gtt.c drm/i915: Rearrange switch_context to load the aliasing ppgtt on first use 2016-04-28 12:17:32 +01:00
i915_gem_gtt.h drm/i915: Rearrange switch_context to load the aliasing ppgtt on first use 2016-04-28 12:17:32 +01:00
i915_gem_render_state.c drm/i915: Propagate error from drm_gem_object_init() 2016-04-28 12:28:58 +03: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: Move ioremap_wc tracking onto VMA 2016-04-28 12:17:32 +01:00
i915_gem_stolen.c drm/i915: Canonicalize stolen memory calculations 2016-04-25 13:30:32 +03:00
i915_gem_tiling.c drm/i915: get runtime PM reference around GEM set_tiling IOCTL 2015-11-17 18:43:30 +02:00
i915_gem_userptr.c drm/i915: Prevent leaking of -EIO from i915_wait_request() 2016-04-14 10:45:40 +01:00
i915_gem.c drm/i915: Unify GPU resets upon shutdown 2016-04-28 12:17:32 +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: Separate out the seqno-barrier from engine->get_seqno 2016-04-09 12:09:05 +01:00
i915_guc_reg.h drm/i915/guc: always reset GuC before loading firmware 2016-04-05 13:29:24 +01:00
i915_guc_submission.c drm/i915: Propagate error from drm_gem_object_init() 2016-04-28 12:28:58 +03:00
i915_ioc32.c
i915_irq.c drm/i915/gen8+: Do not enable DPF interrupt since the handler does not exist 2016-04-20 09:59:16 +01:00
i915_params.c drm/i915: Add Backlight Control using DPCD for eDP connectors (v9) 2016-04-26 15:17:54 +03:00
i915_params.h drm/i915: Add Backlight Control using DPCD for eDP connectors (v9) 2016-04-26 15:17:54 +03:00
i915_reg.h drm/i915: Update RAWCLK_FREQ register on VLV/CHV 2016-04-27 20:38:57 +03:00
i915_suspend.c drm/i915/bxt: Don't save/restore eDP panel power during suspend (v3) 2016-02-08 11:32:32 +02:00
i915_sysfs.c drm/i915: Hold RPM reference while setting freq limits through sysfs 2016-03-02 18:50:47 +02:00
i915_trace_points.c
i915_trace.h drm/i915: Separate out the seqno-barrier from engine->get_seqno 2016-04-09 12:09:05 +01:00
i915_vgpu.c drm/i915: Refer to GGTT {,VM} consistently 2016-03-31 17:55:43 +03:00
i915_vgpu.h drm/i915: Type safe register read/write 2015-11-18 15:39:11 +02:00
intel_acpi.c drm/i915: Drop unnecessary #include <linux/vga_switcheroo.h> 2015-10-13 10:18:38 +02:00
intel_atomic_plane.c drm/i915: Pass the correct crtc state to .update_plane() 2016-03-10 13:49:31 +02:00
intel_atomic.c drm/i915: Remove some post-commit members from intel_crtc->atomic, v3. 2016-03-16 14:50:25 +01:00
intel_audio.c drm/i915: Do not use {HAS_*, IS_*, INTEL_INFO}(dev_priv->dev) 2016-04-07 14:50:26 +03:00
intel_bios.c drm/i915: Parsing the PWM cntrl and CABC ON/OFF fields in VBT 2016-04-26 15:49:27 +03:00
intel_bios.h drm/i915: Parsing the PWM cntrl and CABC ON/OFF fields in VBT 2016-04-26 15:49:27 +03:00
intel_color.c drm/i915: Do not check crtc_state->active in intel_color_load_luts. 2016-03-31 12:46:07 +02:00
intel_crt.c drm/i915: Move HSW/BDW pll selection logic to intel_dpll_mgr.c 2016-03-09 11:55:31 +02:00
intel_csr.c drm/i915/gen9: Fix runtime PM refcounting in case DMC firmware isn't loaded 2016-04-19 12:33:48 +03:00
intel_ddi.c drm/i915/bxt: Force reprogramming a PHY with invalid HW state 2016-04-22 16:32:59 +03:00
intel_display.c drm/i915: Move releasing of the GEM request from free to retire/cancel 2016-04-28 12:17:32 +01: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/dp: reduce missing TPS3 support errors to debug logging 2016-02-08 11:37:17 +02:00
intel_dp_mst.c drm/i915: Fix race condition in intel_dp_destroy_mst_connector() 2016-03-17 09:12:28 +01:00
intel_dp.c drm/i915: Read eDP Display control capability registers 2016-04-26 15:04:06 +03:00
intel_dpll_mgr.c drm/i915/bxt: PORT_PLL_REF_SEL bit should be set for all BXT variations 2016-04-15 16:10:59 +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: Call intel_unpin_fb_obj() on release 2016-04-28 12:17:32 +01: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_dsi.c drm/i915: Unify VLV/CHV DPOunit clock gating disable/enable 2016-04-27 20:31:55 +03:00
intel_dsi.h drm/i915: Compute DSI PLL parameters during .compute_config() 2016-04-15 16:25:27 +03:00
intel_dvo.c drm: Pass 'name' to drm_encoder_init() 2015-12-11 09:13:20 +01:00
intel_fbc.c drm/i915: Refer to GGTT {,VM} consistently 2016-03-31 17:55:43 +03:00
intel_fbdev.c drm/i915: Move ioremap_wc tracking onto VMA 2016-04-28 12:17:32 +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_fwif.h drm/i915/guc: Decouple GuC engine id from ring id 2016-01-25 10:56:30 +00:00
intel_guc_loader.c drm/i915/guc: always reset GuC before loading firmware 2016-04-05 13:29:24 +01:00
intel_guc.h drm/i915/guc: local optimisations and updating comments 2016-04-20 14:46:14 +01:00
intel_hdmi.c drm/i915: Fake HDMI live status 2016-04-22 20:24:48 +03:00
intel_hotplug.c drm/i915: intel_hpd_init(): Fix suspend/resume reprobing 2016-01-13 10:49:42 +02: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: Stop tracking execlists retired requests 2016-04-28 12:17:32 +01:00
intel_lrc.h drm/i915: Stop tracking execlists retired requests 2016-04-28 12:17:32 +01:00
intel_lvds.c drm/i915: fix deadlock on lid open 2016-03-30 12:17:13 +02:00
intel_mocs.c drm/i915: Unify intel_ring_begin() 2016-04-28 12:17:32 +01: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: Clean up PCI config register handling 2016-04-19 17:57:33 +03:00
intel_overlay.c io-mapping: Specify mapping size for io_mapping_map_wc() 2016-04-28 12:17:32 +01:00
intel_panel.c drm/i915: Add Backlight Control using DPCD for eDP connectors (v9) 2016-04-26 15:17:54 +03:00
intel_pm.c drm/i915: Move releasing of the GEM request from free to retire/cancel 2016-04-28 12:17:32 +01:00
intel_psr.c drm/i915: Do not use {HAS_*, IS_*, INTEL_INFO}(dev_priv->dev) 2016-04-07 14:50:26 +03: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: Preallocate enough space for the average request 2016-04-28 12:17:32 +01:00
intel_ringbuffer.h drm/i915: Stop tracking execlists retired requests 2016-04-28 12:17:32 +01:00
intel_runtime_pm.c drm/i915: Update RAWCLK_FREQ register on VLV/CHV 2016-04-27 20:38:57 +03:00
intel_sdvo_regs.h drm/i915/sdvo: revert bogus kernel-doc comments to normal comments 2016-01-20 10:21:34 +02:00
intel_sdvo.c drm/i915: move sdvo mappings to vbt data 2016-03-29 15:12:30 +03:00
intel_sideband.c drm/i915: Extend gpio read/write to other cores 2016-02-04 19:11:17 +02:00
intel_sprite.c drm/i915: Fix plane init failure paths 2016-04-01 23:24:21 +03:00
intel_tv.c drm/i915: move VBT based TV presence check to intel_bios.c 2016-03-16 18:28:07 +02:00
intel_uncore.c drm/i915: Use fw_domains_put_with_fifo() on HSW 2016-04-14 15:02:16 +03:00
intel_vbt_defs.h drm/i915: Update VBT fields for child devices 2016-04-06 14:10:15 +03:00
Kconfig drm/i915: Kconfig for extra driver debugging 2016-03-03 17:26:57 +00:00
Kconfig.debug drm/i915: Add GEM debugging Kconfig option 2016-04-14 10:45:40 +01:00
Makefile drm/i915: Add Backlight Control using DPCD for eDP connectors (v9) 2016-04-26 15:17:54 +03:00