mbox series

[PULL] drm-xe-next

Message ID ZmItmuf7vq_xvRjJ@intel.com (mailing list archive)
State New, archived
Headers show
Series [PULL] drm-xe-next | expand

Pull-request

https://gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-next-2024-06-06

Message

Rodrigo Vivi June 6, 2024, 9:43 p.m. UTC
Hi Dave and Sima,

Here goes our first Xe pull request targeting 6.11.

A very active round, with highlight to many changes targeting
SR-IOV support and many different clean-ups.

Thanks,
Rodrigo.

drm-xe-next-2024-06-06:
UAPI Changes:
- Expose the L3 bank mask (Francois)

Cross-subsystem Changes:
- Update Xe driver maintainers (Oded)

Display (i915):
- Add missing include to intel_vga.c (Michal Wajdeczko)

Driver Changes:
- Fix Display (xe-only) detection for ADL-N (Lucas)
- Runtime PM fixes that enabled PC-10 and D3Cold (Francois, Rodrigo)
- Fix unexpected silent drm backmerge issues (Thomas)
- More (a lot more) preparation for SR-IOV support (Michal Wajdeczko)
- Devcoredump fixes and improvements (Jose, Tejas, Matt Brost)
- Introduce device 'wedged' state (Rodrigo)
- Improve debug and info messages (Michal Wajdeczko, Rodrigo, Nirmoy)
- Adding or fixing workarounds (Tejas, Shekhar, Lucas, Bommu)
- Check result of drmm_mutex_init (Michal Wajdeczko)
- Enlarge the critical dma fence area for preempt fences (Matt Auld)
- Prevent UAF in VM's rebind work (Matt Auld)
- GuC submit related clean-ups and fixes (Matt Brost, Himal, Jonathan, Niranjana)
- Prefer local helpers to perform dma reservation locking (Himal)
- Spelling and typo fixes (Colin, Francois)
- Prep patches for 1 job per VM bind IOCTL (no uapi change yet) (Matt Brost)
- Remove uninitialized end var from xe_gt_tlb_invalidation_range (Nirmoy)
- GSC related changes targeting LNL support (Daniele)
- Fix assert in L3 bank mask generation (Francois)
- Perform dma_map when moving system buffer objects to TT (Thomas)
- Add helpers for manipulating macro arguments (Michal Wajdeczko)
- Refactor default device atomic settings (Nirmoy)
- Add debugfs node to dump mocs (Janga)
- Use ordered WQ for G2H handler (Matt Brost)
- Clean up and fixes in header includes (Michal Wajdeczko)
- Prefer flexible-array over deprecated zero-lenght ones (Lucas)
- Add Indirect Ring State support (Niranjana)
- Fix UBSAN shift-out-of-bounds failure (Shuicheng)
- HWMon fixes and additions (Karthik)
- Clean-up refactor around probe init functions (Lucas, Michal Wajdeczko)
- Fix PCODE init function (Himal)
- Only use reserved BCS instances for usm migrate exec queue (Matt Brost)
- Only zap PTEs as needed (Matt Brost)
- Per client usage info (Lucas)
- Core hotunplug improvements converting stuff towards devm (Matt Auld)
- Don't emit false error if running in execlist mode (Michal Wajdeczko)
- Remove unused struct (Dr. David)
- Support/debug for slow GuC loads (John Harrison)
- Decouple job seqno and lrc seqno (Matt Brost)
- Allow migrate vm gpu submissions from reclaim context (Thomas)
- Rename drm-client running time to run_ticks and fix a UAF (Umesh)
- Check empty pinned BO list with lock held (Nirmoy)
- Drop undesired prefix from the platform name (Michal Wajdeczko)
- Remove unwanted mutex locking on xe file close (Niranjana)
- Replace format-less snprintf() with strscpy() (Arnd)
- Other general clean-ups on registers definitions and function names (Michal Wajdeczko)
- Add kernel-doc to some xe_lrc interfaces (Niranajana)
- Use missing lock in relay_needs_worker (Nirmoy)
- Drop redundant W=1 warnings from Makefile (Jani)
- Simplify if condition in preempt fences code (Thorsten)
- Flush engine buffers before signalling user fence on all engines (Andrzej)
- Don't overmap identity VRAM mapping (Matt Brost)
- Do not dereference NULL job->fence in trace points (Matt Brost)
- Add synchronous gt reset debugfs (Jonathan)
- Xe gt_idle fixes (Riana)

The following changes since commit 4a56c0ed5aa0bcbe1f5f7d755fb1fe1ebf48ae9c:

  Merge tag 'amd-drm-next-6.10-2024-04-26' of https://gitlab.freedesktop.org/agd5f/linux into drm-next (2024-04-30 14:43:00 +1000)

are available in the Git repository at:

  https://gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-next-2024-06-06

for you to fetch changes up to 6800e63cf97bae62bca56d8e691544540d945f53:

  drm/xe: move disable_c6 call (2024-06-06 15:07:19 -0400)

