On Sun, Feb 25, 2024 at 09:21:00PM -0600, Lucas De Marchi wrote: > 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@xxxxxxxxxxxxxxxx/. > 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@xxxxxxxxxxxxxxxxxxxxxx/drm/xe/kernel.git tags/drm-xe-next-2024-02-25 Merged to drm-next, thanks a lot! -Sima > > 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 -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch