[PULL] drm-xe-next

Lucas De Marchi
2024-02-26T03:21:13Z

Hi Dave and Sima,

Here's the PR for drm-xe-next for Linux v6.9. It's a big list of
changes, but it contains several fixes for things noticed throughout the
v6.8 cycle after being merged upstream, added to the linux-next, etc.
Approximately 30% are fixes already sent or on its way to v6.8.

First, the bad part: this still shows some issues of not being properly
integrated with our tooling, with this one being the worst:
https://lore.kernel.org/all/20240221173645.225a979d@canb.auug.org.au/.
Some of the committers didn't add their s-o-b while applying patches. I
checked that all the affected patches do contain the s-o-b by the author
and come from the same company (Intel).

Also due to the same reason, some commits are missing a Link trailer to
the mailing list discussion. Often these patches were applied with bare
git-am or b4.

All of this should be fixed by now: dim is used for applying and pushing
patches, which has additional checks so that doesn't happen again. Still
pending confirmation from Daniel Stone if the git server hooks are ready
in gitlab so we properly forbid pushes without dim, like we do with the
git.fd.o infra.

Finally, we enabled again building for 32b, but on Friday we received
bug reports that it still fails with clang. There are some fixes being
reviewed and we should have them ready next week.

Summary of the changes are below.

drm-xe-next-2024-02-25:
drm/xe feature pull for v6.9:

UAPI Changes:

- New query to the GuC firmware submission version. (José Roberto de Souza)
- Remove unused persistent exec_queues (Thomas Hellström)
- Add vram frequency sysfs attributes (Sujaritha Sundaresan, Rodrigo Vivi)
- Add the flag XE_VM_BIND_FLAG_DUMPABLE to notify devcoredump that mapping
should be dumped (Maarten Lankhorst)

Cross-drivers Changes:

- Make sure intel_wakeref_t is treated as opaque type on i915-display
and fix its type on xe

Driver Changes:

