[Intel-gfx] [PULL] drm-intel-gt-next

Joonas Lahtinen
2022-03-03T07:51:13Z

Hi Dave & Daniel,

Here is the last feature PR for v5.18.

For new platforms we have got more DG2 enabling: small BAR foundations,
64K page support and accelerated migration. For XeHP SDV we've got flat
CCS detection and compute command streamer being added.

Disabling i915 build on PREEMPT_RT for now due to deadlocks and
warnings. Fixes to GuC data structure accesses on ARM platforms.
A couple of other GuC init and SLPC fixes.

Then the usual bits of cleanup and smaller fixes.

Regards, Joonas

***

drm-intel-gt-next-2022-03-03:

Cross-subsystem Changes:

- drm-next backmerge for buddy allocator changes

Driver Changes:

- Skip i915_perf init for DG2 as it is not yet enabled (Ram)
- Add missing workarounds for DG2 (Clint)
- Add 64K page/align support for platforms like DG2 that require it (Matt A, Ram, Bob)
- Add accelerated migration support for DG2 (Matt A)
- Add flat CCS support for XeHP SDV (Abdiel, Ram)
- Add Compute Command Streamer (CCS) engine support for XeHP SDV (Michel,
Daniele, Aravind, Matt R)
- Don't support parallel submission on compute / render (Matt B, Matt R)

- Disable i915 build on PREEMPT_RT until RT behaviour fixed (Sebastian)
- Remove RPS interrupt support for TGL+ (Jose)
- Fix S/R with PM_EARLY for non-GTT mappable objects on DG2 (Matt, Lucas)
- Skip stolen memory init if it is fully reserved (Jose)
- Use iosys_map for GuC data structures that may be in LMEM BAR or SMEM (Lucas)
- Do not complain about stale GuC reset notifications for banned contexts (John)

- Move context descriptor fields to intel_lrc.h (Matt R)
- Start adding support for small BAR (Matt A)
- Clarify vma lifetime (Thomas)
- Simplify subplatform detection on TGL (Jose)
- Correct the param count for unset GuC SLPC param (Vinay, Umesh)
- Read RP_STATE_CAP correctly on Gen12 with GuC SLPC (Vinay)
- Initialize GuC submission locks and queues early (Daniele)
- Fix GuC flag query helper function to not modify state (John)

- Drop fake lmem support now we have real hardware available (Lucas)
- Move misplaced W/A to their correct locations (Srinivasan)
- Use get_reset_domain() helper (Tejas)
- Move context descriptor fields to intel_lrc.h (Matt R)
- Selftest improvements (Matt A)

The following changes since commit 54f43c17d681f6d9523fcfaeefc9df77993802e1:

Merge tag 'drm-misc-next-2022-02-23' of git://anongit.freedesktop.org/drm/drm-misc into drm-next (2022-02-25 05:50:18 +1000)

are available in the Git repository at:

git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2022-03-03

for you to fetch changes up to b2006061ae28fe7e84af6c9757ee89c4e505e92b:

drm/i915/xehpsdv: Move render/compute engine reset domains related workarounds (2022-03-02 06:52:42 -0800)

----------------------------------------------------------------
Cross-subsystem Changes:

- drm-next backmerge for buddy allocator changes

Driver Changes:

- Skip i915_perf init for DG2 as it is not yet enabled (Ram)
- Add missing workarounds for DG2 (Clint)
- Add 64K page/align support for platforms like DG2 that require it (Matt A, Ram, Bob)
- Add accelerated migration support for DG2 (Matt A)
- Add flat CCS support for XeHP SDV (Abdiel, Ram)
- Add Compute Command Streamer (CCS) engine support for XeHP SDV (Michel,
Daniele, Aravind, Matt R)
- Don't support parallel submission on compute / render (Matt B, Matt R)

- Disable i915 build on PREEMPT_RT until RT behaviour fixed (Sebastian)
- Remove RPS interrupt support for TGL+ (Jose)
- Fix S/R with PM_EARLY for non-GTT mappable objects on DG2 (Matt, Lucas)
- Skip stolen memory init if it is fully reserved (Jose)
- Use iosys_map for GuC data structures that may be in LMEM BAR or SMEM (Lucas)
- Do not complain about stale GuC reset notifications for banned contexts (John)

- Move context descriptor fields to intel_lrc.h
- Start adding support for small BAR (Matt A)
- Clarify vma lifetime (Thomas)
- Simplify subplatform detection on TGL (Jose)
- Correct the param count for unset GuC SLPC param (Vinay, Umesh)
- Read RP_STATE_CAP correctly on Gen12 with GuC SLPC (Vinay)
- Initialize GuC submission locks and queues early (Daniele)
- Fix GuC flag query helper function to not modify state (John)

