[PULL] drm-xe-next

Rodrigo Vivi
2025-07-10T22:17:47Z

Hi Dave and Sima,

Here goes our drm-xe-next towards 6.17.
I'm still considering an extra small one in the beginning
of next week if possible.

Before going to the details of what this pull request contains,
I'd like to say that I had to bypass the new dim rule that checks
for proper Acks in the patches. But only because they are in the DRM subsystem
for the restructure of migration in preparation for multi-device. I hope this
is okay by you, but please let me know if I should remove the patches and resend.
Here are the patches without DRM ack from you:

ccfb15b8158c ("drm/xe/bmg: Add one additional PCI ID"): Mandatory Maintainer Acked-by missing.
b58701687831 ("drm/xe: Implement and use the drm_pagemap populate_mm op"): Mandatory Maintainer Acked-by missing.
2ef19be2a545 ("drm/pagemap: Add a populate_mm op"): Mandatory Maintainer Acked-by missing.
f86ad0ed620c ("drm/gpusvm, drm/pagemap: Move migration functionality to drm_pagemap"): Mandatory Maintainer Acked-by missing.

Regarding the changes itself, please notice that this pull request includes
some cross-subsystem patches for both MTD and i2c, but all with the proper Acks
in place. They are needed for BMG features.

As for the other Xe highlights, we have a new platform (WildCat Lake),
the removal of the force_probe protection for Panther Lake, new GuC version,
and a lot of SRIOV enabling work, specially targeting enabling it soon on BMG.

Thanks,
Rodrigo.

drm-xe-next-2025-07-10:
UAPI Changes:
- Documentation fixes (Shuicheng)

Cross-subsystem Changes:
- MTD intel-dg driver for dgfx non-volatile memory device (Sasha)
- i2c: designware changes to allow i2c integration with BMG (Heikki)

Core Changes:
- Restructure migration in preparation for multi-device (Brost, Thomas)
- Expose fan control and voltage regulator version on sysfs (Raag)

Driver Changes:
- Add WildCat Lake support (Roper)
- Add aux bus child device driver for NVM on DGFX (Sasha)
- Some refactor and fixes to allow cleaner BMG w/a (Lucas, Maarten, Auld)
- BMG w/a (Vinay)
- Improve handling of aborted probe (Michal)
- Do not wedge device on killed exec queues (Brost)
- Init changes for flicker-free boot (Maarten)
- Fix out-of-bounds field write in MI_STORE_DATA_IMM (Jia)
- Enable the GuC Dynamic Inhibit Context Switch optimization (Daniele)
- Drop bo->size (Brost)
- Builds and KConfig fixes (Harry, Maarten)
- Consolidate LRC offset calculations (Tvrtko)
- Fix potential leak in hw_engine_group (Michal)
- Future-proof for multi-tile + multi-GT cases (Roper)
- Validate gt in pmu event (Riana)
- SRIOV PF: Clear all LMTT pages on alloc (Michal)
- Allocate PF queue size on pow2 boundary (Brost)
- SRIOV VF: Make multi-GT migration less error prone (Tomasz)
- Revert indirect ring state patch to fix random LRC context switches failures (Brost)
- Fix compressed VRAM handling (Auld)
- Add one additional BMG PCI ID (Ravi)
- Recommend GuC v70.46.2 for BMG, LNL, DG2 (Julia)
- Add GuC and HuC to PTL (Daniele)
- Drop PTL force_probe requirement (Atwood)
- Fix error flow in display suspend (Shuicheng)
- Disable GuC communication on hardware initialization error (Zhanjun)
- Devcoredump fixes and clean up (Shuicheng)
- SRIOV PF: Downgrade some info to debug (Michal)
- Don't allocate temporary GuC policies object (Michal)
- Support for I2C attached MCUs (Heikki, Raag, Riana)
- Add GPU memory bo trace points (Juston)
- SRIOV VF: Skip some W/a (Michal)
- Correct comment of xe_pm_set_vram_threshold (Shuicheng)
- Cancel ongoing H2G requests when stopping CT (Michal)
The following changes since commit 36c52fb703e90388285963fc8f03cf60f76cbe4c:

