Hi Dave and Simona, Last drm-xe-next pull for 6.12. I was going to bring only the fixes, but that would be basically most of the changes available. And what's not a fix it's pretty trivial stuff. So I'm including everything. The one outstanding thing is a prep patch to dma-buf that was needed to properly replace a fix we reverted last week. That's being tested for more than a week and proved better than the previous one. thanks Lucas De Marchi drm-xe-next-2024-09-05: Cross-subsystem Changes: - Split dma fence array creation into alloc and arm (Matthew Brost) Driver Changes: - Move kernel_lrc to execlist backend (Ilia) - Fix type width for pcode coommand (Karthik) - Make xe_drm.h include unambiguous (Jani) - Fixes and debug improvements for GSC load (Daniele) - Track resources and VF state by PF (Michal Wajdeczko) - Fix memory leak on error path (Nirmoy) - Cleanup header includes (Matt Roper) - Move pcode logic to tile scope (Matt Roper) - Move hwmon logic to device scope (Matt Roper) - Fix media TLB invalidation (Matthew Brost) - Threshold config fixes for PF (Michal Wajdeczko) - Remove extra "[drm]" from logs (Michal Wajdeczko) - Add missing runtime ref (Rodrigo Vivi) - Fix circular locking on runtime suspend (Rodrigo Vivi) - Fix rpm in TTM swapout path (Thomas) The following changes since commit 3adcf970dc7ec0469ec3116a5a8be9161d17a335: drm/xe/bmg: Drop force_probe requirement (2024-08-28 10:47:03 -0700) are available in the Git repository at: https://gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-next-2024-09-05 for you to fetch changes up to 34bb7b813ab398106f700b0a6b218509bb0b904c: drm/xe: Use xe_pm_runtime_get in xe_bo_move() if reclaim-safe. (2024-09-04 09:28:09 +0200) ---------------------------------------------------------------- Cross-subsystem Changes: - Split dma fence array creation into alloc and arm (Matthew Brost) Driver Changes: - Move kernel_lrc to execlist backend (Ilia) - Fix type width for pcode coommand (Karthik) - Make xe_drm.h include unambiguous (Jani) - Fixes and debug improvements for GSC load (Daniele) - Track resources and VF state by PF (Michal Wajdeczko) - Fix memory leak on error path (Nirmoy) - Cleanup header includes (Matt Roper) - Move pcode logic to tile scope (Matt Roper) - Move hwmon logic to device scope (Matt Roper) - Fix media TLB invalidation (Matthew Brost) - Threshold config fixes for PF (Michal Wajdeczko) - Remove extra "[drm]" from logs (Michal Wajdeczko) - Add missing runtime ref (Rodrigo Vivi) - Fix circular locking on runtime suspend (Rodrigo Vivi) - Fix rpm in TTM swapout path (Thomas) ---------------------------------------------------------------- Daniele Ceraolo Spurio (5): drm/xe/gsc: Do not attempt to load the GSC multiple times drm/xe/gsc: Fix FW status if the firmware is already loaded drm/xe/gsc: Track the platform in the compatibility version drm/xe/gsc: Add debugfs to print GSC info drm/xe/gsc: Wedge the device if the GSCCS reset fails Ilia Levi (1): drm/xe: move the kernel lrc from hwe to execlist port Jani Nikula (1): drm/xe: replace #include <drm/xe_drm.h> with <uapi/drm/xe_drm.h> Karthik Poosa (1): drm/xe/hwmon: Fix WRITE_I1 param from u32 to u16 Matt Roper (3): drm/xe/display: Drop unnecessary xe_gt.h includes drm/xe/pcode: Treat pcode as per-tile rather than per-GT drm/xe/hwmon: Treat hwmon as a per-device concept Matthew Brost (2): dma-buf: Split out dma fence array create into alloc and arm functions drm/xe: Invalidate media_gt TLBs in PT code Michal Wajdeczko (7): drm/xe/pf: Add function to sanitize VF resources drm/xe/pf: Fix documentation formatting drm/xe/pf: Drop GuC notifications for non-existing VF drm/xe/pf: Improve VF control drm/xe/pf: Add thresholds to the VF KLV config drm/xe/pf: Reset thresholds when releasing a VF config drm/xe: Remove redundant [drm] tag from xe_assert() message Nirmoy Das (1): drm/xe: Fix memory leak on xe_alloc_pf_queue failure Rodrigo Vivi (2): drm/xe: Add missing runtime reference to wedged upon gt_reset drm/xe/display: Avoid encoder_suspend at runtime suspend Thomas Hellström (1): drm/xe: Use xe_pm_runtime_get in xe_bo_move() if reclaim-safe. drivers/dma-buf/dma-fence-array.c | 78 +- drivers/gpu/drm/xe/Makefile | 1 + .../gpu/drm/xe/compat-i915-headers/intel_pcode.h | 8 +- .../gpu/drm/xe/compat-i915-headers/intel_uncore.h | 7 + drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 1 - drivers/gpu/drm/xe/display/xe_display.c | 8 +- drivers/gpu/drm/xe/display/xe_dsb_buffer.c | 1 - drivers/gpu/drm/xe/display/xe_fb_pin.c | 1 - drivers/gpu/drm/xe/display/xe_hdcp_gsc.c | 1 - drivers/gpu/drm/xe/regs/xe_gsc_regs.h | 4 + drivers/gpu/drm/xe/tests/xe_dma_buf.c | 2 +- drivers/gpu/drm/xe/xe_assert.h | 2 +- drivers/gpu/drm/xe/xe_bo.c | 13 +- drivers/gpu/drm/xe/xe_device.c | 2 +- drivers/gpu/drm/xe/xe_device_types.h | 6 + drivers/gpu/drm/xe/xe_drm_client.c | 2 +- drivers/gpu/drm/xe/xe_exec.c | 2 +- drivers/gpu/drm/xe/xe_exec_queue.c | 2 +- drivers/gpu/drm/xe/xe_execlist.c | 23 +- drivers/gpu/drm/xe/xe_execlist_types.h | 2 + drivers/gpu/drm/xe/xe_gsc.c | 61 +- drivers/gpu/drm/xe/xe_gsc.h | 3 + drivers/gpu/drm/xe/xe_gsc_debugfs.c | 71 ++ drivers/gpu/drm/xe/xe_gsc_debugfs.h | 14 + drivers/gpu/drm/xe/xe_gt.c | 9 +- drivers/gpu/drm/xe/xe_gt_pagefault.c | 8 +- drivers/gpu/drm/xe/xe_gt_sriov_pf.c | 6 + drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c | 103 ++ drivers/gpu/drm/xe/xe_gt_sriov_pf_config.h | 1 + drivers/gpu/drm/xe/xe_gt_sriov_pf_control.c | 1258 +++++++++++++++++++- drivers/gpu/drm/xe/xe_gt_sriov_pf_control.h | 3 + drivers/gpu/drm/xe/xe_gt_sriov_pf_control_types.h | 107 ++ drivers/gpu/drm/xe/xe_gt_sriov_pf_types.h | 6 + drivers/gpu/drm/xe/xe_gt_types.h | 6 - drivers/gpu/drm/xe/xe_guc_pc.c | 2 +- drivers/gpu/drm/xe/xe_hw_engine.c | 17 +- drivers/gpu/drm/xe/xe_hw_engine_types.h | 2 - drivers/gpu/drm/xe/xe_hwmon.c | 97 +- drivers/gpu/drm/xe/xe_migrate.c | 2 +- drivers/gpu/drm/xe/xe_oa.c | 2 +- drivers/gpu/drm/xe/xe_oa_types.h | 2 +- drivers/gpu/drm/xe/xe_observation.c | 2 +- drivers/gpu/drm/xe/xe_pat.c | 2 +- drivers/gpu/drm/xe/xe_pcode.c | 104 +- drivers/gpu/drm/xe/xe_pcode.h | 16 +- drivers/gpu/drm/xe/xe_pm.c | 9 +- drivers/gpu/drm/xe/xe_pm.h | 1 + drivers/gpu/drm/xe/xe_pt.c | 117 +- drivers/gpu/drm/xe/xe_query.c | 2 +- drivers/gpu/drm/xe/xe_rtp.c | 2 +- drivers/gpu/drm/xe/xe_sched_job.c | 2 +- drivers/gpu/drm/xe/xe_sync.c | 2 +- drivers/gpu/drm/xe/xe_tile.c | 3 + drivers/gpu/drm/xe/xe_uc_debugfs.c | 2 + drivers/gpu/drm/xe/xe_uc_fw.c | 13 +- drivers/gpu/drm/xe/xe_uc_fw.h | 9 +- drivers/gpu/drm/xe/xe_vm.c | 2 +- drivers/gpu/drm/xe/xe_vram_freq.c | 6 +- drivers/gpu/drm/xe/xe_wait_user_fence.c | 2 +- include/linux/dma-fence-array.h | 6 + 60 files changed, 1977 insertions(+), 271 deletions(-) create mode 100644 drivers/gpu/drm/xe/xe_gsc_debugfs.c create mode 100644 drivers/gpu/drm/xe/xe_gsc_debugfs.h create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_control_types.h