----------------------------------------------------------------
UAPI Changes:
- Expose the L3 bank mask (Francois)

Cross-subsystem Changes:
- Update Xe driver maintainers (Oded)

Display (i915):
- Add missing include to intel_vga.c (Michal Wajdeczko)

Driver Changes:
- Fix Display (xe-only) detection for ADL-N (Lucas)
- Runtime PM fixes that enabled PC-10 and D3Cold (Francois, Rodrigo)
- Fix unexpected silent drm backmerge issues (Thomas)
- More (a lot more) preparation for SR-IOV support (Michal Wajdeczko)
- Devcoredump fixes and improvements (Jose, Tejas, Matt Brost)
- Introduce device 'wedged' state (Rodrigo)
- Improve debug and info messages (Michal Wajdeczko, Rodrigo, Nirmoy)
- Adding or fixing workarounds (Tejas, Shekhar, Lucas, Bommu)
- Check result of drmm_mutex_init (Michal Wajdeczko)
- Enlarge the critical dma fence area for preempt fences (Matt Auld)
- Prevent UAF in VM's rebind work (Matt Auld)
- GuC submit related clean-ups and fixes (Matt Brost, Himal, Jonathan, Niranjana)
- Prefer local helpers to perform dma reservation locking (Himal)
- Spelling and typo fixes (Colin, Francois)
- Prep patches for 1 job per VM bind IOCTL (no uapi change yet) (Matt Brost)
- Remove uninitialized end var from xe_gt_tlb_invalidation_range (Nirmoy)
- GSC related changes targeting LNL support (Daniele)
- Fix assert in L3 bank mask generation (Francois)
- Perform dma_map when moving system buffer objects to TT (Thomas)
- Add helpers for manipulating macro arguments (Michal Wajdeczko)
- Refactor default device atomic settings (Nirmoy)
- Add debugfs node to dump mocs (Janga)
- Use ordered WQ for G2H handler (Matt Brost)
- Clean up and fixes in header includes (Michal Wajdeczko)
- Prefer flexible-array over deprecated zero-lenght ones (Lucas)
- Add Indirect Ring State support (Niranjana)
- Fix UBSAN shift-out-of-bounds failure (Shuicheng)
- HWMon fixes and additions (Karthik)
- Clean-up refactor around probe init functions (Lucas, Michal Wajdeczko)
- Fix PCODE init function (Himal)
- Only use reserved BCS instances for usm migrate exec queue (Matt Brost)
- Only zap PTEs as needed (Matt Brost)
- Per client usage info (Lucas)
- Core hotunplug improvements converting stuff towards devm (Matt Auld)
- Don't emit false error if running in execlist mode (Michal Wajdeczko)
- Remove unused struct (Dr. David)
- Support/debug for slow GuC loads (John Harrison)
- Decouple job seqno and lrc seqno (Matt Brost)
- Allow migrate vm gpu submissions from reclaim context (Thomas)
- Rename drm-client running time to run_ticks and fix a UAF (Umesh)
- Check empty pinned BO list with lock held (Nirmoy)
- Drop undesired prefix from the platform name (Michal Wajdeczko)
- Remove unwanted mutex locking on xe file close (Niranjana)
- Replace format-less snprintf() with strscpy() (Arnd)
- Other general clean-ups on registers definitions and function names (Michal Wajdeczko)
- Add kernel-doc to some xe_lrc interfaces (Niranajana)
- Use missing lock in relay_needs_worker (Nirmoy)
- Drop redundant W=1 warnings from Makefile (Jani)
- Simplify if condition in preempt fences code (Thorsten)
- Flush engine buffers before signalling user fence on all engines (Andrzej)
- Don't overmap identity VRAM mapping (Matt Brost)
- Do not dereference NULL job->fence in trace points (Matt Brost)
- Add synchronous gt reset debugfs (Jonathan)
- Xe gt_idle fixes (Riana)

----------------------------------------------------------------
Andrzej Hajda (4):
      drm/xe: flush gtt before signalling user fence on all engines
      drm/xe: allow unaligned start and size xe_res_cursor parameters
      Revert "drm/xe: flush gtt before signalling user fence on all engines"
      drm/xe: flush engine buffers before signalling user fence on all engines

Arnd Bergmann (1):
      drm/xe: replace format-less snprintf() with strscpy()

Bommu Krishnaiah (1):
      drm/xe/xe2: Add workaround 14021402888

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

Daniele Ceraolo Spurio (3):
      drm/xe/gsc: Turn off GSCCS interrupts when disabling the engine
      drm/xe/gsc: define GSCCS for LNL
      Revert "drm/xe: make gt_remove use devm"

Dr. David Alan Gilbert (1):
      drm/xe: remove unused struct 'xe_gt_desc'

Francois Dugast (4):
      drm/xe/gt: Fix assert in L3 bank mask generation
      drm/xe/debugfs: Get a runtime_pm reference when setting wedged mode
      drm/xe/vm_doc: Fix some typos
      drm/xe/uapi: Expose the L3 bank mask

