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