Merge tag 'drm-intel-next-2025-06-18' of https://gitlab.freedesktop.org/drm/i915/kernel into drm-next (2025-06-23 10:49:27 +1000)

are available in the Git repository at:

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

for you to fetch changes up to 94de94d24ea8cf567ec7254a723c3192c72c2ca6:

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

----------------------------------------------------------------
UAPI Changes:
- Documentation fixes (Shuicheng)

Cross-subsystem Changes:
- MTD intel-dg driver for dgfx non-volatile memory device (Sasha)
- i2c: designware changes to allow i2c integration with BMG (Heikki)

Core Changes:
- Restructure migration in preparation for multi-device (Brost, Thomas)
- Expose fan control and voltage regulator version on sysfs (Raag)

Driver Changes:
- Add WildCat Lake support (Roper)
- Add aux bus child device driver for NVM on DGFX (Sasha)
- Some refactor and fixes to allow cleaner BMG w/a (Lucas, Maarten, Auld)
- BMG w/a (Vinay)
- Improve handling of aborted probe (Michal)
- Do not wedge device on killed exec queues (Brost)
- Init changes for flicker-free boot (Maarten)
- Fix out-of-bounds field write in MI_STORE_DATA_IMM (Jia)
- Enable the GuC Dynamic Inhibit Context Switch optimization (Daniele)
- Drop bo->size (Brost)
- Builds and KConfig fixes (Harry, Maarten)
- Consolidate LRC offset calculations (Tvrtko)
- Fix potential leak in hw_engine_group (Michal)
- Future-proof for multi-tile + multi-GT cases (Roper)
- Validate gt in pmu event (Riana)
- SRIOV PF: Clear all LMTT pages on alloc (Michal)
- Allocate PF queue size on pow2 boundary (Brost)
- SRIOV VF: Make multi-GT migration less error prone (Tomasz)
- Revert indirect ring state patch to fix random LRC context switches failures (Brost)
- Fix compressed VRAM handling (Auld)
- Add one additional BMG PCI ID (Ravi)
- Recommend GuC v70.46.2 for BMG, LNL, DG2 (Julia)
- Add GuC and HuC to PTL (Daniele)
- Drop PTL force_probe requirement (Atwood)
- Fix error flow in display suspend (Shuicheng)
- Disable GuC communication on hardware initialization error (Zhanjun)
- Devcoredump fixes and clean up (Shuicheng)
- SRIOV PF: Downgrade some info to debug (Michal)
- Don't allocate temporary GuC policies object (Michal)
- Support for I2C attached MCUs (Heikki, Raag, Riana)
- Add GPU memory bo trace points (Juston)
- SRIOV VF: Skip some W/a (Michal)
- Correct comment of xe_pm_set_vram_threshold (Shuicheng)
- Cancel ongoing H2G requests when stopping CT (Michal)

----------------------------------------------------------------
Alexander Usyskin (7):
mtd: add driver for intel graphics non-volatile memory device
mtd: intel-dg: implement region enumeration
mtd: intel-dg: implement access functions
mtd: intel-dg: register with mtd
mtd: intel-dg: align 64bit read and write
drm/xe/nvm: add on-die non-volatile memory device
drm/xe/nvm: add support for access mode

Daniele Ceraolo Spurio (5):
Revert "drm/xe/ptl: Apply Wa_16026007364"
drm/xe/guc: Enable extended CAT error reporting
drm/xe/guc: Enable the Dynamic Inhibit Context Switch optimization
drm/xe/ptl: Add GuC FW definition for PTL
drm/xe/ptl: Add HuC FW definition for PTL

Harry Austen (1):
drm/xe: Allow dropping kunit dependency as built-in

Heikki Krogerus (3):
i2c: designware: Use polling by default when there is no irq resource
i2c: designware: Add quirk for Intel Xe
drm/xe: Support for I2C attached MCUs

Jia Yao (1):
drm/xe: Fix out-of-bounds field write in MI_STORE_DATA_IMM

Julia Filipchuk (1):
drm/xe/guc: Recommend GuC v70.46.2 for BMG, LNL, DG2

Juston Li (1):
drm/xe/bo: add GPU memory trace points