Himal Prasad Ghimiray (5):
      drm/xe/vm: Use xe_vm_lock()/xe_vm_unlock() helpers
      drm/xe: Use xe_bo_lock()/xe_bo_unlock() helpers
      drm/xe: Change xe_guc_submit_stop return to void
      drm/xe: Change pcode timeout to 50msec while polling again
      drm/xe: Fix the warning conditions

Janga Rahul Kumar (2):
      drm/xe: Relocate regs_are_mcr function
      drm/xe/mocs: Add debugfs node to dump mocs

Jani Nikula (1):
      drm/xe: drop redundant W=1 warnings from Makefile

John Harrison (3):
      drm/xe: Make read_perf_limit_reasons globally accessible
      drm/xe/guc: Port over the slow GuC loading support from i915
      drm/xe/guc: Fix uninitialised count in GuC load debug prints

Jonathan Cavitt (4):
      drm/xe/xe_guc_submit: Fix exec queue stop race condition
      drm/xe/xe_guc_submit: Allow lr exec queues to be banned
      drm/xe/xe_guc_submit: Declare reset if banned or killed or wedged
      drm/xe/xe_gt_debugfs: Add synchronous gt reset debugfs

José Roberto de Souza (6):
      drm/xe: Store xe_hw_engine in xe_hw_engine_snapshot
      drm/xe: Add helpers to loop over geometry and compute DSS
      drm/xe: Add INSTDONE registers to devcoredump
      drm/xe: Replace RING_START_UDW by u64 RING_START
      drm/xe: Add process name to devcoredump
      drm/xe: Nuke simple error capture

Karthik Poosa (3):
      drm/xe/hwmon: Remove unwanted write permission for currN_label
      drm/xe/hwmon: Add HWMON support for BMG
      drm/xe/hwmon: Expose card power and energy attributes of BMG

Lucas De Marchi (14):
      drm/xe/display: Fix ADL-N detection
      drm/xe: Merge 16021540221 and 18034896535 WAs
      drm/xe/ads: Use flexible-array
      drm/xe: Drop __engine_mask
      drm/xe: Drop useless forcewake get/put
      drm/xe: Move xe_gt_init_early() where it belongs
      drm/xe: Move xe_force_wake_init_gt() inside gt initialization
      drm/xe: Move sw-only pcode initialization
      drm/xe: Promote xe_hw_engine_class_to_str()
      drm/xe: Add XE_ENGINE_CLASS_OTHER to str conversion
      drm/xe: Add helper to capture engine timestamp
      drm/xe: Cache data about user-visible engines
      drm/xe: Add helper to return any available hw engine
      drm/xe/client: Print runtime to fdinfo

Matt Roper (1):
      drm/xe: Don't refer to general LRC initialization as a "wa"

Matthew Auld (21):
      drm/xe/preempt_fence: enlarge the fence critical section
      Revert "drm/xe/vm: drop vm->destroy_work"
      drm/xe/vm: prevent UAF in rebind_work_func()
      drm/xe/pci: remove broken driver_release
      drm/xe: covert sysfs over to devm
      drm/xe/ggtt: use drm_dev_enter to mark device section
      drm/xe/guc: move guc_fini over to devm
      drm/xe/guc: s/guc_fini/guc_fini_hw/
      drm/xe/guc_pc: move pc_fini to devm
      drm/xe/guc_pc: s/pc_fini/pc_fini_hw/
      drm/xe/irq: move irq_uninstall over to devm
      drm/xe/device: move flr to devm
      drm/xe/device: move xe_device_sanitize over to devm
      drm/xe/coredump: move over to devm
      drm/xe/gt: break out gt_fini into sw vs hw state
      drm/xe: make gt_remove use devm
      drm/xe/mmio: move mmio_fini over to devm
      drm/xe: reset mmio mappings with devm
      drm/xe/display: move display fini stuff to devm
      drm/xe/display: stop calling domains_driver_remove twice
      drm/xe/display: move device_remove over to drmm

