[PULL] drm-xe-next

Rodrigo Vivi
2025-07-15T18:21:12Z

Hi Dave and Sima,

Here goes our last drm-xe-next PR towards 6.17.

It brings a lot of workarounds infra and additions and
the enabling of SRIOV capability in BMG, as long as
underneath hardware SKU and Firmware supports it as well.

Thanks,
Rodrigo.

drm-xe-next-2025-07-15:
Driver Changes:
- Create and use XE_DEVICE_WA infrastructure (Atwood)
- SRIOV: Mark BMG as SR-IOV capable (Michal)
- Dont skip TLB invalidations on VF (Tejas)
- Fix migration copy direction in access_memory (Auld)
- General code clean-up (Lucas, Brost, Dr. David, Xin)
- More missing XeLP workarounds (Tvrtko)
- SRIOV: Relax VF/PF version negotiation (Michal)
- SRIOV: LMTT invalidation (Michal)
The following changes since commit 94de94d24ea8cf567ec7254a723c3192c72c2ca6:

drm/xe/guc: Cancel ongoing H2G requests when stopping CT (2025-07-10 21:46:29 +0200)

are available in the Git repository at:

https://gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-next-2025-07-15

for you to fetch changes up to a81648768178f6adf171d98db486b4b2613f645a:

drm/xe/pf: Invalidate LMTT after completing changes (2025-07-15 13:05:22 +0200)

----------------------------------------------------------------
Driver Changes:
- Create and use XE_DEVICE_WA infrastructure (Atwood)
- SRIOV: Mark BMG as SR-IOV capable (Michal)
- Dont skip TLB invalidations on VF (Tejas)
- Fix migration copy direction in access_memory (Auld)
- General code clean-up (Lucas, Brost, Dr. David, Xin)
- More missing XeLP workarounds (Tvrtko)
- SRIOV: Relax VF/PF version negotiation (Michal)
- SRIOV: LMTT invalidation (Michal)

----------------------------------------------------------------
Dr. David Alan Gilbert (1):
drm/xe: Remove unused functions

Lucas De Marchi (9):
drm/xe/migrate: Fix alignment check
drm/xe: Normalize default param values
drm/xe: Fix missing kernel-doc
drm/xe/lrc: Reduce scope of empty lrc data
drm/xe: Count dwords before allocating
drm/xe/gt: Extract emit_job_sync()
drm/xe/lrc: Remove leftover TODO/FIXME
drm/xe/gt: Drop third submission for default context
drm/xe/lrc: Add table with LRC layout

Matt Atwood (6):
drm/xe: prepare xe_gen_wa_oob to be multi-use
drm/xe: add xe_device_wa infrastructure
drm/xe: add new type to RTP context
drm/xe: Add infrastructure for Device OOB workarounds
drm/xe: Move Wa_15015404425 to use the new XE_DEVICE_WA macro
drm/xe: extend Wa_15015404425 to apply to PTL

Matthew Auld (1):
drm/xe/migrate: fix copy direction in access_memory

Matthew Brost (2):
drm/xe: Move page fault init after topology init
drm/xe: Remove references to CONFIG_DRM_XE_DEVMEM_MIRROR

Michal Wajdeczko (14):
drm/xe/sriov: Mark BMG as SR-IOV capable
drm/xe: Combine PF and VF device data into union
drm/xe: Move PF and VF device types to separate headers
drm/xe: Introduce xe_tile_is_root helper
drm/xe: Introduce xe_gt_is_main_type helper
drm/xe/pf: Expose basic info about VFs in debugfs
drm/xe/pf: Stop requiring VF/PF version negotiation on every GT
drm/xe/vf: Store negotiated VF/PF ABI version at device level
drm/xe/pf: Prepare to stop SR-IOV support prior GT reset
drm/xe/pf: Resend PF provisioning after GT reset
drm/xe/pf: Move GGTT config KLVs encoding to helper
drm/xe/pf: Force GuC virtualization mode
drm/xe/pf: Invalidate LMTT during LMEM unprovisioning
drm/xe/pf: Invalidate LMTT after completing changes

Tejas Upadhyay (1):
drm/xe: Dont skip TLB invalidations on VF

Tvrtko Ursulin (7):
drm/xe: Generalize wa bb emission code
drm/xe: Pass wa bb setup arguments in a struct
drm/xe: Rename utilization workaround emission function
drm/xe: Track number of written dwords from workaround batch buffer emission
drm/xe: Allow specifying number of extra dwords at the end of wa bb emission
drm/xe: Add plumbing for indirect context workarounds
drm/xe: Waste fewer instructions in emit_wa_job()

Xin Wang (1):
drm/xe: Update register definitions in LRC layout header