- Drop fake lmem support now we have real hardware available (Lucas)
- Move misplaced W/A to their correct locations (Srinivasan)
- Use get_reset_domain() helper (Tejas)
- Move context descriptor fields to intel_lrc.h (Matt R)
- Selftest improvements (Matt A)

----------------------------------------------------------------
Abdiel Janulgue (1):
drm/i915/lmem: Enable lmem for platforms with Flat CCS

CQ Tang (1):
drm/i915/xehpsdv: Add has_flat_ccs to device info

Clint Taylor (1):
drm/i915/dg2: add Wa_14014947963

Daniele Ceraolo Spurio (4):
drm/i915/guc: Initialize GuC submission locks and queues early
drm/i915/xehp: compute engine pipe_control
drm/i915/xehp/guc: enable compute engine inside GuC
drm/i915/xehp: handle fused off CCS engines

John Harrison (2):
drm/i915/guc: Fix flag query helper function to not modify state
drm/i915/guc: Do not complain about stale reset notifications

José Roberto de Souza (3):
drm/i915/tgl: Simply subplatform detection
drm/i915/rps/tgl+: Remove RPS interrupt support
drm/i915: Check stolen memory size before calling drm_mm_init

Lucas De Marchi (15):
drm/i915: Kill the fake lmem support
drm/i915/gt: Add helper for shmem copy to iosys_map
drm/i915/guc: Keep iosys_map of ads_blob around
drm/i915/guc: Add read/write helpers for ADS blob
drm/i915/guc: Convert golden context init to iosys_map
drm/i915/guc: Convert policies update to iosys_map
drm/i915/guc: Convert engine record to iosys_map
drm/i915/guc: Convert guc_ads_private_data_reset to iosys_map
drm/i915/guc: Convert golden context prep to iosys_map
drm/i915/guc: Replace check for golden context size
drm/i915/guc: Convert mapping table to iosys_map
drm/i915/guc: Convert capture list to iosys_map
drm/i915/guc: Convert guc_mmio_reg_state_init to iosys_map
drm/i915/guc: Convert __guc_ads_init to iosys_map
drm/i915/guc: Remove plain ads_blob pointer

Matt Roper (8):
drm/i915/xehp: Define compute class and engine
drm/i915/xehp: CCS shares the render reset domain
drm/i915/xehp: Add Compute CS IRQ handlers
drm/i915/xehp: CCS should use RCS setup functions
drm/i915: Move context descriptor fields to intel_lrc.h
drm/i915/xehp: Define context scheduling attributes in lrc descriptor
drm/i915/xehp: Enable ccs/dual-ctx in RCU_MODE
drm/i915/xehp: Add compute workarounds

Matthew Auld (19):
drm/i915: enforce min GTT alignment for discrete cards
drm/i915: support 64K GTT pages for discrete cards
drm/i915/gtt: allow overriding the pt alignment
drm/i915/gtt: add xehpsdv_ppgtt_insert_entry
drm/i915/migrate: add acceleration support for DG2
drm/i915/uapi: document behaviour for DG2 64K support
drm/i915/ttm: fixup the mock_bo
drm/i915: apply PM_EARLY for non-GTT mappable objects
drm/i915: add io_size plumbing
drm/i915/ttm: require mappable by default
drm/i915: add I915_BO_ALLOC_GPU_ONLY
drm/i915/buddy: track available visible size
drm/i915/buddy: adjust res->start
drm/i915/buddy: tweak 2big check
drm/i915/selftests: mock test io_size
drm/i915/ttm: make eviction mappable aware
drm/i915/ttm: mappable migration on fault
drm/i915/selftests: handle allocation failures
drm/i915/selftests: exercise mmap migration

Matthew Brost (1):
drm/i915/xehp: Don't support parallel submission on compute / render

Ramalingam C (2):
drm/i915/perf: Skip the i915_perf_init for dg2
drm/i915: add needs_compact_pt flag

Robert Beckett (1):
drm/i915: add gtt misalignment test

Sebastian Andrzej Siewior (1):
drm/i915: Depend on !PREEMPT_RT.

Srinivasan Shanmugam (2):
drm/i915/dg2: Move misplaced 'ctx' & 'gt' wa's to engine wa list
drm/i915/xehpsdv: Move render/compute engine reset domains related workarounds

Tejas Upadhyay (1):
drm/i915/gt: use get_reset_domain() helper

Thomas Hellström (1):
drm/i915: Clarify vma lifetime

Tvrtko Ursulin (1):
Merge drm/drm-next into drm-intel-gt-next

Vinay Belgaumkar (2):
drm/i915/guc/slpc: Correct the param count for unset param
drm/i915/guc/slpc: Use wrapper for reading RP_STATE_CAP

