mirror_ubuntu-kernels/drivers/gpu/drm/i915
Matthew Brost cad46a332f drm/i915/guc: Suspend/resume implementation for new interface
The new GuC interface introduces an MMIO H2G command,
INTEL_GUC_ACTION_RESET_CLIENT, which is used to implement suspend. This
MMIO tears down any active contexts generating a context reset G2H CTB
for each. Once that step completes the GuC tears down the CTB
channels. It is safe to suspend once this MMIO H2G command completes
and all G2H CTBs have been processed. In practice the i915 will likely
never receive a G2H as suspend should only be called after the GPU is
idle.

Resume is implemented in the same manner as before - simply reload the
GuC firmware and reinitialize everything (e.g. CTB channels, contexts,
etc..).

v2:
 (Michel / John H)
  - INTEL_GUC_ACTION_RESET_CLIENT 0x5B01 -> 0x5507

Cc: John Harrison <john.c.harrison@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210727002348.97202-12-matthew.brost@intel.com
2021-07-27 17:31:48 -07:00
..
display Merge branch 'topic/revid_steppings' into drm-intel-gt-next 2021-07-14 17:55:21 -07:00
gem drm/i915/guc: Disable bonding extension with GuC submission 2021-07-27 17:31:34 -07:00
gt drm/i915/guc: Suspend/resume implementation for new interface 2021-07-27 17:31:48 -07:00
gvt Merge drm/drm-next into drm-intel-gt-next 2021-07-13 15:52:51 -04:00
selftests drm/i915/xehp: Xe_HP forcewake support 2021-07-24 07:18:18 -07:00
.gitignore
dma_resv_utils.c dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
dma_resv_utils.h
i915_active_types.h drm/i915: drop the __i915_active_call pointer packing 2021-05-05 11:36:23 +01:00
i915_active.c drm/i915: Ditch i915 globals shrink infrastructure 2021-07-22 11:14:14 +02:00
i915_active.h drm/i915: drop the __i915_active_call pointer packing 2021-05-05 11:36:23 +01:00
i915_buddy.c drm/i915: Make the kmem slab for i915_buddy_block a global 2021-07-22 12:08:12 +02:00
i915_buddy.h drm/i915: Make the kmem slab for i915_buddy_block a global 2021-07-22 12:08:12 +02:00
i915_cmd_parser.c drm/i915: Correct the docs for intel_engine_cmd_parser 2021-07-21 11:46:48 -04:00
i915_config.c
i915_debugfs_params.c
i915_debugfs_params.h
i915_debugfs.c Cross-subsystem Changes: 2021-06-10 13:45:11 +10:00
i915_debugfs.h
i915_drv.c drm/i915/icl: Use revid->stepping tables 2021-07-14 17:36:22 -07:00
i915_drv.h drm/i915: document caching related bits 2021-07-27 09:16:44 +01:00
i915_fixed.h
i915_gem_evict.c drm/i915/guc: Update intel_gt_wait_for_idle to work with GuC 2021-07-22 10:07:23 -07:00
i915_gem_gtt.c
i915_gem_gtt.h
i915_gem_ww.c drm/i915: Break out dma_resv ww locking utilities to separate files 2021-06-17 14:22:59 +01:00
i915_gem_ww.h drm/i915: Introduce a ww transaction helper 2021-06-17 14:23:01 +01:00
i915_gem.c drm/i915: Break out dma_resv ww locking utilities to separate files 2021-06-17 14:22:59 +01:00
i915_gem.h drm/i915: Break out dma_resv ww locking utilities to separate files 2021-06-17 14:22:59 +01:00
i915_getparam.c
i915_globals.c drm/i915: Make the kmem slab for i915_buddy_block a global 2021-07-22 12:08:12 +02:00
i915_globals.h drm/i915: Ditch i915 globals shrink infrastructure 2021-07-22 11:14:14 +02:00
i915_gpu_error.c drm/i915: Update object placement flags to be mutable 2021-06-24 18:50:56 +01:00
i915_gpu_error.h Merge drm/drm-next into drm-misc-next 2021-05-22 07:17:05 +02:00
i915_ioc32.c
i915_ioc32.h
i915_irq.c drm/i915: Drop all references to DRM IRQ midlayer 2021-07-06 15:10:58 -04:00
i915_irq.h drm/i915: Use the correct IRQ during resume 2021-07-06 15:10:58 -04:00
i915_memcpy.c
i915_memcpy.h
i915_mitigations.c
i915_mitigations.h
i915_mm.c Revert "i915: use io_mapping_map_user" 2021-06-02 15:06:10 +03:00
i915_params.c drm/i915/uc: Use platform specific defaults for GuC/HuC enabling 2021-06-09 10:52:03 -07:00
i915_params.h drm/i915/uc: Use platform specific defaults for GuC/HuC enabling 2021-06-09 10:52:03 -07:00
i915_pci.c drm/i915/xehp: Extra media engines - Part 1 (engine definitions) 2021-07-24 07:16:50 -07:00
i915_perf_types.h
i915_perf.c drm/i915/xehp: Handle new device context ID format 2021-07-22 09:37:26 -07:00
i915_perf.h drm/i915: Use a table for i915_init/exit (v2) 2021-07-22 12:05:17 +02:00
i915_pmu.c drm/i915: Use a table for i915_init/exit (v2) 2021-07-22 12:05:17 +02:00
i915_pmu.h drm/i915: Use a table for i915_init/exit (v2) 2021-07-22 12:05:17 +02:00
i915_priolist_types.h
i915_pvinfo.h
i915_query.c drm/i915/gem: hide new uAPI behind CONFIG_BROKEN 2021-05-04 10:58:56 +01:00
i915_query.h
i915_reg.h drm/i915/gt: nuke gen6_hw_id 2021-07-26 08:15:18 -07:00
i915_request.c drm/i915: Move active request tracking to a vfunc 2021-07-27 17:31:39 -07:00
i915_request.h drm/i915: Move active request tracking to a vfunc 2021-07-27 17:31:39 -07:00
i915_scatterlist.c drm/i915/ttm: add i915_sg_from_buddy_resource 2021-06-16 16:33:26 +01:00
i915_scatterlist.h drm/i915/ttm: add i915_sg_from_buddy_resource 2021-06-16 16:33:26 +01:00
i915_scheduler_types.h drm/i915: Reset GPU immediately if submission is disabled 2021-07-27 17:31:45 -07:00
i915_scheduler.c drm/i915: Reset GPU immediately if submission is disabled 2021-07-27 17:31:45 -07:00
i915_scheduler.h drm/i915: Reset GPU immediately if submission is disabled 2021-07-27 17:31:45 -07:00
i915_selftest.h
i915_suspend.c drm/i915: replace IS_GEN and friends with GRAPHICS_VER 2021-06-07 00:59:48 -07:00
i915_suspend.h
i915_sw_fence_work.c drm/i915: Drop error handling from dma_fence_work 2021-07-16 21:47:39 +02:00
i915_sw_fence_work.h drm/i915: Drop error handling from dma_fence_work 2021-07-16 21:47:39 +02:00
i915_sw_fence.c dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
i915_sw_fence.h
i915_switcheroo.c
i915_switcheroo.h
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c Merge tag 'drm-intel-gt-next-2021-06-10' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-06-11 13:37:34 +10:00
i915_sysfs.h
i915_trace_points.c
i915_trace.h drm/i915: Add intel_context tracing 2021-07-22 10:07:30 -07:00
i915_ttm_buddy_manager.c drm/i915: support forcing the page size with lmem 2021-06-30 13:24:29 +01:00
i915_ttm_buddy_manager.h drm/i915: support forcing the page size with lmem 2021-06-30 13:24:29 +01:00
i915_user_extensions.c
i915_user_extensions.h
i915_utils.c
i915_utils.h drm/i915: Promote ptrdiff() to i915_utils.h 2021-06-03 23:35:43 +02:00
i915_vgpu.c drm/i915: replace IS_GEN and friends with GRAPHICS_VER 2021-06-07 00:59:48 -07:00
i915_vgpu.h
i915_vma_types.h drm/i915: Remove stray newlines 2021-04-28 15:55:09 +03:00
i915_vma.c drm/i915: Ditch i915 globals shrink infrastructure 2021-07-22 11:14:14 +02:00
i915_vma.h Merge tag 'drm-intel-gt-next-2021-06-10' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-06-11 13:37:34 +10:00
intel_device_info.c drm/i915/dg2: add DG2 platform info 2021-07-22 09:20:41 -07:00
intel_device_info.h drm/i915/xehp: Extra media engines - Part 1 (engine definitions) 2021-07-24 07:16:50 -07:00
intel_dram.c drm/i915: replace IS_GEN and friends with GRAPHICS_VER 2021-06-07 00:59:48 -07:00
intel_dram.h
intel_gvt.c
intel_gvt.h
intel_memory_region.c drm/i915/ttm: Use TTM for system memory 2021-06-24 18:51:01 +01:00
intel_memory_region.h drm/i915: support forcing the page size with lmem 2021-06-30 13:24:29 +01:00
intel_pch.c drm/i915: replace IS_GEN and friends with GRAPHICS_VER 2021-06-07 00:59:48 -07:00
intel_pch.h drm/i915/adl_p: Add PCH support 2021-05-12 16:56:56 -07:00
intel_pm.c drm/i915: Make GT workaround upper bounds exclusive 2021-07-21 11:02:24 -07:00
intel_pm.h drm/i915: Remove the repeated declaration 2021-05-26 16:20:38 +03:00
intel_region_ttm.c drm/i915: support forcing the page size with lmem 2021-06-30 13:24:29 +01:00
intel_region_ttm.h drm/i915/ttm: remove node usage in our naming 2021-06-16 16:48:02 +01:00
intel_runtime_pm.c drm/i915: Fix docbook header for __intel_runtime_pm_get_if_active() 2021-03-31 16:57:33 +03:00
intel_runtime_pm.h drm/i915: Remove reference to struct drm_device.pdev 2021-04-29 21:19:10 +02:00
intel_sideband.c drm/i915: replace IS_GEN and friends with GRAPHICS_VER 2021-06-07 00:59:48 -07:00
intel_sideband.h
intel_step.c drm/i915/dg2: add DG2 platform info 2021-07-22 09:20:41 -07:00
intel_step.h drm/i915/xehpsdv: add initial XeHP SDV definitions 2021-07-22 09:19:13 -07:00
intel_uncore.c drm/i915/xehp: Xe_HP forcewake support 2021-07-24 07:18:18 -07:00
intel_uncore.h drm/i915/xehp: Xe_HP forcewake support 2021-07-24 07:18:18 -07:00
intel_wakeref.c
intel_wakeref.h
intel_wopcm.c drm/i915: replace IS_GEN and friends with GRAPHICS_VER 2021-06-07 00:59:48 -07:00
intel_wopcm.h
Kconfig VFIO update for v5.14-rc1 2021-07-03 11:49:33 -07:00
Kconfig.debug drm/i915: Improve debug Kconfig texts a bit 2021-07-06 10:10:07 +02:00
Kconfig.profile drm/i915: Fail too long user submissions by default 2021-03-26 01:01:27 +01:00
Kconfig.unstable
Makefile drm/i915: Drop I915_CONTEXT_PARAM_RINGSIZE 2021-07-08 19:43:27 +02:00
TODO.txt drm/i915: add gem/gt TODO 2021-03-26 09:24:31 +01:00
vlv_suspend.c
vlv_suspend.h