- Drop pre-production workarounds (Matt Roper)
- Drop kunit tests for unsuported platforms: PVC and pre-production DG2 (Lucas De Marchi)
- Start pumbling SR-IOV support with memory based interrupts
for VF (Michal Wajdeczko)
- Allow to map BO in GGTT with PAT index corresponding to
XE_CACHE_UC to work with memory based interrupts (Michal Wajdeczko)
- Improve logging with GT-oriented drm_printers (Michal Wajdeczko)
- Add GuC Doorbells Manager as prep work SR-IOV during
VF provisioning ((Michal Wajdeczko)
- Refactor fake device handling in kunit integration ((Michal Wajdeczko)
- Implement additional workarounds for xe2 and MTL (Tejas Upadhyay,
Lucas De Marchi, Shekhar Chauhan, Karthik Poosa)
- Program a few registers according to perfomance guide spec for Xe2 (Shekhar Chauhan)
- Add error handling for non-blocking communication with GuC (Daniele Ceraolo Spurio)
- Fix remaining 32b build issues and enable it back (Lucas De Marchi)
- Fix build with CONFIG_DEBUG_FS=n (Jani Nikula)
- Fix warnings from GuC ABI headers (Matthew Brost)
- Introduce Relay Communication for SR-IOV for VF <-> GuC <-> PF (Michal Wajdeczko)
- Add mocs reset kunit (Ruthuvikas Ravikumar)
- Fix spellings (Colin Ian King)
- Disable mid-thread preemption when not properly supported by hardware (Nirmoy Das)
- Release mmap mappings on rpm suspend (Badal Nilawar)
- Fix BUG_ON on xe_exec by moving fence reservation to the validate stage (Matthew Auld)
- Fix xe_exec by reserving extra fence slot for CPU bind (Matthew Brost)
- Fix xe_exec with full long running exec queue, now returning
-EWOULDBLOCK to userspace (Matthew Brost)
- Fix CT irq handler when CT is disabled (Matthew Brost)
- Fix VM_BIND_OP_UNMAP_ALL without any bound vmas (Thomas Hellström)
- Fix missing __iomem annotations (Thomas Hellström)
- Fix exec queue priority handling with GuC (Brian Welty)
- Fix setting SLPC flag to GuC when it's not supported (Vinay Belgaumkar)
- Fix C6 disabling without SLPC (Matt Roper)
- Drop -Wstringop-overflow to fix build with GCC11 (Paul E. McKenney)
- Circumvent bogus -Wstringop-overflow in one case (Arnd Bergmann)
- Refactor exec_queue user extensions handling and fix USM attributes
being applied too late (Brian Welty)
- Use circ_buf head/tail convention (Matthew Brost)
- Fail build if circ_buf-related defines are modified with incompatible values
(Matthew Brost)
- Fix several error paths (Dan Carpenter)
- Fix CCS copy for small VRAM copy chunks (Thomas Hellström)
- Rework driver initialization order and paths to account for driver running
in VF mode (Michal Wajdeczko)
- Initialize GuC earlier during probe to handle driver in VF mode (Michał Winiarski)
- Fix migration use of MI_STORE_DATA_IMM to write PTEs (Matt Roper)
- Fix bounds checking in __xe_bo_placement_for_flags (Brian Welty)
- Drop display dependency on CONFIG_EXPERT (Jani Nikula)
- Do not hand-roll kstrdup when creating snapshot (Michal Wajdeczko)
- Stop creating one kunit module per kunit suite (Lucas De Marchi)
- Reduce scope and constify variables (Thomas Hellström, Jani Nikula, Michal Wajdeczko)
- Improve and document xe_guc_ct_send_recv() (Michal Wajdeczko)
- Add proxy communication between CSME and GSC uC (Daniele Ceraolo Spurio)
- Fix size calculation when writing pgtable (Fei Yang)
- Make sure cfb is page size aligned in stolen memory (Vinod Govindapillai)
- Stop printing guc log to dmesg when waiting for GuC fails (Rodrigo Vivi)
- Use XE_CACHE_WB instead of XE_CACHE_NONE for cpu coherency on migration
(Himal Prasad Ghimiray)
- Fix error path in xe_vm_create (Moti Haimovski)
- Fix warnings in doc generation (Thomas Hellström, Badal Nilawar)
- Improve devcoredump content for mesa debugging (José Roberto de Souza)
- Fix crash in trace_dma_fence_init() (José Roberto de Souza)
- Improve CT state change handling (Matthew Brost)
- Toggle USM support for Xe2 (Lucas De Marchi)
- Reduces code duplication to emit PIPE_CONTROL (José Roberto de Souza)
- Canonicalize addresses where needed for Xe2 and add to devcoredump
(José Roberto de Souza)
- Only allow 1 ufence per exec / bind IOCTL (Matthew Brost)
- Move all display code to display/ (Jani Nikula)
- Fix sparse warnings by correctly using annotations (Thomas Hellström)
- Warn on job timeouts instead of using asserts (Matt Roper)
- Prefix macros to avoid clashes with sparc (Matthew Brost)
- Fix -Walloc-size by subclassing instead of allocating size smaller than struct (Thomas Hellström)
- Add status check during gsc header readout (Suraj Kandpal)
- Fix infinite loop in vm_bind_ioctl_ops_unwind() (Matthew Brost)
- Fix fence refcounting (Matthew Brost)
- Fix picking incorrect userptr VMA (Matthew Brost)
- Fix USM on integrated by mapping both mem.kernel_bb_pool and usm.bb_pool (Matthew Brost)
- Fix double initialization of display power domains (Xiaoming Wang)
- Check expected uC versions by major.minor.patch instead of just major.minor (John Harrison)
- Bump minimum GuC version to 70.19.2 for all platforms under force-probe
(John Harrison)
- Add GuC firmware loading for Lunar Lake (John Harrison)
- Use kzalloc() instead of hand-rolled alloc + memset (Nirmoy Das)
- Fix max page size of VMA during a REMAP (Matthew Brost)
- Don't ignore error when pinning pages in kthread (Matthew Auld)
- Refactor xe hwmon (Karthik Poosa)
- Add debug logs for D3cold (Riana Tauro)
- Remove broken TEST_VM_ASYNC_OPS_ERROR (Matthew Brost)
- Always allow to override firmware blob with module param and improve
log when no firmware is found (Lucas De Marchi)
- Fix shift-out-of-bounds due to xe_vm_prepare_vma() accepting zero fences (Thomas Hellström)
- Fix shift-out-of-bounds by distinguishing xe_pt/xe_pt_dir subclass (Thomas Hellström)
- Fail driver bind if platform supports MSIX, but fails to allocate all of them (Dani Liberman)
- Fix intel_fbdev thinking memory is backed by shmem (Matthew Auld)
- Prefer drm_dbg() over dev_dbg() (Jani Nikula)
- Avoid function cast warnings with clang-16 (Arnd Bergmann)
- Enhance xe_bo_move trace (Priyanka Dandamudi)
- Fix xe_vma_set_pte_size() not setting the right gpuva.flags for 4K size (Matthew Brost)
- Add XE_VMA_PTE_64K VMA flag (Matthew Brost)
- Return 2MB page size for compact 64k PTEs (Matthew Brost)
- Remove usage of the deprecated ida_simple_xx() API (Christophe JAILLET)
- Fix modpost warning on xe_mocs live kunit module (Ashutosh Dixit)
- Drop extra newline in from sysfs files (Ashutosh Dixit)
- Implement VM snapshot support for BO's and userptr (Maarten Lankhorst)
- Add debug logs when skipping rebinds (Matthew Brost)
- Fix code generation when mixing build directories (Dafna Hirschfeld)
- Prefer struct_size over open coded arithmetic (Erick Archer)

The following changes since commit 9ac4beb7578a88baa4f7e6a59eeb5be79d7b011a:

Merge tag 'drm-misc-next-2024-02-15' of git://anongit.freedesktop.org/drm/drm-misc into drm-next (2024-02-16 13:16:40 +1000)

are available in the Git repository at:

ssh://git@gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-next-2024-02-25

for you to fetch changes up to a7a3d73686f5837916ebffda77afa4343754e7dc:

drm/xe: Prefer struct_size over open coded arithmetic (2024-02-22 20:58:20 -0800)

----------------------------------------------------------------
drm/xe feature pull for v6.9:

UAPI Changes:

- New query to the GuC firmware submission version. (José Roberto de Souza)
- Remove unused persistent exec_queues (Thomas Hellström)
- Add vram frequency sysfs attributes (Sujaritha Sundaresan, Rodrigo Vivi)
- Add the flag XE_VM_BIND_FLAG_DUMPABLE to notify devcoredump that mapping
should be dumped (Maarten Lankhorst)

Cross-drivers Changes:

- Make sure intel_wakeref_t is treated as opaque type on i915-display
and fix its type on xe

Driver Changes:

- Drop pre-production workarounds (Matt Roper)
- Drop kunit tests for unsuported platforms: PVC and pre-production DG2 (Lucas De Marchi)
- Start pumbling SR-IOV support with memory based interrupts
for VF (Michal Wajdeczko)
- Allow to map BO in GGTT with PAT index corresponding to
XE_CACHE_UC to work with memory based interrupts (Michal Wajdeczko)
- Improve logging with GT-oriented drm_printers (Michal Wajdeczko)
- Add GuC Doorbells Manager as prep work SR-IOV during
VF provisioning ((Michal Wajdeczko)
- Refactor fake device handling in kunit integration ((Michal Wajdeczko)
- Implement additional workarounds for xe2 and MTL (Tejas Upadhyay,
Lucas De Marchi, Shekhar Chauhan, Karthik Poosa)
- Program a few registers according to perfomance guide spec for Xe2 (Shekhar Chauhan)
- Add error handling for non-blocking communication with GuC (Daniele Ceraolo Spurio)
- Fix remaining 32b build issues and enable it back (Lucas De Marchi)
- Fix build with CONFIG_DEBUG_FS=n (Jani Nikula)
- Fix warnings from GuC ABI headers (Matthew Brost)
- Introduce Relay Communication for SR-IOV for VF <-> GuC <-> PF (Michal Wajdeczko)
- Add mocs reset kunit (Ruthuvikas Ravikumar)
- Fix spellings (Colin Ian King)
- Disable mid-thread preemption when not properly supported by hardware (Nirmoy Das)
- Release mmap mappings on rpm suspend (Badal Nilawar)
- Fix BUG_ON on xe_exec by moving fence reservation to the validate stage (Matthew Auld)
- Fix xe_exec by reserving extra fence slot for CPU bind (Matthew Brost)
- Fix xe_exec with full long running exec queue, now returning
-EWOULDBLOCK to userspace (Matthew Brost)
- Fix CT irq handler when CT is disabled (Matthew Brost)
- Fix VM_BIND_OP_UNMAP_ALL without any bound vmas (Thomas Hellström)
- Fix missing __iomem annotations (Thomas Hellström)
- Fix exec queue priority handling with GuC (Brian Welty)
- Fix setting SLPC flag to GuC when it's not supported (Vinay Belgaumkar)
- Fix C6 disabling without SLPC (Matt Roper)
- Drop -Wstringop-overflow to fix build with GCC11 (Paul E. McKenney)
- Circumvent bogus -Wstringop-overflow in one case (Arnd Bergmann)
- Refactor exec_queue user extensions handling and fix USM attributes
being applied too late (Brian Welty)
- Use circ_buf head/tail convention (Matthew Brost)
- Fail build if circ_buf-related defines are modified with incompatible values
(Matthew Brost)
- Fix several error paths (Dan Carpenter)
- Fix CCS copy for small VRAM copy chunks (Thomas Hellström)
- Rework driver initialization order and paths to account for driver running
in VF mode (Michal Wajdeczko)
- Initialize GuC earlier during probe to handle driver in VF mode (Michał Winiarski)
- Fix migration use of MI_STORE_DATA_IMM to write PTEs (Matt Roper)
- Fix bounds checking in __xe_bo_placement_for_flags (Brian Welty)
- Drop display dependency on CONFIG_EXPERT (Jani Nikula)
- Do not hand-roll kstrdup when creating snapshot (Michal Wajdeczko)
- Stop creating one kunit module per kunit suite (Lucas De Marchi)
- Reduce scope and constify variables (Thomas Hellström, Jani Nikula, Michal Wajdeczko)
- Improve and document xe_guc_ct_send_recv() (Michal Wajdeczko)
- Add proxy communication between CSME and GSC uC (Daniele Ceraolo Spurio)
- Fix size calculation when writing pgtable (Fei Yang)
- Make sure cfb is page size aligned in stolen memory (Vinod Govindapillai)
- Stop printing guc log to dmesg when waiting for GuC fails (Rodrigo Vivi)
- Use XE_CACHE_WB instead of XE_CACHE_NONE for cpu coherency on migration
(Himal Prasad Ghimiray)
- Fix error path in xe_vm_create (Moti Haimovski)
- Fix warnings in doc generation (Thomas Hellström, Badal Nilawar)
- Improve devcoredump content for mesa debugging (José Roberto de Souza)
- Fix crash in trace_dma_fence_init() (José Roberto de Souza)
- Improve CT state change handling (Matthew Brost)
- Toggle USM support for Xe2 (Lucas De Marchi)
- Reduces code duplication to emit PIPE_CONTROL (José Roberto de Souza)
- Canonicalize addresses where needed for Xe2 and add to devcoredump
(José Roberto de Souza)
- Only allow 1 ufence per exec / bind IOCTL (Matthew Brost)
- Move all display code to display/ (Jani Nikula)
- Fix sparse warnings by correctly using annotations (Thomas Hellström)
- Warn on job timeouts instead of using asserts (Matt Roper)
- Prefix macros to avoid clashes with sparc (Matthew Brost)
- Fix -Walloc-size by subclassing instead of allocating size smaller than struct (Thomas Hellström)
- Add status check during gsc header readout (Suraj Kandpal)
- Fix infinite loop in vm_bind_ioctl_ops_unwind() (Matthew Brost)
- Fix fence refcounting (Matthew Brost)
- Fix picking incorrect userptr VMA (Matthew Brost)
- Fix USM on integrated by mapping both mem.kernel_bb_pool and usm.bb_pool (Matthew Brost)
- Fix double initialization of display power domains (Xiaoming Wang)
- Check expected uC versions by major.minor.patch instead of just major.minor (John Harrison)
- Bump minimum GuC version to 70.19.2 for all platforms under force-probe
(John Harrison)
- Add GuC firmware loading for Lunar Lake (John Harrison)
- Use kzalloc() instead of hand-rolled alloc + memset (Nirmoy Das)
- Fix max page size of VMA during a REMAP (Matthew Brost)
- Don't ignore error when pinning pages in kthread (Matthew Auld)
- Refactor xe hwmon (Karthik Poosa)
- Add debug logs for D3cold (Riana Tauro)
- Remove broken TEST_VM_ASYNC_OPS_ERROR (Matthew Brost)
- Always allow to override firmware blob with module param and improve
log when no firmware is found (Lucas De Marchi)
- Fix shift-out-of-bounds due to xe_vm_prepare_vma() accepting zero fences (Thomas Hellström)
- Fix shift-out-of-bounds by distinguishing xe_pt/xe_pt_dir subclass (Thomas Hellström)
- Fail driver bind if platform supports MSIX, but fails to allocate all of them (Dani Liberman)
- Fix intel_fbdev thinking memory is backed by shmem (Matthew Auld)
- Prefer drm_dbg() over dev_dbg() (Jani Nikula)
- Avoid function cast warnings with clang-16 (Arnd Bergmann)
- Enhance xe_bo_move trace (Priyanka Dandamudi)
- Fix xe_vma_set_pte_size() not setting the right gpuva.flags for 4K size (Matthew Brost)
- Add XE_VMA_PTE_64K VMA flag (Matthew Brost)
- Return 2MB page size for compact 64k PTEs (Matthew Brost)
- Remove usage of the deprecated ida_simple_xx() API (Christophe JAILLET)
- Fix modpost warning on xe_mocs live kunit module (Ashutosh Dixit)
- Drop extra newline in from sysfs files (Ashutosh Dixit)
- Implement VM snapshot support for BO's and userptr (Maarten Lankhorst)
- Add debug logs when skipping rebinds (Matthew Brost)
- Fix code generation when mixing build directories (Dafna Hirschfeld)
- Prefer struct_size over open coded arithmetic (Erick Archer)

----------------------------------------------------------------
Arnd Bergmann (2):
drm/xe: circumvent bogus stringop-overflow warning
drm/xe: avoid function cast warnings

Ashutosh Dixit (2):
drm/xe/xe_gt_idle: Drop redundant newline in name
drm/xe: Fix modpost warning on xe_mocs kunit module

Badal Nilawar (3):
drm/xe/dgfx: Release mmap mappings on rpm suspend
drm/xe/xe_debugfs: Print skip_guc_pc in xe info
drm/hwmon: Fix abi doc warnings

Brian Welty (7):
drm/xe: Fix guc_exec_queue_set_priority
drm/xe: Fix modifying exec_queue priority in xe_migrate_init
drm/xe: Refactor __xe_exec_queue_create()
drm/xe: Add exec_queue.sched_props.job_timeout_ms
drm/xe: Finish refactoring of exec_queue_create
drm/xe: Remove set_job_timeout_ms() from exec_queue_ops
drm/xe: Fix bounds checking in __xe_bo_placement_for_flags()

Christophe JAILLET (1):
drm/xe/guc: Remove usage of the deprecated ida_simple_xx() API

Colin Ian King (1):
drm/xe: Fix spelling mistake "gueue" -> "queue"

Dafna Hirschfeld (1):
drm/xe: Do not include current dir for generated/xe_wa_oob.h

Dan Carpenter (3):
drm/xe/device: clean up on error in probe()
drm/xe/selftests: Fix an error pointer dereference bug
drm/xe: unlock on error path in xe_vm_add_compute_exec_queue()

Dani Liberman (1):
drm/xe/irq: allocate all possible msix interrupts

Daniele Ceraolo Spurio (3):
drm/xe/guc: Use FAST_REQUEST for non-blocking H2G messages
drm/xe/gsc: Initialize GSC proxy
drm/xe/gsc: add support for GSC proxy interrupt

Erick Archer (1):
drm/xe: Prefer struct_size over open coded arithmetic

Fei Yang (2):
drm/xe: correct the calculation of remaining size
drm/xe: correct the assertion for number of PTEs

Himal Prasad Ghimiray (1):
drm/xe/xe2: Use XE_CACHE_WB pat index

Jani Nikula (11):
drm/i915: don't make assumptions about intel_wakeref_t type
drm/xe: display support should not depend on EXPERT
drm/xe: make xe_ttm_funcs const
drm/xe: make heci_gsc_irq_chip const
drm/xe: make hwmon_info const
drm/xe: make gpuvm_ops const
drm/xe: constify engine class sysfs attributes
drm/xe: don't build debugfs files when CONFIG_DEBUG_FS=n
drm/xe: move xe_display.[ch] under display/
drm/xe: drop display/ subdir from include directories
drm/xe: use drm based debugging instead of dev

John Harrison (3):
drm/xe/uc: Include patch version in expectations
drm/xe/guc: Update to GuC firmware 70.19.2
drm/xe/guc: Add support for LNL firmware

José Roberto de Souza (14):
drm/xe/uapi: Remove DRM_XE_VM_BIND_FLAG_ASYNC comment left over
drm/xe: Fix definition of intel_wakeref_t
drm/xe: Use intel_wakeref_t in intel_runtime_pm functions
drm/xe: Remove double new lines in devcoredump
drm/xe: Change devcoredump functions parameters to xe_sched_job
drm/xe: Nuke xe from xe_devcoredump
drm/xe: Print more device information in devcoredump
drm/xe: Print registers spread in 2 u32 as u64
drm/xe: Remove additional spaces in devcoredump HW Engines section
drm/xe: Fix crash in trace_dma_fence_init()
drm/xe: Use function to emit PIPE_CONTROL
drm/xe: Add functions to convert regular address to canonical address and back
drm/xe: Add batch buffer addresses to devcoredump
drm/xe: Add uAPI to query GuC firmware submission version

Karthik Poosa (3):
drm/xe/guc: Enable WA 14018913170
drm/xe/guc: Reduce a print from warn to debug
drm/xe/hwmon: Refactor xe hwmon

Lucas De Marchi (18):
drm/xe: Fix warning on impossible condition
drm/xe: Disable 32bits build
drm/xe/xe2: Add workaround 16020183090
drm/xe/kunit: Drop xe_wa tests for pre-production DG2
drm/xe: Group normal kunit tests in a single module
drm/xe: Use _ULL for u64 division
drm/xe/mmio: Cast to u64 when printing
drm/xe/display: Avoid calling readq()
drm/xe: Fix cast on trace variable
drm/xe: Enable 32bits build
Merge drm/drm-next into drm-xe-next
drm/xe: Remove PVC from xe_wa kunit tests
drm/xe/xe2: Enable has_usm
drm/xe: Always allow to override firmware
drm/xe: Avoid cryptic message when there's no GuC definition
drm/xe: Enable 32bits build
Merge drm/drm-next into drm-xe-next
drm/xe: Use pointers in trace events

Maarten Lankhorst (6):
drm/xe/snapshot: Remove drm_err on guc alloc failures
drm/xe: Clear all snapshot members after deleting coredump
drm/xe: Add uapi for dumpable bos
drm/xe: Annotate each dumpable vma as such
drm/xe: Add vm snapshot mutex for easily taking a vm snapshot during devcoredump
drm/xe: Implement VM snapshot support for BO's and userptr

Matt Roper (5):
drm/xe/dg2: Drop pre-production workarounds
drm/xe/migrate: Cap PTEs written by MI_STORE_DATA_IMM to 510
drm/xe: Stash GMD_ID value in xe_gt
drm/xe: Grab mem_access when disabling C6 on skip_guc_pc platforms
drm/xe: Convert job timeouts from assert to warning

Matthew Auld (4):
drm/xe/exec: move fence reservation
drm/xe/exec: reserve fence slot for CPU bind
drm/xe/vm: don't ignore error when in_kthread
drm/xe/display: fix i915_gem_object_is_shmem() wrapper

Matthew Brost (25):
drm/xe: Fix UBSAN splat in add_preempt_fences()
drm/xe: Fix exec IOCTL long running exec queue ring full condition
drm/xe/guc: Only take actions in CT irq handler if CTs are enabled
drm/xe: Add build on bug to assert page fault queue works
drm/xe: Invert page fault queue head / tail
drm/xe: Add build on bug to assert access counter queue works
drm/xe: Invert access counter queue head / tail
drm/xe/guc: Add more GuC CT states
drm/xe: Move TLB invalidation reset before HW reset
drm/xe/guc: Flush G2H handler when turning off CTs
drm/xe: Only allow 1 ufence per exec / bind IOCTL
drm/xe: Make all GuC ABI shift values unsigned
drm/xe: Use LRC prefix rather than CTX prefix in lrc desc defines
drm/xe: Fix loop in vm_bind_ioctl_ops_unwind
drm/xe: Drop rebind argument from xe_pt_prepare_bind
drm/xe: Take a reference in xe_exec_queue_last_fence_get()
drm/xe: Pick correct userptr VMA to repin on REMAP op failure
drm/xe: Map both mem.kernel_bb_pool and usm.bb_pool
drm/xe: Assume large page size if VMA not yet bound
drm/xe: Remove TEST_VM_ASYNC_OPS_ERROR
drm/xe: Remove exec queue bind.fence_*
drm/xe: Fix xe_vma_set_pte_size
drm/xe: Add XE_VMA_PTE_64K VMA flag
drm/xe: Return 2MB page size for compact 64k PTEs
drm/xe: Add debug prints for skipping rebinds

Michal Wajdeczko (49):
drm/xe: Add command MI_LOAD_REGISTER_MEM
drm/xe: Define registers used by memory based irq processing
drm/xe: Update LRC context layout definitions
drm/xe: Update definition of GT_INTR_DW
drm/xe: Define IRQ offsets used by HW engines
drm/xe: Add XE_BO_NEEDS_UC flag to force UC mode instead WB
drm/xe/vf: Introduce Memory Based Interrupts Handler
drm/xe/vf: Update LRC with memory based interrupts data
drm/xe/vf: Setup memory based interrupts in GuC
drm/xe/vf: Add VF specific interrupt handler
drm/xe: Add GT oriented drm_printers
drm/xe: Report TLB timeout using GT oriented functions
drm/xe: Introduce GuC Doorbells Manager
drm/xe/kunit: Set SR-IOV mode of the fake device
drm/xe/kunit: Define helper functions to allocate fake xe device
drm/xe/kunit: Restore test->priv when done with fake xe device
drm/xe/kunit: Use xe kunit helper in RTP test
drm/xe/kunit: Use xe kunit helper in WA test
drm/xe/kunit: Enable CONFIG_LOCKDEP in tests
drm/xe/kunit: Add GuC Doorbells Manager tests
drm/xe: Allocate dedicated workqueue for SR-IOV workers
drm/xe: Define Virtual Function Identifier
drm/xe: Introduce GT-oriented SR-IOV logging macros
drm/xe/guc: Add helpers for HXG messages
drm/xe/guc: Update few GuC CTB ABI definitions
drm/xe/guc: Add Relay Communication ABI definitions
drm/xe/guc: Introduce Relay Communication for SR-IOV
drm/xe/kunit: Allow to replace xe_guc_ct_send_recv() with stub
drm/xe/kunit: Add GuC Relay kunit tests
drm/xe/guc: Start handling GuC Relay event messages
drm/xe: Fix compilation without CONFIG_KUNIT
drm/xe: Split GuC communication initialization
drm/xe/guc: Treat non-response message after BUSY as unexpected
drm/xe/guc: Return CTB response length
drm/xe/guc: Use HXG definitions on HXG messages
drm/xe: Allow to exclude part of GGTT from allocations
drm/xe: Fix potential deadlock in __fini_dbm
drm/xe: Use kstrdup while creating snapshot
drm/xe: Mark internal gmdid mappings as const
drm/xe/guc: Return CTB HXG response DATA0 if no buffer provided
drm/xe/guc: Add kernel-doc for xe_guc_ct_send_recv()
drm/xe/vf: Assume fixed GSM size if VF
drm/xe/vf: Don't try to capture engine data unavailable to VF
drm/xe/vf: Don't program MOCS if VF
drm/xe/vf: Don't initialize stolen memory manager if VF
drm/xe/vf: Don't check if LMEM is initialized if VF
drm/xe/vf: Don't enable hwmon if VF
drm/xe/vf: Don't program PAT if VF
drm/xe/vf: Don't support MCR registers if VF

Michał Winiarski (4):
drm/xe/guc: Allocate GuC data structures in system memory for initial load
drm/xe/huc: Realloc HuC FW in vram for post-hwconfig
drm/xe/guc: Move GuC power control init to "post-hwconfig"
drm/xe: Initialize GuC earlier during probe

Moti Haimovski (1):
drm/xe/vm: bugfix in xe_vm_create_ioctl

Nirmoy Das (2):
drm/xe/xe2: synchronise CS_CHICKEN1 with WMTP support
drm/xe/query: Use kzalloc for drm_xe_query_engines

Paul E. McKenney (1):
drm/xe: Fix build bug for GCC 11

Priyanka Dandamudi (1):
drm/xe/xe_bo_move: Enhance xe_bo_move trace

Riana Tauro (1):
drm/xe/pm: add debug logs for D3cold

Rodrigo Vivi (1):
drm/xe: Do not flood dmesg with guc log

Ruthuvikas Ravikumar (1):
drm/xe: Add mocs reset kunit

Shekhar Chauhan (2):
drm/xe/xe2_lpg: Add Wa_16018610683
drm/xe/xe2_lpg: Introduce performance guide changes

Sujaritha Sundaresan (2):
drm/xe: Add vram frequency sysfs attributes
drm/xe: Fix typo in vram frequency sysfs documentation

Suraj Kandpal (1):
drm/xe/gsc: Add status check during gsc header readout

Tejas Upadhyay (1):
drm/xe/xelpg: Extend Wa_14019877138 for Graphics 12.70/71

Thomas Hellström (15):
drm/xe/vm: Fix an error path
drm/xe: Use __iomem for the regs pointer
drm/xe: Annotate xe_mem_region::mapping with __iomem
drm/xe: Annotate multiple mmio pointers with __iomem
drm/xe: Annotate xe_ttm_stolen_mgr::mapping with __iomem
drm/xe/migrate: Fix CCS copy for small VRAM copy chunks
drm/xe/dmabuf: Make xe_dmabuf_ops static
drm/xe: Use a NULL pointer instead of 0.
drm/xe: Document nested struct members according to guidelines
drm/xe: Annotate mcr_[un]lock()
drm/xe: Don't use __user error pointers
drm/xe/vm: Subclass userptr vmas
drm/xe/vm: Avoid reserving zero fences
drm/xe/pt: Allow for stricter type- and range checking
drm/xe/uapi: Remove support for persistent exec_queues

Vinay Belgaumkar (1):
drm/xe: Check skip_guc_pc before setting SLPC flag

Vinod Govindapillai (1):
drm/xe: Modify the cfb size to be page size aligned for FBC

Xiaoming Wang (1):
drm/xe/display: Fix memleak in display initialization

drivers/gpu/drm/xe/.kunitconfig | 5 +
drivers/gpu/drm/xe/Kconfig | 2 +-
drivers/gpu/drm/xe/Makefile | 40 +-
drivers/gpu/drm/xe/abi/gsc_proxy_commands_abi.h | 44 +
drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h | 174 ++++
drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h | 3 +-
drivers/gpu/drm/xe/abi/guc_messages_abi.h | 2 +
drivers/gpu/drm/xe/abi/guc_relay_actions_abi.h | 79 ++
.../gpu/drm/xe/abi/guc_relay_communication_abi.h | 118 +++
.../xe/compat-i915-headers/gem/i915_gem_object.h | 2 +-
drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h | 10 +-
.../drm/xe/compat-i915-headers/i915_gem_stolen.h | 3 +
drivers/gpu/drm/xe/{ => display}/xe_display.c | 6 -
drivers/gpu/drm/xe/{ => display}/xe_display.h | 0
drivers/gpu/drm/xe/instructions/xe_mi_commands.h | 3 +
drivers/gpu/drm/xe/regs/xe_engine_regs.h | 6 +
drivers/gpu/drm/xe/regs/xe_gt_regs.h | 27 +-
drivers/gpu/drm/xe/regs/xe_lrc_layout.h | 9 +
drivers/gpu/drm/xe/regs/xe_pcode_regs.h | 21 +
drivers/gpu/drm/xe/tests/Makefile | 7 +-
drivers/gpu/drm/xe/tests/xe_guc_db_mgr_test.c | 201 +++++
drivers/gpu/drm/xe/tests/xe_guc_relay_test.c | 522 ++++++++++++
drivers/gpu/drm/xe/tests/xe_kunit_helpers.c | 90 ++
drivers/gpu/drm/xe/tests/xe_kunit_helpers.h | 17 +
drivers/gpu/drm/xe/tests/xe_mocs.c | 36 +
drivers/gpu/drm/xe/tests/xe_mocs_test.c | 2 +
drivers/gpu/drm/xe/tests/xe_mocs_test.h | 1 +
drivers/gpu/drm/xe/tests/xe_pci.c | 3 +
drivers/gpu/drm/xe/tests/xe_pci_test.c | 5 -
drivers/gpu/drm/xe/tests/xe_pci_test.h | 2 +
drivers/gpu/drm/xe/tests/xe_rtp_test.c | 10 +-
drivers/gpu/drm/xe/tests/xe_test_mod.c | 10 +
drivers/gpu/drm/xe/tests/xe_wa_test.c | 16 +-
drivers/gpu/drm/xe/xe_bo.c | 101 ++-
drivers/gpu/drm/xe/xe_bo.h | 7 +-
drivers/gpu/drm/xe/xe_bo_types.h | 3 +
drivers/gpu/drm/xe/xe_debugfs.c | 1 +
drivers/gpu/drm/xe/xe_devcoredump.c | 55 +-
drivers/gpu/drm/xe/xe_devcoredump.h | 6 +-
drivers/gpu/drm/xe/xe_devcoredump_types.h | 13 +-
drivers/gpu/drm/xe/xe_device.c | 114 ++-
drivers/gpu/drm/xe/xe_device.h | 14 +-
drivers/gpu/drm/xe/xe_device_types.h | 174 ++--
drivers/gpu/drm/xe/xe_drm_client.c | 12 +-
drivers/gpu/drm/xe/xe_exec.c | 42 +-
drivers/gpu/drm/xe/xe_exec_queue.c | 168 ++--
drivers/gpu/drm/xe/xe_exec_queue.h | 3 +-
drivers/gpu/drm/xe/xe_exec_queue_types.h | 59 +-
drivers/gpu/drm/xe/xe_execlist.c | 10 -
drivers/gpu/drm/xe/xe_ggtt.c | 81 +-
drivers/gpu/drm/xe/xe_ggtt.h | 3 +
drivers/gpu/drm/xe/xe_gsc.c | 71 +-
drivers/gpu/drm/xe/xe_gsc.h | 1 +
drivers/gpu/drm/xe/xe_gsc_proxy.c | 537 ++++++++++++
drivers/gpu/drm/xe/xe_gsc_proxy.h | 20 +
drivers/gpu/drm/xe/xe_gsc_submit.c | 20 +
drivers/gpu/drm/xe/xe_gsc_submit.h | 1 +
drivers/gpu/drm/xe/xe_gsc_types.h | 33 +
drivers/gpu/drm/xe/xe_gt.c | 92 +-
drivers/gpu/drm/xe/xe_gt.h | 2 +
drivers/gpu/drm/xe/xe_gt_idle.c | 4 +-
drivers/gpu/drm/xe/xe_gt_mcr.c | 17 +
drivers/gpu/drm/xe/xe_gt_pagefault.c | 40 +-
drivers/gpu/drm/xe/xe_gt_printk.h | 44 +
drivers/gpu/drm/xe/xe_gt_sriov_printk.h | 34 +
drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c | 13 +-
drivers/gpu/drm/xe/xe_gt_types.h | 118 +--
drivers/gpu/drm/xe/xe_guc.c | 115 ++-
drivers/gpu/drm/xe/xe_guc.h | 1 +
drivers/gpu/drm/xe/xe_guc_ads.c | 2 +-
drivers/gpu/drm/xe/xe_guc_ct.c | 255 ++++--
drivers/gpu/drm/xe/xe_guc_ct.h | 12 +-
drivers/gpu/drm/xe/xe_guc_ct_types.h | 22 +-
drivers/gpu/drm/xe/xe_guc_db_mgr.c | 266 ++++++
drivers/gpu/drm/xe/xe_guc_db_mgr.h | 22 +
drivers/gpu/drm/xe/xe_guc_fwif.h | 1 +
drivers/gpu/drm/xe/xe_guc_hwconfig.c | 2 +-
drivers/gpu/drm/xe/xe_guc_hxg_helpers.h | 108 +++
drivers/gpu/drm/xe/xe_guc_log.c | 2 +-
drivers/gpu/drm/xe/xe_guc_pc.c | 19 +-
drivers/gpu/drm/xe/xe_guc_pc.h | 1 -
drivers/gpu/drm/xe/xe_guc_relay.c | 941 +++++++++++++++++++++
drivers/gpu/drm/xe/xe_guc_relay.h | 37 +
drivers/gpu/drm/xe/xe_guc_relay_types.h | 36 +
drivers/gpu/drm/xe/xe_guc_submit.c | 87 +-
drivers/gpu/drm/xe/xe_guc_submit.h | 4 +-
drivers/gpu/drm/xe/xe_guc_submit_types.h | 18 +-
drivers/gpu/drm/xe/xe_guc_types.h | 47 +-
drivers/gpu/drm/xe/xe_heci_gsc.c | 2 +-
drivers/gpu/drm/xe/xe_huc.c | 19 +
drivers/gpu/drm/xe/xe_huc.h | 1 +
drivers/gpu/drm/xe/xe_hw_engine.c | 144 ++--
drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.c | 38 +-
drivers/gpu/drm/xe/xe_hw_engine_types.h | 82 +-
drivers/gpu/drm/xe/xe_hwmon.c | 32 +-
drivers/gpu/drm/xe/xe_irq.c | 136 ++-
drivers/gpu/drm/xe/xe_lrc.c | 38 +
drivers/gpu/drm/xe/xe_lrc_types.h | 6 +-
drivers/gpu/drm/xe/xe_memirq.c | 430 ++++++++++
drivers/gpu/drm/xe/xe_memirq.h | 26 +
drivers/gpu/drm/xe/xe_memirq_types.h | 37 +
drivers/gpu/drm/xe/xe_migrate.c | 53 +-
drivers/gpu/drm/xe/xe_mmio.c | 9 +-
drivers/gpu/drm/xe/xe_mocs.c | 27 +-
drivers/gpu/drm/xe/xe_pat.c | 5 +
drivers/gpu/drm/xe/xe_pci.c | 10 +-
drivers/gpu/drm/xe/xe_pcode_api.h | 7 +
drivers/gpu/drm/xe/xe_pm.c | 38 +-
drivers/gpu/drm/xe/xe_pm.h | 1 +
drivers/gpu/drm/xe/xe_pt.c | 55 +-
drivers/gpu/drm/xe/xe_pt_walk.c | 2 +-
drivers/gpu/drm/xe/xe_pt_walk.h | 19 +-
drivers/gpu/drm/xe/xe_query.c | 50 +-
drivers/gpu/drm/xe/xe_range_fence.c | 7 +-
drivers/gpu/drm/xe/xe_reg_whitelist.c | 8 +
drivers/gpu/drm/xe/xe_ring_ops.c | 60 +-
drivers/gpu/drm/xe/xe_sched_job.c | 39 +-
drivers/gpu/drm/xe/xe_sched_job.h | 5 +
drivers/gpu/drm/xe/xe_sched_job_types.h | 11 +-
drivers/gpu/drm/xe/xe_sriov.c | 32 +
drivers/gpu/drm/xe/xe_sriov.h | 1 +
drivers/gpu/drm/xe/xe_sriov_types.h | 12 +
drivers/gpu/drm/xe/xe_sync.c | 2 -
drivers/gpu/drm/xe/xe_tile_sysfs.c | 3 +
drivers/gpu/drm/xe/xe_trace.h | 55 +-
drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c | 8 +-
drivers/gpu/drm/xe/xe_tuning.c | 9 +-
drivers/gpu/drm/xe/xe_uc.c | 33 +-
drivers/gpu/drm/xe/xe_uc.h | 1 +
drivers/gpu/drm/xe/xe_uc_fw.c | 60 +-
drivers/gpu/drm/xe/xe_uc_fw_types.h | 9 +-
drivers/gpu/drm/xe/xe_vm.c | 287 ++++++-
drivers/gpu/drm/xe/xe_vm.h | 7 +-
drivers/gpu/drm/xe/xe_vm_types.h | 18 +-
drivers/gpu/drm/xe/xe_vram_freq.c | 128 +++
drivers/gpu/drm/xe/xe_vram_freq.h | 13 +
drivers/gpu/drm/xe/xe_wa.c | 191 +----
drivers/gpu/drm/xe/xe_wa_oob.rules | 12 +-
drivers/gpu/drm/xe/xe_wait_user_fence.c | 2 +-
drivers/gpu/drm/xe/xe_wopcm_types.h | 4 +-
include/uapi/drm/xe_drm.h | 34 +-
141 files changed, 6518 insertions(+), 1187 deletions(-)
create mode 100644 drivers/gpu/drm/xe/abi/gsc_proxy_commands_abi.h
create mode 100644 drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h
create mode 100644 drivers/gpu/drm/xe/abi/guc_relay_actions_abi.h
create mode 100644 drivers/gpu/drm/xe/abi/guc_relay_communication_abi.h
rename drivers/gpu/drm/xe/{ => display}/xe_display.c (99%)
rename drivers/gpu/drm/xe/{ => display}/xe_display.h (100%)
create mode 100644 drivers/gpu/drm/xe/regs/xe_pcode_regs.h
create mode 100644 drivers/gpu/drm/xe/tests/xe_guc_db_mgr_test.c
create mode 100644 drivers/gpu/drm/xe/tests/xe_guc_relay_test.c
create mode 100644 drivers/gpu/drm/xe/tests/xe_kunit_helpers.c
create mode 100644 drivers/gpu/drm/xe/tests/xe_kunit_helpers.h
create mode 100644 drivers/gpu/drm/xe/tests/xe_test_mod.c
create mode 100644 drivers/gpu/drm/xe/xe_gsc_proxy.c
create mode 100644 drivers/gpu/drm/xe/xe_gsc_proxy.h
create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_printk.h
create mode 100644 drivers/gpu/drm/xe/xe_guc_db_mgr.c
create mode 100644 drivers/gpu/drm/xe/xe_guc_db_mgr.h
create mode 100644 drivers/gpu/drm/xe/xe_guc_hxg_helpers.h
create mode 100644 drivers/gpu/drm/xe/xe_guc_relay.c
create mode 100644 drivers/gpu/drm/xe/xe_guc_relay.h
create mode 100644 drivers/gpu/drm/xe/xe_guc_relay_types.h
create mode 100644 drivers/gpu/drm/xe/xe_memirq.c
create mode 100644 drivers/gpu/drm/xe/xe_memirq.h
create mode 100644 drivers/gpu/drm/xe/xe_memirq_types.h
create mode 100644 drivers/gpu/drm/xe/xe_vram_freq.c
create mode 100644 drivers/gpu/drm/xe/xe_vram_freq.h