Lucas De Marchi (3):
drm/xe/guc_pc: Add _locked variant for min/max freq
drm/xe/xe_guc_pc: Lock once to update stashed frequencies
drm/xe: Split xe_device_td_flush()

Maarten Lankhorst (13):
drm/xe: Move DSB l2 flush to a more sensible place
drm/xe: Defer memirq init until needed
drm/xe/sriov: Move VF bootstrap and query_config to vf_guc_init
drm/xe: Simplify GuC early initialization
drm/xe: Make it possible to read instance0 MCR registers after xe_gt_mcr_init_early
drm/xe: Only dump PAT when xe_hw_engines_init_early fails
drm/xe: Rename gt_init sub-functions
drm/xe: Split init of xe_gt_init_hwconfig to xe_gt_init and *_early
drm/xe: Move xe_ttm_sys_mgr_init() downwards.
drm/xe: Remove xe_uc_init_hwconfig()
drm/xe: Remove xe_uc_fini_hw
drm/xe: Rename xe_uc_init_hw to xe_uc_load_hw
drm/xe: Fix typo in Kconfig

Matt Atwood (1):
drm/xe/ptl: Drop force_probe requirement

Matt Roper (9):
drm/xe/xe3: Add support for graphics IP version 30.03
drm/xe/xe3: Add support for media IP version 30.02
drm/xe: Add Wildcat Lake device IDs to PTL list
drm/xe: Export xe_step_name for kunit tests
drm/xe: Track maximum GTs per tile on a per-platform basis
drm/xe/tests/pci: Ensure all platforms have a valid GT/tile count
drm/xe: Assign GT IDs properly on multi-tile + multi-GT platforms
drm/xe: Don't compare GT ID to GT count when determining valid GTs
drm/xe/xe_query: Use separate iterator while filling GT list

Matthew Auld (2):
drm/xe: move DPT l2 flush to a more sensible place
drm/xe/bmg: fix compressed VRAM handling

Matthew Brost (5):
drm/xe: Do not wedge device on killed exec queues
drm/gpusvm, drm/pagemap: Move migration functionality to drm_pagemap
drm/xe: Drop bo->size
drm/xe: Allocate PF queue size on pow2 boundary
Revert "drm/xe/xe2: Enable Indirect Ring State support for Xe2"

Michal Wajdeczko (11):
drm/xe: Process deferred GGTT node removals on device unwind
drm/xe/guc: Explicitly exit CT safe mode on unwind
drm/xe/hw_engine_group: Fix potential leak
drm/xe/pf: Clear all LMTT pages on alloc
drm/xe/pf: Print runtime registers using debug printer
drm/xe/pf: Print configuration KLVs using debug printer
drm/xe/guc: Don't allocate temporary policies object
drm/xe/bmg: Don't use WA 16023588340 and 22019338487 on VF
drm/xe/guc: Rename CT state change helper
drm/xe/guc: Move state change logger to helper
drm/xe/guc: Cancel ongoing H2G requests when stopping CT

Raag Jadav (2):
drm/xe: Expose fan control and voltage regulator version
drm/xe/pm: Wire up suspend/resume for I2C controller

Reuven Abliyev (1):
drm/xe/nvm: add support for non-posted erase

Riana Tauro (2):
drm/xe/xe_pmu: Validate gt in event supported
drm/xe/xe_i2c: Add support for i2c in survivability mode

Rodrigo Vivi (1):
Merge drm/drm-next into drm-xe-next

Shuicheng Lin (5):
drm/xe/uapi: Correct sync type definition in comments
drm/xe/pm: Restore display pm if there is error after display suspend
drm/xe: Remove unused code in devcoredump_snapshot()
drm/xe: Release runtime pm for error path of xe_devcoredump_read()
drm/xe/pm: Correct comment of xe_pm_set_vram_threshold()

Thomas Hellström (2):
drm/pagemap: Add a populate_mm op
drm/xe: Implement and use the drm_pagemap populate_mm op

Tomasz Lis (1):
drm/xe/vf: Make multi-GT migration less error prone

Tvrtko Ursulin (1):
drm/xe: Consolidate LRC offset calculations