Matthew Brost (26):
      drm/xe: Delete unused GuC submission_state.suspend
      drm/xe: s/ENGINE_STATE_ENABLED/EXEC_QUEUE_STATE_ENABLED
      drm/xe: s/ENGINE_STATE_SUSPENDED/EXEC_QUEUE_STATE_SUSPENDED
      drm/xe: s/ENGINE_STATE_KILLED/EXEC_QUEUE_STATE_KILLED
      drm/xe: Fix alignment in GuC exec queue state defines
      drm/xe: Replace engine references with exec queue in xe_guc_submit.c
      drm/xe: Lock all gpuva ops during VM bind IOCTL
      drm/xe: Add ops_execute function which returns a fence
      drm/xe: Move migrate to prefetch to op_lock_and_prep function
      drm/xe: Add struct xe_vma_ops abstraction
      drm/xe: Use xe_vma_ops to implement xe_vm_rebind
      drm/xe: Simplify VM bind IOCTL error handling and cleanup
      drm/xe: Use xe_vma_ops to implement page fault rebinds
      drm/xe: Add some members to xe_vma_ops
      drm/xe: Add vm_bind_ioctl_ops_fini helper
      drm/xe: Move ufence check to op_lock_and_prep
      drm/xe: Move ufence add to vm_bind_ioctl_ops_fini
      drm/xe: Add xe_gt_tlb_invalidation_range and convert PT layer to use this
      drm/xe: Delete PT update selftest
      drm/xe: Use ordered WQ for G2H handler
      drm/xe: Only use reserved BCS instances for usm migrate exec queue
      drm/xe: Only zap PTEs as needed
      drm/xe: Decouple job seqno and lrc seqno
      drm/xe: Fix NULL ptr dereference in devcoredump
      drm/xe: Don't overmap identity VRAM mapping
      drm/xe: Do not dereference NULL job->fence in trace points

Michal Wajdeczko (79):
      drm/xe/guc: Add GuC Relay ABI version 1.0 definitions
      drm/xe: Add helper to calculate adjusted register offset
      drm/xe: Add few more GT register definitions
      drm/xe/pf: Add SR-IOV GuC Relay PF services
      drm/xe/kunit: Add PF service tests
      drm/xe/pf: Expose SR-IOV VFs configuration over debugfs
      drm/xe/pf: Expose SR-IOV VF control commands over debugfs
      drm/xe/pf: Expose SR-IOV policy settings over debugfs
      drm/xe/guc: Update VF configuration KLVs definitions
      drm/xe/pf: Clamp maximum execution quantum to 100s
      drm/xe/guc: Improve GuC doorbell/context ID manager intro message
      drm/xe: Check result of drmm_mutex_init()
      drm/xe/pf: Expose PF service details via debugfs
      drm/xe/guc: Fix typos in VF CFG KLVs descriptions
      drm/xe/pf: Re-initialize SR-IOV specific HW settings
      drm/xe/pf: Initialize and update PF services on driver init
      drm/xe: Add helpers for manipulating macro arguments
      drm/xe/kunit: Add simple tests for new xe_args macros
      drm/xe/rtp: Prefer helper macros from xe_args.h
      drm/xe: Fix xe_mocs.h
      drm/xe: Don't rely on xe_assert.h to be included elsewhere
      drm/xe: Don't rely on xe_force_wake.h to be included elsewhere
      drm/xe: Fix xe_device.h
      drm/xe: Move xe_gpu_commands.h file to instructions/
      drm/xe: Rename few xe_args.h macros
      drm/xe: Fix xe_gt_throttle_sysfs.h
      drm/xe: Fix xe_guc_ads.h
      drm/xe: Fix xe_lrc.h
      drm/xe: Fix xe_reg_sr.h
      drm/xe/uc: Reorder post hwconfig uC initialization step
      drm/xe/uc: Move GuC submission init to post hwconfig step
      drm/xe/pf: Don't advertise support to enable VFs if not ready
      drm/xe/pf: Implement pci_driver.sriov_configure callback
      drm/xe/guc: Add more KLV helper macros
      drm/xe/guc: Introduce GuC KLV thresholds set
      drm/xe/guc: Add support for threshold KLVs in to_string() helper
      drm/xe/pf: Introduce functions to configure VF thresholds
      drm/xe/pf: Allow configuration of VF thresholds over debugfs
      drm/xe/guc: Add GUC2PF_ADVERSE_EVENT to ABI
      drm/xe/pf: Track adverse events notifications from GuC
      drm/xe/pf: Expose PF monitor details via debugfs
      drm/xe/guc: Add VF2GUC_MATCH_VERSION to ABI
      drm/xe/guc: Add VF2GUC_VF_RESET to ABI
      drm/xe/guc: Add VF2GUC_QUERY_SINGLE_KLV to ABI
      drm/xe/vf: Add support for VF to query its configuration
      drm/xe/vf: Custom hardware config load step if VF
      drm/xe/vf: Expose SR-IOV VF attributes to GT debugfs
      drm/xe: Fix xe_uc.h
      drm/xe: Fix xe_gsc.h
      drm/xe: Fix xe_huc.h
      drm/xe: Fix xe_guc_pc.h
      drm/i915/display: Add missing include to intel_vga.c
      drm/xe: Don't rely on indirect includes from xe_mmio.h
      drm/xe: Cleanup xe_mmio.h
      drm/xe/guc: Allow to initialize submission with limited set of IDs
      drm/xe/vf: Custom GuC initialization if VF
      drm/xe/uc: Don't emit false error if running in execlist mode
      drm/xe/vf: Use register values obtained from the PF
      drm/xe/guc: Add GLOBAL_CFG_GMD_ID KLV definition
      drm/xe/vf: Obtain value of GMDID register from GuC
      drm/xe/vf: Provide early access to GMDID register
      drm/xe/vf: Cache value of the GMDID register
      drm/xe/vf: Treat GMDID as another runtime register
      drm/xe/vf: Read VF configuration prior to GGTT initialization
      drm/xe/vf: Use only assigned GGTT region
      drm/xe: Store platform name in xe_device.info
      drm/xe: Use platform name in xe_assert()
      drm/xe: Drop undesired prefix from the platform name
      drm/xe: Move XEHP_MTCFG_ADDR register definition to xe_regs.h
      drm/xe: Move BAR definitions to dedicated file
      drm/xe: Drop xe_ prefix from static functions in xe_mmio.c
      drm/xe: Promote VRAM initialization function to own file
      drm/xe/vf: Setup VRAM based on received config data
      drm/xe: Split MCR initialization
      drm/xe/pf: Update the LMTT when freeing VF GT config
      drm/xe/vf: Support only GuC/HuC firmwares
      drm/xe/vf: Custom uC initialization
      drm/xe/vf: Custom GuC reset
      drm/xe/vf: Custom GT restart

