[PULL] drm-xe-next

Rodrigo Vivi
2024-06-06T21:44:07Z

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