[PULL] drm-xe-next

Lucas De Marchi lucas.demarchi at intel.com
Mon Feb 26 03:21:00 UTC 2024


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


More information about the Intel-gfx mailing list