Niranjana Vishwanathapura (8):
      drm/xe: Minor cleanup in LRC handling
      drm/xe: Add Indirect Ring State support
      drm/xe: Dump Indirect Ring State registers
      drm/xe/xe2: Enable Indirect Ring State support for Xe2
      drm/xe: Properly handle alloc_guc_id() failure
      drm/xe: Remove unwanted mutex locking
      drm/xe: Decouple xe_exec_queue and xe_lrc
      drm/xe: Add kernel-doc to some xe_lrc interfaces

Nirmoy Das (11):
      drm/xe: Remove uninitialized end var from xe_gt_tlb_invalidation_range()
      drm/xe: Introduce has_atomic_enable_pte_bit device info
      drm/xe: Move vm bind bo validation to a helper function
      drm/xe: Introduce has_device_atomics_on_smem device info
      drm/xe: Add function to check if BO has single placement
      drm/xe: Refactor default device atomic settings
      drm/xe: Add warn when level can not be zero.
      drm/xe/tests: Use uninterruptible VM lock
      drm/xe: Check empty pinned BO list with lock held.
      drm/xe: Add engine name to the engine reset and cat-err log
      drm/xe: Use missing lock in relay_needs_worker

Oded Gabbay (1):
      MAINTAINERS: update Xe driver maintainers

Riana Tauro (4):
      drm/xe: Standardize power gate registers
      drm/xe: Enable Coarse Power Gating
      drm/xe/xe_gt_idle: use GT forcewake domain assertion
      drm/xe: move disable_c6 call

Rodrigo Vivi (13):
      drm/xe: make xe_pm_runtime_lockdep_map a static struct
      drm/xe: Introduce a simple wedged state
      drm/xe: declare wedged upon GuC load failure
      drm/xe: Force wedged state and block GT reset upon any GPU hang
      drm/xe: Introduce the wedged_mode debugfs
      drm/xe: Demote CCS_MODE info to debug only
      drm/xe: Fix xe_pm_runtime_get_if_active return
      drm/xe: Fix xe_pm_runtime_get_if_in_use documentation
      drm/xe: Relax runtime pm protection during execution
      drm/xe: Relax runtime pm protection around VM
      drm/xe: Prepare display for D3Cold
      drm/xe: Stop checking for power_lost on D3Cold
      drm/xe: Enable D3Cold on 'low' VRAM utilization

Shekhar Chauhan (1):
      drm/xe/xe2hpg: Add Wa_14021490052

Shuicheng Lin (1):
      drm/xe: Fix UBSAN shift-out-of-bounds failure

Tejas Upadhyay (4):
      drm/xe/xe2: Add workaround 14021567978
      drm/xe: skip error capture when exec queue is killed
      drm/xe/xe2lpm: Add permanent Wa_14020756599
      drm/xe/xe2lpg: Add permanent wa_14020756599

Thomas Hellström (7):
      drm/xe: Fix unexpected backmerge results
      Merge drm/drm-next into drm-xe-next
      drm/xe: Perform dma_map when moving system buffer objects to TT
      drm/xe: Split lrc seqno fence creation up
      drm/xe: Don't initialize fences at xe_sched_job_create()
      drm/xe: Remove xe_lrc_create_seqno_fence()
      drm/xe: Move job creation out of the struct xe_migrate::job_mutex

Thorsten Blum (1):
      drm/xe/vm: Simplify if condition

