mirror_ubuntu-kernels/drivers/gpu/drm/i915/gt
John Harrison c784e5249e drm/i915/guc: Update to use firmware v49.0.1
The latest GuC firmware includes a number of interface changes that
require driver updates to match.

* Starting from Gen11, the ID to be provided to GuC needs to contain
  the engine class in bits [0..2] and the instance in bits [3..6].

  NOTE: this patch breaks pointer dereferences in some existing GuC
  functions that use the guc_id to dereference arrays but these functions
  are not used for now as we have GuC submission disabled and we will
  update these functions in follow up patch which requires new IDs.

* The new GuC requires the additional data structure (ADS) and associated
  'private_data' pointer to be setup. This is basically a scratch area
  of memory that the GuC owns. The size is read from the CSS header.

* There is now a physical to logical engine mapping table in the ADS
  which needs to be configured in order for the firmware to load. For
  now, the table is initialised with a 1 to 1 mapping.

* GUC_CTL_CTXINFO has been removed from the initialization params.

* reg_state_buffer is maintained internally by the GuC as part of
  the private data.

* The ADS layout has changed significantly. This patch updates the
  shared structure and also adds better documentation of the layout.

* While i915 does not use GuC doorbells, the firmware now requires
  that some initialisation is done.

* The number of engine classes and instances supported in the ADS has
  been increased.

Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Michal Winiarski <michal.winiarski@intel.com>
Cc: Tomasz Lis <tomasz.lis@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201028145826.2949180-2-John.C.Harrison@Intel.com
2020-10-29 13:46:26 +02:00
..
selftests
shaders drm/i915: Include asm sources for {ivb, hsw}_clear_kernel.c 2020-06-29 11:29:12 +03:00
uc drm/i915/guc: Update to use firmware v49.0.1 2020-10-29 13:46:26 +02:00
debugfs_engines.c drm/i915/gt: allow setting generic data pointer 2020-03-26 21:20:51 +00:00
debugfs_engines.h
debugfs_gt_pm.c drm/i915/gt: Move rps.enabled/active to flags 2020-04-30 00:57:35 +01:00
debugfs_gt_pm.h
debugfs_gt.c drm/i915: Move sseu debugfs under gt/ 2020-07-08 21:40:15 +01:00
debugfs_gt.h drm/i915/gt: allow setting generic data pointer 2020-03-26 21:20:51 +00:00
gen2_engine_cs.c drm/i915/gt: Flush gen3 relocs harder, again 2020-06-13 10:30:01 +01:00
gen2_engine_cs.h drm/i915/gt: Split low level gen2-7 CS emitters 2020-06-02 10:42:00 +01:00
gen6_engine_cs.c drm/i915/gt: Split low level gen2-7 CS emitters 2020-06-02 10:42:00 +01:00
gen6_engine_cs.h drm/i915/gt: Split low level gen2-7 CS emitters 2020-06-02 10:42:00 +01:00
gen6_ppgtt.c drm/i915/gt: Onion unwind for scratch page allocation failure 2020-10-19 12:36:38 +01:00
gen6_ppgtt.h drm/i915: Make sure execbuffer always passes ww state to i915_vma_pin. 2020-09-07 14:31:13 +03:00
gen6_renderstate.c
gen7_renderclear.c drm/i915: Release shortlived maps of longlived objects 2020-07-08 22:05:50 +01:00
gen7_renderclear.h drm/i915/gen7: Clear all EU/L3 residual contexts 2020-03-06 08:59:06 +00:00
gen7_renderstate.c
gen8_ppgtt.c drm/i915/gt: Onion unwind for scratch page allocation failure 2020-10-19 12:36:38 +01:00
gen8_ppgtt.h
gen8_renderstate.c
gen9_renderstate.c
hsw_clear_kernel.c drm/i915/gen7: Clear all EU/L3 residual contexts 2020-03-06 08:59:06 +00:00
intel_breadcrumbs_types.h drm/i915/gt: Distinguish the virtual breadcrumbs from the irq breadcrumbs 2020-09-07 14:23:55 +03:00
intel_breadcrumbs.c drm/i915/gt: Hold context/request reference while breadcrumbs are active 2020-09-07 14:24:29 +03:00
intel_breadcrumbs.h drm/i915/gt: Distinguish the virtual breadcrumbs from the irq breadcrumbs 2020-09-07 14:23:55 +03:00
intel_context_param.c drm/i915: Allow userspace to specify ringsize on construction 2020-02-25 19:23:19 +00:00
intel_context_param.h drm/i915: Allow userspace to specify ringsize on construction 2020-02-25 19:23:19 +00:00
intel_context_sseu.c drm/i915/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +01:00
intel_context_types.h drm/i915: Make sure execbuffer always passes ww state to i915_vma_pin. 2020-09-07 14:31:13 +03:00
intel_context.c drm/i915: Fix uninitialised variable in intel_context_create_request. 2020-09-21 11:09:46 +02:00
intel_context.h drm/i915: Make sure execbuffer always passes ww state to i915_vma_pin. 2020-09-07 14:31:13 +03:00
intel_engine_cs.c drm/i915/guc: Update to use firmware v49.0.1 2020-10-29 13:46:26 +02:00
intel_engine_heartbeat.c drm/i915/gt: Track the most recent pulse for the heartbeat 2020-10-07 10:23:11 +01:00
intel_engine_heartbeat.h
intel_engine_pm.c drm/i915/gt: Confirm the context survives execution 2020-10-16 12:13:46 +01:00
intel_engine_pm.h drm/i915: Extend intel_wakeref to support delayed puts 2020-03-23 12:51:05 +00:00
intel_engine_types.h drm/i915/gt: Widen CSB pointer to u64 for the parsers 2020-09-15 15:33:53 +01:00
intel_engine_user.c drm/i915: Reboot CI if we get wedged during driver init 2020-07-06 19:21:07 +01:00
intel_engine_user.h
intel_engine.h drm/i915: Cancel outstanding work after disabling heartbeats on an engine 2020-09-29 09:01:03 +01:00
intel_ggtt_fencing.c drm/i915/gt: Make fence revocation unequivocal 2020-04-01 23:34:17 +01:00
intel_ggtt_fencing.h drm/i915/gt: Store the fence details on the fence 2020-04-01 23:34:16 +01:00
intel_ggtt.c drm/i915: Fix DMA mapped scatterlist lookup 2020-10-06 12:49:12 +01:00
intel_gpu_commands.h drm/i915/gen12: Fix HDC pipeline flush 2020-05-07 07:44:41 +01:00
intel_gt_buffer_pool_types.h drm/i915/gt: Delay taking the spinlock for grabbing from the buffer pool 2020-09-07 13:14:07 +03:00
intel_gt_buffer_pool.c drm/i915/gt: Clear the buffer pool age before use 2020-09-15 11:34:05 +01:00
intel_gt_buffer_pool.h drm/i915/gt: Move the batch buffer pool from the engine to the gt 2020-04-30 19:12:02 +01:00
intel_gt_clock_utils.c drm/i915/gt: Fix up clock frequency 2020-04-27 17:34:33 +01:00
intel_gt_clock_utils.h drm/i915/gt: Use the RPM config register to determine clk frequencies 2020-04-24 19:10:17 +01:00
intel_gt_irq.c drm/i915/gt: Distinguish the virtual breadcrumbs from the irq breadcrumbs 2020-09-07 14:23:55 +03:00
intel_gt_irq.h
intel_gt_pm_irq.c
intel_gt_pm_irq.h
intel_gt_pm.c drm/i915: Reboot CI if we get wedged during driver init 2020-07-06 19:21:07 +01:00
intel_gt_pm.h
intel_gt_requests.c drm/i915/gem: Unpin idle contexts from kswapd reclaim 2020-07-08 22:05:49 +01:00
intel_gt_requests.h
intel_gt_types.h drm/i915/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +01:00
intel_gt.c drm/i915/gt: Scrub HW state on remove 2020-10-06 12:09:30 +01:00
intel_gt.h drm/i915: Introduce gt_init_mmio 2020-07-08 21:07:13 +01:00
intel_gtt.c drm/i915: Enable eLLC caching of display buffers for SKL+ 2020-10-15 15:38:20 +01:00
intel_gtt.h drm/i915: Fix DMA mapped scatterlist walks 2020-10-06 12:49:07 +01:00
intel_llc_types.h
intel_llc.c drm/i915/gt: Do not attempt to reprogram IA/ring frequencies for dgfx 2020-02-19 22:27:10 +00:00
intel_llc.h
intel_lrc_reg.h drm/i915/gt: Use a mmio read of the CSB in case of failure 2020-09-15 15:33:54 +01:00
intel_lrc.c drm/i915/gt: Use the local HWSP offset during submission 2020-10-23 13:35:38 +01:00
intel_lrc.h drm/i915/gt: Remove defunct intel_virtual_engine_get_sibling() 2020-09-18 12:18:03 +01:00
intel_mocs.c drm/i915/gt: Fixup tgl mocs for PTE tracking 2020-10-15 15:38:21 +01:00
intel_mocs.h
intel_ppgtt.c drm/i915/gt: Shrink i915_page_directory's slab bucket 2020-09-07 14:24:23 +03:00
intel_rc6_types.h
intel_rc6.c drm/i915: Remove cnl pre-prod workarounds 2020-05-04 18:44:52 +03:00
intel_rc6.h
intel_renderstate.c drm/i915: Make sure execbuffer always passes ww state to i915_vma_pin. 2020-09-07 14:31:13 +03:00
intel_renderstate.h drm/i915: Use ww locking in intel_renderstate. 2020-09-07 14:30:31 +03:00
intel_reset_types.h drm/i915: Reboot CI if we get wedged during driver init 2020-07-06 19:21:07 +01:00
intel_reset.c drm/i915/gt: Retire cancelled requests on unload 2020-09-30 17:59:26 +01:00
intel_reset.h drm/i915: Reboot CI if we get wedged during driver init 2020-07-06 19:21:07 +01:00
intel_ring_submission.c drm/i915/gt: Signal cancelled requests 2020-09-30 17:59:25 +01:00
intel_ring_types.h
intel_ring.c drm/i915: Make sure execbuffer always passes ww state to i915_vma_pin. 2020-09-07 14:31:13 +03:00
intel_ring.h drm/i915: Make sure execbuffer always passes ww state to i915_vma_pin. 2020-09-07 14:31:13 +03:00
intel_rps_types.h drm/i915/gt: Switch to manual evaluation of RPS 2020-04-30 00:57:37 +01:00
intel_rps.c drm/i915/gt: Check for a registered driver with IPS 2020-09-15 14:21:30 +01:00
intel_rps.h drm/i915/gt: Sanitize RPS interrupts upon resume 2020-05-03 08:24:36 +01:00
intel_sseu_debugfs.c drm/i915: Move sseu debugfs under gt/ 2020-07-08 21:40:15 +01:00
intel_sseu_debugfs.h drm/i915: Move sseu debugfs under gt/ 2020-07-08 21:40:15 +01:00
intel_sseu.c drm/i915/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +01:00
intel_sseu.h drm/i915/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +01:00
intel_timeline_types.h drm/i915/gt: Use the local HWSP offset during submission 2020-10-23 13:35:38 +01:00
intel_timeline.c drm/i915/gt: Use the local HWSP offset during submission 2020-10-23 13:35:38 +01:00
intel_timeline.h drm/i915: Make sure execbuffer always passes ww state to i915_vma_pin. 2020-09-07 14:31:13 +03:00
intel_workarounds_types.h
intel_workarounds.c drm/i915: Kill last user of intel_context_create_request outside of selftests 2020-09-07 14:31:29 +03:00
intel_workarounds.h
ivb_clear_kernel.c drm/i915/gen7: Clear all EU/L3 residual contexts 2020-03-06 08:59:06 +00:00
mock_engine.c drm/i915/selftests: Finish pending mock requests on cancellation. 2020-09-30 17:59:25 +01:00
mock_engine.h
selftest_context.c drm/i915/selftests: Flush the active barriers before asserting 2020-09-07 13:14:15 +03:00
selftest_engine_cs.c drm/i915: Drop i915_request.i915 backpointer 2020-06-03 13:53:39 +01:00
selftest_engine_heartbeat.c drm/i915/selftests: Flush the old heartbeat more gently 2020-10-21 19:20:24 +01:00
selftest_engine_heartbeat.h drm/i915/selftests: Enable selftesting of busy-stats 2020-06-18 09:26:53 +01:00
selftest_engine_pm.c drm/i915/gt: Always report the sample time for busy-stats 2020-06-18 09:26:54 +01:00
selftest_engine.c
selftest_engine.h
selftest_gt_pm.c drm/i915/selftests: Measure CS_TIMESTAMP 2020-05-21 09:30:16 +01:00
selftest_hangcheck.c drm/i915/selftests: Enable selftesting of busy-stats 2020-06-18 09:26:53 +01:00
selftest_llc.c drm/i915/gt: Do not attempt to reprogram IA/ring frequencies for dgfx 2020-02-19 22:27:10 +00:00
selftest_llc.h
selftest_lrc.c drm/i915/selftests: Fix locking inversion in lrc selftest. 2020-09-07 14:31:50 +03:00
selftest_mocs.c drm/i915/gt: Incrementally check for rewinding 2020-06-16 11:34:23 +03:00
selftest_rc6.c drm/i915: Print caller when tainting for CI 2020-07-06 19:21:07 +01:00
selftest_rc6.h
selftest_reset.c drm/i915: Exclude low pages (128KiB) of stolen from use 2020-10-20 10:16:54 +01:00
selftest_ring_submission.c drm/i915/selftests: Always flush before unpining after writing 2020-05-11 16:50:04 +01:00
selftest_ring.c drm/i915/gt: Incrementally check for rewinding 2020-06-16 11:34:23 +03:00
selftest_rps.c drm/i915/selftests: Skip RPS tests on Ironlake (only IPS) 2020-10-23 09:57:54 +01:00
selftest_rps.h drm/i915/gt: Fix up clock frequency 2020-04-27 17:34:33 +01:00
selftest_timeline.c drm/i915/selftests: Exercise intel_timeline_read_hwsp() 2020-10-23 13:35:39 +01:00
selftest_workarounds.c drm/i915: Add an implementation for i915_gem_ww_ctx locking, v2. 2020-09-07 14:29:44 +03:00
shmem_utils.c drm/i915/gt: Keep a no-frills swappable copy of the default context state 2020-04-29 19:02:37 +01:00
shmem_utils.h drm/i915/gt: Keep a no-frills swappable copy of the default context state 2020-04-29 19:02:37 +01:00
st_shmem_utils.c drm/i915/gt: Keep a no-frills swappable copy of the default context state 2020-04-29 19:02:37 +01:00
sysfs_engines.c drm/i915/gt: Cleanup kasan warning for on-stack (unsigned long) casting 2020-10-16 11:08:44 +01:00
sysfs_engines.h drm/i915/gt: Expose engine properties via sysfs 2020-02-28 22:03:19 +00:00