drivers/gpu/drm/i915/Kconfig | 1 +
drivers/gpu/drm/i915/Kconfig.unstable | 8 -
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 2 +-
drivers/gpu/drm/i915/display/intel_fbdev.c | 2 +-
drivers/gpu/drm/i915/gem/i915_gem_context.c | 10 +
drivers/gpu/drm/i915/gem/i915_gem_object.c | 14 +-
drivers/gpu/drm/i915/gem/i915_gem_object_types.h | 17 +-
drivers/gpu/drm/i915/gem/i915_gem_pages.c | 3 +
drivers/gpu/drm/i915/gem/i915_gem_region.c | 16 +
drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 2 +-
drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 17 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 128 +++++++-
drivers/gpu/drm/i915/gem/selftests/huge_pages.c | 64 +++-
.../drm/i915/gem/selftests/i915_gem_client_blt.c | 21 +-
.../gpu/drm/i915/gem/selftests/i915_gem_context.c | 8 +-
drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 333 ++++++++++++++++++++-
drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 34 ++-
drivers/gpu/drm/i915/gt/gen8_ppgtt.c | 158 +++++++++-
drivers/gpu/drm/i915/gt/intel_engine.h | 2 +
drivers/gpu/drm/i915/gt/intel_engine_cs.c | 157 ++++++++--
drivers/gpu/drm/i915/gt/intel_engine_types.h | 11 +-
drivers/gpu/drm/i915/gt/intel_engine_user.c | 5 +-
.../gpu/drm/i915/gt/intel_execlists_submission.c | 11 +-
drivers/gpu/drm/i915/gt/intel_gpu_commands.h | 15 +
drivers/gpu/drm/i915/gt/intel_gt.c | 25 +-
drivers/gpu/drm/i915/gt/intel_gt.h | 1 +
drivers/gpu/drm/i915/gt/intel_gt_irq.c | 15 +-
drivers/gpu/drm/i915/gt/intel_gt_regs.h | 48 +--
drivers/gpu/drm/i915/gt/intel_gtt.c | 29 +-
drivers/gpu/drm/i915/gt/intel_gtt.h | 35 ++-
drivers/gpu/drm/i915/gt/intel_lrc.c | 12 +-
drivers/gpu/drm/i915/gt/intel_lrc.h | 51 ++++
drivers/gpu/drm/i915/gt/intel_migrate.c | 196 ++++++++++--
drivers/gpu/drm/i915/gt/intel_ppgtt.c | 17 +-
drivers/gpu/drm/i915/gt/intel_region_lmem.c | 140 ++-------
drivers/gpu/drm/i915/gt/intel_region_lmem.h | 3 -
drivers/gpu/drm/i915/gt/intel_rps.c | 2 +-
drivers/gpu/drm/i915/gt/intel_sseu.c | 17 +-
drivers/gpu/drm/i915/gt/intel_sseu.h | 4 +-
drivers/gpu/drm/i915/gt/intel_workarounds.c | 138 ++++++---
drivers/gpu/drm/i915/gt/shmem_utils.c | 32 ++
drivers/gpu/drm/i915/gt/shmem_utils.h | 3 +
drivers/gpu/drm/i915/gt/uc/intel_guc.h | 7 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c | 238 ++++++++-------
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.h | 3 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h | 32 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c | 7 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 63 ++--
.../gpu/drm/i915/gt/uc/selftest_guc_multi_lrc.c | 4 +
drivers/gpu/drm/i915/i915_driver.c | 15 -
drivers/gpu/drm/i915/i915_drv.h | 30 +-
drivers/gpu/drm/i915/i915_params.c | 5 -
drivers/gpu/drm/i915/i915_params.h | 1 -
drivers/gpu/drm/i915/i915_pci.c | 3 +
drivers/gpu/drm/i915/i915_perf.c | 4 +
drivers/gpu/drm/i915/i915_reg.h | 24 +-
drivers/gpu/drm/i915/i915_ttm_buddy_manager.c | 87 +++++-
drivers/gpu/drm/i915/i915_ttm_buddy_manager.h | 13 +-
drivers/gpu/drm/i915/i915_vma.c | 86 +++++-
drivers/gpu/drm/i915/i915_vma.h | 3 +
drivers/gpu/drm/i915/intel_device_info.c | 26 +-
drivers/gpu/drm/i915/intel_device_info.h | 5 +
drivers/gpu/drm/i915/intel_memory_region.c | 10 +-
drivers/gpu/drm/i915/intel_memory_region.h | 7 +-
drivers/gpu/drm/i915/intel_region_ttm.c | 21 +-
drivers/gpu/drm/i915/intel_step.c | 2 +-
drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 222 ++++++++++++--
.../gpu/drm/i915/selftests/intel_memory_region.c | 159 +++++++++-
drivers/gpu/drm/i915/selftests/mock_region.c | 13 +-
drivers/gpu/drm/i915/selftests/mock_region.h | 3 +-
include/uapi/drm/i915_drm.h | 45 ++-
71 files changed, 2318 insertions(+), 627 deletions(-)