Umesh Nerlige Ramappa (4):
      drm/xe/lrc: Add helper to capture context timestamp
      drm/xe: Add helper to accumulate exec queue runtime
      drm/xe: Use run_ticks instead of runtime for client stats
      drm/xe: Do not access xe file when updating exec queue run_ticks

 Documentation/gpu/drm-usage-stats.rst              |  21 +-
 Documentation/gpu/xe/index.rst                     |   1 +
 Documentation/gpu/xe/xe-drm-usage-stats.rst        |  10 +
 MAINTAINERS                                        |   1 -
 drivers/gpu/drm/i915/display/intel_vga.c           |   1 +
 drivers/gpu/drm/xe/Kconfig.debug                   |  10 -
 drivers/gpu/drm/xe/Makefile                        |  34 +-
 drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h     | 190 ++++
 drivers/gpu/drm/xe/abi/guc_errors_abi.h            |  26 +-
 drivers/gpu/drm/xe/abi/guc_klvs_abi.h              |  40 +-
 drivers/gpu/drm/xe/abi/guc_relay_actions_abi.h     | 170 +++-
 drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h  |   3 +-
 drivers/gpu/drm/xe/display/xe_display.c            |  43 +-
 drivers/gpu/drm/xe/display/xe_display.h            |  12 +-
 drivers/gpu/drm/xe/display/xe_hdcp_gsc.c           |   1 +
 .../xe/{regs => instructions}/xe_gpu_commands.h    |   0
 drivers/gpu/drm/xe/regs/xe_bars.h                  |  11 +
 drivers/gpu/drm/xe/regs/xe_engine_regs.h           |  10 +-
 drivers/gpu/drm/xe/regs/xe_gt_regs.h               |  67 +-
 drivers/gpu/drm/xe/regs/xe_guc_regs.h              |   2 +
 drivers/gpu/drm/xe/regs/xe_lrc_layout.h            |   8 +
 drivers/gpu/drm/xe/regs/xe_pcode_regs.h            |   7 +
 drivers/gpu/drm/xe/regs/xe_regs.h                  |   3 +
 drivers/gpu/drm/xe/regs/xe_sriov_regs.h            |   3 +
 drivers/gpu/drm/xe/tests/Makefile                  |   1 +
 drivers/gpu/drm/xe/tests/xe_args_test.c            | 221 +++++
 .../gpu/drm/xe/tests/xe_gt_sriov_pf_service_test.c | 232 +++++
 drivers/gpu/drm/xe/tests/xe_migrate.c              |  88 +-
 drivers/gpu/drm/xe/xe_args.h                       | 143 +++
 drivers/gpu/drm/xe/xe_assert.h                     |   4 +-
 drivers/gpu/drm/xe/xe_bb.c                         |   2 +-
 drivers/gpu/drm/xe/xe_bo.c                         |  71 +-
 drivers/gpu/drm/xe/xe_bo.h                         |   1 +
 drivers/gpu/drm/xe/xe_debugfs.c                    |  58 ++
 drivers/gpu/drm/xe/xe_devcoredump.c                |  19 +-
 drivers/gpu/drm/xe/xe_devcoredump_types.h          |   2 +
 drivers/gpu/drm/xe/xe_device.c                     | 107 ++-
 drivers/gpu/drm/xe/xe_device.h                     |  13 +-
 drivers/gpu/drm/xe/xe_device_sysfs.c               |   4 +-
 drivers/gpu/drm/xe/xe_device_types.h               |  23 +-
 drivers/gpu/drm/xe/xe_drm_client.c                 | 124 ++-
 drivers/gpu/drm/xe/xe_exec_queue.c                 |  77 +-
 drivers/gpu/drm/xe/xe_exec_queue.h                 |  10 +
 drivers/gpu/drm/xe/xe_exec_queue_types.h           |  16 +-
 drivers/gpu/drm/xe/xe_execlist.c                   |  12 +-
 drivers/gpu/drm/xe/xe_ggtt.c                       |  32 +-
 drivers/gpu/drm/xe/xe_gsc.c                        |   3 +
 drivers/gpu/drm/xe/xe_gsc.h                        |   3 +-
 drivers/gpu/drm/xe/xe_gsc_proxy.c                  |   1 +
 drivers/gpu/drm/xe/xe_gsc_submit.c                 |   1 +
 drivers/gpu/drm/xe/xe_gt.c                         | 142 ++-
 drivers/gpu/drm/xe/xe_gt.h                         |  27 +
 drivers/gpu/drm/xe/xe_gt_ccs_mode.c                |  10 +-
 drivers/gpu/drm/xe/xe_gt_clock.c                   |   1 +
 drivers/gpu/drm/xe/xe_gt_debugfs.c                 |  31 +
 drivers/gpu/drm/xe/xe_gt_freq.c                    |   8 +-
 drivers/gpu/drm/xe/xe_gt_idle.c                    |  66 +-
 drivers/gpu/drm/xe/xe_gt_idle.h                    |   4 +-
 drivers/gpu/drm/xe/xe_gt_mcr.c                     |  27 +-
 drivers/gpu/drm/xe/xe_gt_mcr.h                     |  25 +
 drivers/gpu/drm/xe/xe_gt_pagefault.c               |  16 +-
 drivers/gpu/drm/xe/xe_gt_sriov_pf.c                |  32 +
 drivers/gpu/drm/xe/xe_gt_sriov_pf.h                |   5 +
 drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c         | 106 ++-
 drivers/gpu/drm/xe/xe_gt_sriov_pf_config.h         |   6 +
 drivers/gpu/drm/xe/xe_gt_sriov_pf_config_types.h   |   4 +
 drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c        | 427 +++++++++
 drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.h        |  18 +
 drivers/gpu/drm/xe/xe_gt_sriov_pf_monitor.c        | 147 ++++
 drivers/gpu/drm/xe/xe_gt_sriov_pf_monitor.h        |  27 +
 drivers/gpu/drm/xe/xe_gt_sriov_pf_monitor_types.h  |  22 +
 drivers/gpu/drm/xe/xe_gt_sriov_pf_service.c        | 550 ++++++++++++
 drivers/gpu/drm/xe/xe_gt_sriov_pf_service.h        |  36 +
 drivers/gpu/drm/xe/xe_gt_sriov_pf_service_types.h  |  52 ++
 drivers/gpu/drm/xe/xe_gt_sriov_pf_types.h          |  10 +
 drivers/gpu/drm/xe/xe_gt_sriov_vf.c                | 979 +++++++++++++++++++++
 drivers/gpu/drm/xe/xe_gt_sriov_vf.h                |  30 +
 drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.c        |  72 ++
 drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.h        |  14 +
 drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h          |  84 ++
 drivers/gpu/drm/xe/xe_gt_sysfs.c                   |   4 +-
 .../{xe_gt_throttle_sysfs.c => xe_gt_throttle.c}   |  30 +-
 drivers/gpu/drm/xe/xe_gt_throttle.h                |  17 +
 drivers/gpu/drm/xe/xe_gt_throttle_sysfs.h          |  16 -
 drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c        |  64 +-
 drivers/gpu/drm/xe/xe_gt_tlb_invalidation.h        |   3 +
 drivers/gpu/drm/xe/xe_gt_topology.c                |  14 +-
 drivers/gpu/drm/xe/xe_gt_topology.h                |   3 +
 drivers/gpu/drm/xe/xe_gt_types.h                   |  34 +-
 drivers/gpu/drm/xe/xe_guc.c                        | 354 ++++++--
 drivers/gpu/drm/xe/xe_guc.h                        |   3 +-
 drivers/gpu/drm/xe/xe_guc_ads.c                    |  73 +-
 drivers/gpu/drm/xe/xe_guc_ads.h                    |   3 +-
 drivers/gpu/drm/xe/xe_guc_ct.c                     |   9 +
 drivers/gpu/drm/xe/xe_guc_ct.h                     |   2 +-
 drivers/gpu/drm/xe/xe_guc_ct_types.h               |   2 +
 drivers/gpu/drm/xe/xe_guc_db_mgr.c                 |   3 +-
 drivers/gpu/drm/xe/xe_guc_id_mgr.c                 |   3 +-
 drivers/gpu/drm/xe/xe_guc_klv_helpers.c            |  12 +
 drivers/gpu/drm/xe/xe_guc_klv_helpers.h            |  15 +-
 drivers/gpu/drm/xe/xe_guc_klv_thresholds_set.h     |  64 ++
 .../gpu/drm/xe/xe_guc_klv_thresholds_set_types.h   |  68 ++
 drivers/gpu/drm/xe/xe_guc_pc.c                     |  12 +-
 drivers/gpu/drm/xe/xe_guc_pc.h                     |   5 +-
 drivers/gpu/drm/xe/xe_guc_relay.c                  |  17 +-
 drivers/gpu/drm/xe/xe_guc_submit.c                 | 282 +++---
 drivers/gpu/drm/xe/xe_guc_submit.h                 |   4 +-
 drivers/gpu/drm/xe/xe_guc_types.h                  |   9 -
 drivers/gpu/drm/xe/xe_huc.c                        |   2 +
 drivers/gpu/drm/xe/xe_huc.h                        |   3 +-
 drivers/gpu/drm/xe/xe_hw_engine.c                  | 193 +++-
 drivers/gpu/drm/xe/xe_hw_engine.h                  |   3 +
 drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.c      |  30 +-
 drivers/gpu/drm/xe/xe_hw_engine_types.h            |  26 +-
 drivers/gpu/drm/xe/xe_hw_fence.c                   |  59 +-
 drivers/gpu/drm/xe/xe_hw_fence.h                   |   7 +-
 drivers/gpu/drm/xe/xe_hwmon.c                      |  37 +-
 drivers/gpu/drm/xe/xe_irq.c                        |   6 +-
 drivers/gpu/drm/xe/xe_lrc.c                        | 305 ++++++-
 drivers/gpu/drm/xe/xe_lrc.h                        |  58 +-
 drivers/gpu/drm/xe/xe_lrc_types.h                  |  12 +
 drivers/gpu/drm/xe/xe_migrate.c                    |  90 +-
 drivers/gpu/drm/xe/xe_mmio.c                       | 442 +++-------
 drivers/gpu/drm/xe/xe_mmio.h                       |  22 +-
 drivers/gpu/drm/xe/xe_mocs.c                       | 301 ++++++-
 drivers/gpu/drm/xe/xe_mocs.h                       |  11 +-
 drivers/gpu/drm/xe/xe_module.c                     |   5 +
 drivers/gpu/drm/xe/xe_module.h                     |   1 +
 drivers/gpu/drm/xe/xe_pat.c                        |   1 +
 drivers/gpu/drm/xe/xe_pci.c                        | 106 ++-
 drivers/gpu/drm/xe/xe_pci_sriov.c                  | 143 +++
 drivers/gpu/drm/xe/xe_pci_sriov.h                  |  13 +
 drivers/gpu/drm/xe/xe_pci_types.h                  |   4 +
 drivers/gpu/drm/xe/xe_pcode.c                      |   8 +-
 drivers/gpu/drm/xe/xe_pm.c                         |  42 +-
 drivers/gpu/drm/xe/xe_pm.h                         |   9 +-
 drivers/gpu/drm/xe/xe_preempt_fence.c              |  14 +-
 drivers/gpu/drm/xe/xe_pt.c                         |  69 +-
 drivers/gpu/drm/xe/xe_query.c                      |  10 +-
 drivers/gpu/drm/xe/xe_reg_sr.h                     |   4 +-
 drivers/gpu/drm/xe/xe_res_cursor.h                 |   2 -
 drivers/gpu/drm/xe/xe_ring_ops.c                   |  52 +-
 drivers/gpu/drm/xe/xe_rtp.c                        |   6 +
 drivers/gpu/drm/xe/xe_rtp.h                        |  18 +-
 drivers/gpu/drm/xe/xe_rtp_helpers.h                |  26 +-
 drivers/gpu/drm/xe/xe_sched_job.c                  | 181 ++--
 drivers/gpu/drm/xe/xe_sched_job.h                  |   7 +-
 drivers/gpu/drm/xe/xe_sched_job_types.h            |  20 +-
 drivers/gpu/drm/xe/xe_sriov.c                      |  11 +
 drivers/gpu/drm/xe/xe_sync.c                       |  15 +
 drivers/gpu/drm/xe/xe_sync.h                       |   1 +
 drivers/gpu/drm/xe/xe_tile_sysfs.c                 |   4 +-
 drivers/gpu/drm/xe/xe_trace.h                      |  11 +-
 drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c             |   2 +
 drivers/gpu/drm/xe/xe_uc.c                         |  58 +-
 drivers/gpu/drm/xe/xe_uc.h                         |   4 +-
 drivers/gpu/drm/xe/xe_uc_fw.c                      |   5 +
 drivers/gpu/drm/xe/xe_vm.c                         | 859 ++++++++++--------
 drivers/gpu/drm/xe/xe_vm.h                         |   5 +-
 drivers/gpu/drm/xe/xe_vm_doc.h                     |  24 +-
 drivers/gpu/drm/xe/xe_vm_types.h                   |  33 +-
 drivers/gpu/drm/xe/xe_vram.c                       | 368 ++++++++
 drivers/gpu/drm/xe/xe_vram.h                       |  13 +
 drivers/gpu/drm/xe/xe_vram_freq.c                  |   4 +-
 drivers/gpu/drm/xe/xe_wa.c                         |  46 +-
 include/uapi/drm/xe_drm.h                          |   2 +
 166 files changed, 8058 insertions(+), 1800 deletions(-)
 create mode 100644 Documentation/gpu/xe/xe-drm-usage-stats.rst
 rename drivers/gpu/drm/xe/{regs => instructions}/xe_gpu_commands.h (100%)
 create mode 100644 drivers/gpu/drm/xe/regs/xe_bars.h
 create mode 100644 drivers/gpu/drm/xe/tests/xe_args_test.c
 create mode 100644 drivers/gpu/drm/xe/tests/xe_gt_sriov_pf_service_test.c
 create mode 100644 drivers/gpu/drm/xe/xe_args.h
 create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
 create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.h
 create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_monitor.c
 create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_monitor.h
 create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_monitor_types.h
 create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_service.c
 create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_service.h
 create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_service_types.h
 create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_vf.c
 create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_vf.h
 create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.c
 create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.h
 create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h
 rename drivers/gpu/drm/xe/{xe_gt_throttle_sysfs.c => xe_gt_throttle.c} (83%)
 create mode 100644 drivers/gpu/drm/xe/xe_gt_throttle.h
 delete mode 100644 drivers/gpu/drm/xe/xe_gt_throttle_sysfs.h
 create mode 100644 drivers/gpu/drm/xe/xe_guc_klv_thresholds_set.h
 create mode 100644 drivers/gpu/drm/xe/xe_guc_klv_thresholds_set_types.h
 create mode 100644 drivers/gpu/drm/xe/xe_pci_sriov.c
 create mode 100644 drivers/gpu/drm/xe/xe_pci_sriov.h
 create mode 100644 drivers/gpu/drm/xe/xe_vram.c
 create mode 100644 drivers/gpu/drm/xe/xe_vram.h