drivers/gpu/drm/xe/Makefile | 12 +-
drivers/gpu/drm/xe/regs/xe_lrc_layout.h | 7 +
.../gpu/drm/xe/tests/xe_gt_sriov_pf_service_test.c | 232 ------------------
.../gpu/drm/xe/tests/xe_sriov_pf_service_kunit.c | 227 +++++++++++++++++
drivers/gpu/drm/xe/xe_bb.c | 2 +-
drivers/gpu/drm/xe/xe_bb.h | 2 +-
drivers/gpu/drm/xe/xe_bo.c | 15 --
drivers/gpu/drm/xe/xe_bo.h | 3 -
drivers/gpu/drm/xe/xe_debugfs.c | 24 ++
drivers/gpu/drm/xe/xe_device.c | 8 +
drivers/gpu/drm/xe/xe_device.h | 4 +
drivers/gpu/drm/xe/xe_device_types.h | 25 +-
drivers/gpu/drm/xe/xe_device_wa_oob.rules | 2 +
drivers/gpu/drm/xe/xe_force_wake.c | 2 +-
drivers/gpu/drm/xe/xe_gen_wa_oob.c | 45 +++-
drivers/gpu/drm/xe/xe_gsc_proxy.c | 3 +-
drivers/gpu/drm/xe/xe_gt.c | 191 +++++++--------
drivers/gpu/drm/xe/xe_gt.h | 5 +
drivers/gpu/drm/xe/xe_gt_idle.c | 2 +-
drivers/gpu/drm/xe/xe_gt_sriov_pf.c | 19 ++
drivers/gpu/drm/xe/xe_gt_sriov_pf.h | 5 +
drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c | 126 +++++++---
drivers/gpu/drm/xe/xe_gt_sriov_pf_control.c | 7 +-
drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c | 9 +-
drivers/gpu/drm/xe/xe_gt_sriov_pf_service.c | 166 +------------
drivers/gpu/drm/xe/xe_gt_sriov_pf_service.h | 2 -
drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 34 +--
drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h | 12 -
drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c | 34 +++
drivers/gpu/drm/xe/xe_gt_tlb_invalidation.h | 1 +
drivers/gpu/drm/xe/xe_gt_topology.c | 5 -
drivers/gpu/drm/xe/xe_gt_topology.h | 2 -
drivers/gpu/drm/xe/xe_irq.c | 7 +-
drivers/gpu/drm/xe/xe_lmtt.c | 54 +++++
drivers/gpu/drm/xe/xe_lmtt.h | 1 +
drivers/gpu/drm/xe/xe_lrc.c | 269 ++++++++++++++++-----
drivers/gpu/drm/xe/xe_lrc.h | 2 +-
drivers/gpu/drm/xe/xe_lrc_types.h | 3 +-
drivers/gpu/drm/xe/xe_migrate.c | 6 +-
drivers/gpu/drm/xe/xe_mmio.c | 8 +-
drivers/gpu/drm/xe/xe_module.c | 35 ++-
drivers/gpu/drm/xe/xe_oa.c | 6 +-
drivers/gpu/drm/xe/xe_pci.c | 1 +
drivers/gpu/drm/xe/xe_ring_ops.c | 22 +-
drivers/gpu/drm/xe/xe_rtp.c | 47 ++--
drivers/gpu/drm/xe/xe_rtp.h | 14 +-
drivers/gpu/drm/xe/xe_rtp_types.h | 2 +
drivers/gpu/drm/xe/xe_sriov_pf.c | 61 ++++-
drivers/gpu/drm/xe/xe_sriov_pf.h | 6 +
drivers/gpu/drm/xe/xe_sriov_pf_service.c | 216 +++++++++++++++++
drivers/gpu/drm/xe/xe_sriov_pf_service.h | 23 ++
drivers/gpu/drm/xe/xe_sriov_pf_service_types.h | 36 +++
drivers/gpu/drm/xe/xe_sriov_pf_types.h | 45 ++++
drivers/gpu/drm/xe/xe_sriov_types.h | 36 ---
drivers/gpu/drm/xe/xe_sriov_vf_types.h | 41 ++++
drivers/gpu/drm/xe/xe_tile.h | 6 +
drivers/gpu/drm/xe/xe_vm.c | 4 +-
drivers/gpu/drm/xe/xe_wa.c | 58 +++++
drivers/gpu/drm/xe/xe_wa.h | 22 +-
drivers/gpu/drm/xe/xe_wa_oob.rules | 2 +
60 files changed, 1501 insertions(+), 765 deletions(-)
delete mode 100644 drivers/gpu/drm/xe/tests/xe_gt_sriov_pf_service_test.c
create mode 100644 drivers/gpu/drm/xe/tests/xe_sriov_pf_service_kunit.c
create mode 100644 drivers/gpu/drm/xe/xe_device_wa_oob.rules
create mode 100644 drivers/gpu/drm/xe/xe_sriov_pf_service.c
create mode 100644 drivers/gpu/drm/xe/xe_sriov_pf_service.h
create mode 100644 drivers/gpu/drm/xe/xe_sriov_pf_service_types.h
create mode 100644 drivers/gpu/drm/xe/xe_sriov_pf_types.h
create mode 100644 drivers/gpu/drm/xe/xe_sriov_vf_types.h