Vinay Belgaumkar (1):
drm/xe/bmg: Update Wa_22019338487

Vodapalli, Ravi Kumar (1):
drm/xe/bmg: Add one additional PCI ID

Zhanjun Dong (1):
drm/xe/uc: Disable GuC communication on hardware initialization error

sanirban (1):
drm/xe/ptl: Apply Wa_16026007364

Documentation/gpu/rfc/gpusvm.rst | 12 +-
MAINTAINERS | 7 +
drivers/gpu/drm/Makefile | 6 +-
drivers/gpu/drm/drm_gpusvm.c | 762 +------------------------
drivers/gpu/drm/drm_pagemap.c | 838 ++++++++++++++++++++++++++++
drivers/gpu/drm/xe/Kconfig | 16 +-
drivers/gpu/drm/xe/Makefile | 2 +
drivers/gpu/drm/xe/abi/guc_actions_abi.h | 4 +
drivers/gpu/drm/xe/abi/guc_klvs_abi.h | 28 +
drivers/gpu/drm/xe/display/xe_dsb_buffer.c | 11 +-
drivers/gpu/drm/xe/display/xe_fb_pin.c | 7 +-
drivers/gpu/drm/xe/display/xe_hdcp_gsc.c | 2 +-
drivers/gpu/drm/xe/regs/xe_gsc_regs.h | 4 +
drivers/gpu/drm/xe/regs/xe_i2c_regs.h | 20 +
drivers/gpu/drm/xe/regs/xe_irq_regs.h | 1 +
drivers/gpu/drm/xe/regs/xe_pmt.h | 2 +-
drivers/gpu/drm/xe/regs/xe_regs.h | 2 +
drivers/gpu/drm/xe/tests/xe_bo.c | 2 +-
drivers/gpu/drm/xe/tests/xe_guc_buf_kunit.c | 4 +-
drivers/gpu/drm/xe/tests/xe_migrate.c | 52 +-
drivers/gpu/drm/xe/tests/xe_pci.c | 31 +
drivers/gpu/drm/xe/tests/xe_pci_test.c | 12 +
drivers/gpu/drm/xe/tests/xe_pci_test.h | 1 +
drivers/gpu/drm/xe/xe_bo.c | 37 +-
drivers/gpu/drm/xe/xe_bo.h | 17 +-
drivers/gpu/drm/xe/xe_bo_types.h | 4 +-
drivers/gpu/drm/xe/xe_devcoredump.c | 50 +-
drivers/gpu/drm/xe/xe_device.c | 121 ++--
drivers/gpu/drm/xe/xe_device.h | 47 +-
drivers/gpu/drm/xe/xe_device_sysfs.c | 143 ++++-
drivers/gpu/drm/xe/xe_device_types.h | 22 +-
drivers/gpu/drm/xe/xe_drm_client.c | 2 +-
drivers/gpu/drm/xe/xe_eu_stall.c | 6 +-
drivers/gpu/drm/xe/xe_exec_queue.c | 2 +-
drivers/gpu/drm/xe/xe_ggtt.c | 25 +-
drivers/gpu/drm/xe/xe_gsc.c | 6 +-
drivers/gpu/drm/xe/xe_gt.c | 80 ++-
drivers/gpu/drm/xe/xe_gt.h | 1 -
drivers/gpu/drm/xe/xe_gt_mcr.c | 47 +-
drivers/gpu/drm/xe/xe_gt_pagefault.c | 1 +
drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c | 26 +-
drivers/gpu/drm/xe/xe_gt_sriov_pf_service.c | 2 +-
drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 1 -
drivers/gpu/drm/xe/xe_gt_types.h | 2 +
drivers/gpu/drm/xe/xe_guc.c | 147 ++++-
drivers/gpu/drm/xe/xe_guc.h | 2 +
drivers/gpu/drm/xe/xe_guc_ads.c | 31 +-
drivers/gpu/drm/xe/xe_guc_ct.c | 81 ++-
drivers/gpu/drm/xe/xe_guc_ct.h | 1 +
drivers/gpu/drm/xe/xe_guc_log.c | 2 +-
drivers/gpu/drm/xe/xe_guc_pc.c | 283 +++++++---
drivers/gpu/drm/xe/xe_guc_pc.h | 2 +
drivers/gpu/drm/xe/xe_guc_pc_types.h | 2 +
drivers/gpu/drm/xe/xe_guc_submit.c | 31 +-
drivers/gpu/drm/xe/xe_heci_gsc.c | 5 +-
drivers/gpu/drm/xe/xe_huc.c | 2 +-
drivers/gpu/drm/xe/xe_hw_engine.c | 3 +-
drivers/gpu/drm/xe/xe_hw_engine_group.c | 19 +-
drivers/gpu/drm/xe/xe_i2c.c | 329 +++++++++++
drivers/gpu/drm/xe/xe_i2c.h | 62 ++
drivers/gpu/drm/xe/xe_irq.c | 2 +
drivers/gpu/drm/xe/xe_lmtt.c | 15 +-
drivers/gpu/drm/xe/xe_lrc.c | 41 +-
drivers/gpu/drm/xe/xe_lrc_types.h | 2 +-
drivers/gpu/drm/xe/xe_migrate.c | 50 +-
drivers/gpu/drm/xe/xe_mmio.c | 16 +-
drivers/gpu/drm/xe/xe_nvm.c | 167 ++++++
drivers/gpu/drm/xe/xe_nvm.h | 15 +
drivers/gpu/drm/xe/xe_oa.c | 10 +-
drivers/gpu/drm/xe/xe_pci.c | 77 +--
drivers/gpu/drm/xe/xe_pci_types.h | 41 ++
drivers/gpu/drm/xe/xe_pcode_api.h | 15 +
drivers/gpu/drm/xe/xe_pm.c | 20 +-
drivers/gpu/drm/xe/xe_pmu.c | 7 +-
drivers/gpu/drm/xe/xe_query.c | 29 +-
drivers/gpu/drm/xe/xe_sriov_vf.c | 195 +++----
drivers/gpu/drm/xe/xe_step.c | 2 +
drivers/gpu/drm/xe/xe_survivability_mode.c | 19 +-
drivers/gpu/drm/xe/xe_svm.c | 125 +++--
drivers/gpu/drm/xe/xe_svm.h | 10 +-
drivers/gpu/drm/xe/xe_tile.c | 7 +
drivers/gpu/drm/xe/xe_tile.h | 11 +
drivers/gpu/drm/xe/xe_trace_bo.h | 4 +-
drivers/gpu/drm/xe/xe_uc.c | 78 +--
drivers/gpu/drm/xe/xe_uc.h | 5 +-
drivers/gpu/drm/xe/xe_uc_fw.c | 8 +-
drivers/gpu/drm/xe/xe_vm.c | 8 +-
drivers/gpu/drm/xe/xe_wa.c | 16 +
drivers/gpu/drm/xe/xe_wa_oob.rules | 10 +-
drivers/i2c/busses/i2c-designware-platdrv.c | 18 +-
drivers/mtd/devices/Kconfig | 11 +
drivers/mtd/devices/Makefile | 1 +
drivers/mtd/devices/mtd_intel_dg.c | 830 +++++++++++++++++++++++++++
include/drm/drm_gpusvm.h | 96 ----
include/drm/drm_pagemap.h | 135 +++++
include/drm/intel/pciids.h | 5 +-
include/linux/intel_dg_nvm_aux.h | 32 ++
include/uapi/drm/xe_drm.h | 8 +-
98 files changed, 3981 insertions(+), 1630 deletions(-)
create mode 100644 drivers/gpu/drm/drm_pagemap.c
create mode 100644 drivers/gpu/drm/xe/regs/xe_i2c_regs.h
create mode 100644 drivers/gpu/drm/xe/xe_i2c.c
create mode 100644 drivers/gpu/drm/xe/xe_i2c.h
create mode 100644 drivers/gpu/drm/xe/xe_nvm.c
create mode 100644 drivers/gpu/drm/xe/xe_nvm.h
create mode 100644 drivers/mtd/devices/mtd_intel_dg.c
create mode 100644 include/linux/intel_dg_nvm_aux.h