Hi Dave and Sima, Here is the first pull targeting 6.18. Quite on the big side and contains 3 new UAPIs. The 2 backmerges are there since part of the work went through the PCI subsystem (for SR-IOV) and drm-misc (for madvise interface).
I anticipate we will have one more pull request in a couple of weeks, but it should be smaller than this one. Thaks, Lucas De Marchi drm-xe-next-2025-08-29: UAPI Changes: - Add madvise interface (Himal Prasad Ghimiray) - Add DRM_IOCTL_XE_VM_QUERY_MEMORY_RANGE_ATTRS to query VMA count and memory attributes (Himal Prasad Ghimiray) - Handle Firmware reported Hardware Errors notifying userspace with device wedged uevent (Riana Tauro) Cross-subsystem Changes: - Add a vendor-specific recovery method to drm device wedged uevent (Riana Tauro) Driver Changes: - Use same directory structure in debugfs as in sysfs (Michal Wajdeczko) - Cleanup and future-proof VRAM region initialization (Piotr Piórkowski) - Add G-states and PCIe link states to debugfs (Soham Purkait) - Cleanup eustall debug messages (Harish Chegondi) - Add SR-IOV support to restore Compression Control Surface (CCS) to Xe2 and later (Satyanarayana K V P) - Enable SR-IOV PF mode by default on supported platforms without needing CONFIG_DRM_XE_DEBUG and mark some platforms behind force_probe as supported (Michal Wajdeczko) - More targeted log messages (Michal Wajdeczko) - Cleanup STEER_SEMAPHORE/MCFG_MCR_SELECTOR usage (Nitin Gote) - Use common code to emit flush (Tvrtko Ursulin) - Add/extend more HW workarounds and tunings for Xe2 and Xe3 (Sk Anirban, Tangudu Tilak Tirumalesh, Nitin Gote, Chaitanya Kumar Borah) - Add a generic dependency scheduler to help with TLB invalidations and future scenarios (Matthew Brost) - Use DRM scheduler for delayed GT TLB invalidations (Matthew Brost) - Error out on incorrect device use in configfs (Michal Wajdeczko, Lucas De Marchi) - Refactor configfs attributes (Michal Wajdeczko / Lucas De Marchi) - Allow configuring future VF devices via configfs (Michal Wajdeczko) - Implement some missing XeLP workarounds (Tvrtko Ursulin) - Generalize WA BB setup/emission and add support for mid context restore BB, aka indirect context (Tvrtko Ursulin) - Prepare the driver to expose mmio regions to userspace in future (Ilia Levi) - Add more GuC load error status codes (John Harrison) - Document DRM_XE_GEM_CREATE_FLAG_DEFER_BACKING (Priyanka Dandamudi) - Disable CSC and RPM on VFs (Lukasz Laguna, Satyanarayana K V P) - Fix oops in xe_gem_fault with PREEMPT_RT (Maarten Lankhorst) - Skip LMTT update if no LMEM was provisioned (Michal Wajdeczko) - Add support to VF migration (Tomasz Lis) - Use a helper for guc_waklv_enable functions (Jonathan Cavitt) - Prepare GPU SVM for migration of THP (Francois Dugast) - Program LMTT directory pointer on all GTs within a tile (Piotr Piórkowski) - Rename XE_WA to XE_GT_WA to better convey its scope vs the device WAs (Matt Atwood) - Allow to match devices on PCI devid/vendorid only (Lucas De Marchi) - Improve PDE PAT index selection (Matthew Brost) - Consolidate ASID allocation in xe_vm_create() vs xe_vm_create_ioctl() (Piotr Piórkowski) - Resize VF BARS to max possible size according to number of VFs (Michał Winiarski) - Untangle vm_bind_ioctl cleanup order (Christoph Manszewski) - Start fixing usage of XE_PAGE_SIZE vs PAGE_SIZE to improve compatibility with non-x86 arch (Simon Richter) - Improve tile vs gt initialization order and accounting (Gustavo Sousa) - Extend WA kunit test to PTL - Ensure data is initialized before transferring to pcode (Stuart Summers) - Add PSMI support for HW validation (Lucas De Marchi, Vinay Belgaumkar, Badal Nilawar) - Improve xe_dma_buf test (Thomas Hellström, Marcin Bernatowicz) - Fix basename() usage in generator with !glibc (Carlos Llamas) - Ensure GT is in C0 during resumes (Xin Wang) - Add TLB invalidation abstraction (Matt Brost, Stuart Summers) - Make MI_TLB_INVALIDATE conditional on migrate (Matthew Auld) - Prepare xe_nvm to be initialized early for future use cases (Riana Tauro) The following changes since commit 1cd0c7afef97c3192edc92774a62d36b2a0bf2e0: Merge tag 'drm-misc-next-2025-08-21' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next (2025-08-25 06:38:49 +1000) are available in the Git repository at: https://gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-next-2025-08-29 for you to fetch changes up to 1047bd82794a1eab64d643f196d09171ce983f44: drm/xe: Fix incorrect migration of backed-up object to VRAM (2025-08-29 15:30:57 +0200) ---------------------------------------------------------------- UAPI Changes: - Add madvise interface (Himal Prasad Ghimiray) - Add DRM_IOCTL_XE_VM_QUERY_MEMORY_RANGE_ATTRS to query VMA count and memory attributes (Himal Prasad Ghimiray) - Handle Firmware reported Hardware Errors notifying userspace with device wedged uevent (Riana Tauro) Cross-subsystem Changes: - Add a vendor-specific recovery method to drm device wedged uevent (Riana Tauro) Driver Changes: - Use same directory structure in debugfs as in sysfs (Michal Wajdeczko) - Cleanup and future-proof VRAM region initialization (Piotr Piórkowski) - Add G-states and PCIe link states to debugfs (Soham Purkait) - Cleanup eustall debug messages (Harish Chegondi) - Add SR-IOV support to restore Compression Control Surface (CCS) to Xe2 and later (Satyanarayana K V P) - Enable SR-IOV PF mode by default on supported platforms without needing CONFIG_DRM_XE_DEBUG and mark some platforms behind force_probe as supported (Michal Wajdeczko) - More targeted log messages (Michal Wajdeczko) - Cleanup STEER_SEMAPHORE/MCFG_MCR_SELECTOR usage (Nitin Gote) - Use common code to emit flush (Tvrtko Ursulin) - Add/extend more HW workarounds and tunings for Xe2 and Xe3 (Sk Anirban, Tangudu Tilak Tirumalesh, Nitin Gote, Chaitanya Kumar Borah) - Add a generic dependency scheduler to help with TLB invalidations and future scenarios (Matthew Brost) - Use DRM scheduler for delayed GT TLB invalidations (Matthew Brost) - Error out on incorrect device use in configfs (Michal Wajdeczko, Lucas De Marchi) - Refactor configfs attributes (Michal Wajdeczko / Lucas De Marchi) - Allow configuring future VF devices via configfs (Michal Wajdeczko) - Implement some missing XeLP workarounds (Tvrtko Ursulin) - Generalize WA BB setup/emission and add support for mid context restore BB, aka indirect context (Tvrtko Ursulin) - Prepare the driver to expose mmio regions to userspace in future (Ilia Levi) - Add more GuC load error status codes (John Harrison) - Document DRM_XE_GEM_CREATE_FLAG_DEFER_BACKING (Priyanka Dandamudi) - Disable CSC and RPM on VFs (Lukasz Laguna, Satyanarayana K V P) - Fix oops in xe_gem_fault with PREEMPT_RT (Maarten Lankhorst) - Skip LMTT update if no LMEM was provisioned (Michal Wajdeczko) - Add support to VF migration (Tomasz Lis) - Use a helper for guc_waklv_enable functions (Jonathan Cavitt) - Prepare GPU SVM for migration of THP (Francois Dugast) - Program LMTT directory pointer on all GTs within a tile (Piotr Piórkowski) - Rename XE_WA to XE_GT_WA to better convey its scope vs the device WAs (Matt Atwood) - Allow to match devices on PCI devid/vendorid only (Lucas De Marchi) - Improve PDE PAT index selection (Matthew Brost) - Consolidate ASID allocation in xe_vm_create() vs xe_vm_create_ioctl() (Piotr Piórkowski) - Resize VF BARS to max possible size according to number of VFs (Michał Winiarski) - Untangle vm_bind_ioctl cleanup order (Christoph Manszewski) - Start fixing usage of XE_PAGE_SIZE vs PAGE_SIZE to improve compatibility with non-x86 arch (Simon Richter) - Improve tile vs gt initialization order and accounting (Gustavo Sousa) - Extend WA kunit test to PTL - Ensure data is initialized before transferring to pcode (Stuart Summers) - Add PSMI support for HW validation (Lucas De Marchi, Vinay Belgaumkar, Badal Nilawar) - Improve xe_dma_buf test (Thomas Hellström, Marcin Bernatowicz) - Fix basename() usage in generator with !glibc (Carlos Llamas) - Ensure GT is in C0 during resumes (Xin Wang) - Add TLB invalidation abstraction (Matt Brost, Stuart Summers) - Make MI_TLB_INVALIDATE conditional on migrate (Matthew Auld) - Prepare xe_nvm to be initialized early for future use cases (Riana Tauro) ---------------------------------------------------------------- Ashutosh Dixit (1): drm/xe/oa: Fix static checker warning about null gt Badal Nilawar (1): drm/xe/psmi: Add Wa_14020001231 Balasubramani Vivekanandan (1): drm/xe/devcoredump: Defer devcoredump initialization during probe Carlos Llamas (1): drm/xe: switch to local xbasename() helper Chaitanya Kumar Borah (1): drm/xe/wcl: Extend L3bank mask workaround Christoph Manszewski (2): drm/xe: Fix vm_bind_ioctl double free bug drm/xe: Untangle vm_bind_ioctl cleanup order Dan Carpenter (3): drm/xe: Fix a NULL vs IS_ERR() bug in xe_i2c_register_adapter() drm/xe: Fix an IS_ERR() vs NULL bug in xe_tile_alloc_vram() drm/xe/vf: Fix IS_ERR() vs NULL check in xe_sriov_vf_ccs_init() Francois Dugast (6): drm/pagemap: Rename drm_pagemap_device_addr to drm_pagemap_addr drm/pagemap: Use struct drm_pagemap_addr in mapping and copy functions drm/pagemap: DMA map folios when possible drm/pagemap: Allocate folios when possible drm/xe/migrate: Populate struct drm_pagemap_addr array drm/xe/svm: Migrate folios when possible Gustavo Sousa (2): drm/xe: Probe for tile count during device info initialization drm/xe: Use for_each_gt to define gt_count Harish Chegondi (1): drm/xe: Remove unnecessary EU stall debug message Himal Prasad Ghimiray (21): drm/xe/uapi: Add madvise interface drm/xe/vm: Add attributes struct as member of vma drm/xe/vma: Move pat_index to vma attributes drm/xe/vma: Modify new_vma to accept struct xe_vma_mem_attr as parameter drm/xe/svm: Split system allocator vma incase of madvise call drm/xe: Allow CPU address mirror VMA unbind with gpu bindings for madvise drm/xe/svm: Add xe_svm_ranges_zap_ptes_in_range() for PTE zapping drm/xe: Implement madvise ioctl for xe drm/xe/svm: Add svm ranges migration policy on atomic access drm/xe/madvise: Update migration policy based on preferred location drm/xe/svm: Support DRM_XE_SVM_MEM_RANGE_ATTR_PAT memory attribute drm/xe/uapi: Add flag for consulting madvise hints on svm prefetch drm/xe/svm: Consult madvise preferred location in prefetch drm/xe/bo: Add attributes field to xe_bo drm/xe/bo: Update atomic_access attribute on madvise drm/xe/madvise: Skip vma invalidation if mem attr are unchanged drm/xe/vm: Add helper to check for default VMA memory attributes drm/xe: Reset VMA attributes to default in SVM garbage collector drm/xe: Enable madvise ioctl for xe drm/xe/uapi: Add UAPI for querying VMA count and memory attributes drm/xe/uapi: Fix kernel-doc formatting for madvise and vma_query Ilia Levi (1): drm/xe: Support for mmap-ing mmio regions John Harrison (1): drm/xe/guc: Add more GuC load error status codes Jonathan Cavitt (1): drm/xe/xe_guc_ads: Consolidate guc_waklv_enable functions Karthik Poosa (1): drm/xe/hwmon: Add SW clamp for power limits writes Lucas De Marchi (15): drm/xe: Fix build without debugfs drm/intel/pciids: Add match on vendor/id only Merge drm/drm-next into drm-xe-next drm/xe/psmi: Add GuC flag to enable PSMI drm/xe/psmi: Add debugfs interface for PSMI drm/xe/rtp: Add match for psmi drm/xe/configfs: Simplify kernel doc drm/xe/configfs: Allow to enable PSMI drm/xe/configfs: Use guard() for dev->lock drm/xe/configfs: Use tree-like output in documentation drm/xe/configfs: Improve documentation steps drm/xe/configfs: Minor fixes to documentation drm/xe/configfs: Dump custom settings when binding Merge drm/drm-next into drm-xe-next drm/xe/configfs: Block runtime attribute changes Lukasz Laguna (2): drm/xe/vf: Don't register I2C devices if VF drm/xe/vf: Disable CSC support on VF Maarten Lankhorst (1): drm/xe: Fix oops in xe_gem_fault when running core_hotunplug test. Marcin Bernatowicz (1): drm/xe/tests: Make cross-device dma-buf BOs CPU-visible on small BAR Matt Atwood (2): drm/xe: rename XE_WA to XE_GT_WA drm/xe: Update function names for GT specific workarounds Matthew Auld (5): drm/xe/migrate: prevent infinite recursion drm/xe/migrate: don't overflow max copy size drm/xe/migrate: prevent potential UAF drm/xe: rework PDE PAT index selection drm/xe/migrate: make MI_TLB_INVALIDATE conditional Matthew Brost (15): drm/xe: Explicitly mark migration queues with flag drm/xe: Add generic dependecy jobs / scheduler drm/xe: Create ordered workqueue for GT TLB invalidation jobs drm/xe: Add dependency scheduler for GT TLB invalidations to bind queues drm/xe: Add GT TLB invalidation jobs drm/xe: Use GT TLB invalidation jobs in PT layer drm/xe: Remove unused GT TLB invalidation trace points drm/xe: Don't trigger rebind on initial dma-buf validation drm/xe: s/tlb_invalidation/tlb_inval drm/xe: Add xe_tlb_inval structure drm/xe: Add xe_gt_tlb_invalidation_done_handler drm/xe: Decouple TLB invalidations from GT drm/xe: Prep TLB invalidation fence before sending drm/xe: Add helpers to send TLB invalidations drm/xe: Split TLB invalidation code in frontend and backend Michal Wajdeczko (25): drm/xe: Move debugfs GT attributes under tile directory drm/xe/pf: Enable SR-IOV PF mode by default drm/xe: Enable SR-IOV for ADL/ATSM drm/xe: Enable SR-IOV for TGL drm/xe: Make GGTT TLB invalidation failure message GT oriented drm/xe/guc: Clear whole g2h_fence during initialization drm/xe/configfs: Fix pci_dev reference leak drm/xe/configfs: Enforce canonical device names drm/xe/configfs: Use pci_name() for lookup drm/xe/hw_engine_group: Don't use drm_warn to catch missed case drm/xe/pf: Skip LMTT update if no LMEM was provisioned drm/xe/pf: Disable PF restart worker on device removal drm/xe/pf: Make sure PF is ready to configure VFs drm/xe/pf: Don't resume device from restart worker drm/xe: Simplify module initialization code drm/xe: Print module init abort code drm/xe/configfs: Destroy xe_configfs.su_mutex on exit/error drm/xe/configfs: Drop redundant init() error message drm/xe/configfs: Rename struct xe_config_device drm/xe/configfs: Rename configfs_find_group() helper drm/xe/configfs: Reintroduce struct xe_config_device drm/xe/configfs: Keep default device config settings together drm/xe/configfs: Only allow configurations for supported devices drm/xe/configfs: Allow adding configurations for future VFs drm/xe/kunit: Extend platform generator with PTL Michał Winiarski (1): drm/xe/pf: Set VF LMEM BAR size Nitin Gote (2): drm/xe: Rename MCFG_MCR_SELECTOR to STEER_SEMAPHORE drm/xe/tuning: Apply "Disable NULL query for Anyhit Shader" to Xe2 Piotr Piórkowski (8): drm/xe: Use devm_ioremap_wc for VRAM mapping and drop manual unmap drm/xe: Use dynamic allocation for tile and device VRAM region structures drm/xe: Move struct xe_vram_region to a dedicated header drm/xe: Split xe_migrate allocation from initialization drm/xe: Unify the initialization of VRAM regions drm/xe/pf: Program LMTT directory pointer on all GTs within a tile drm/xe: Assign ioctl xe file handler to vm in xe_vm_create drm/xe: Move ASID allocation and user PT BO tracking into xe_vm_create Priyanka Dandamudi (1): drm/xe/uapi: Add documentation for DRM_XE_GEM_CREATE_FLAG_DEFER_BACKING Raag Jadav (2): drm/xe: Don't fail probe on unsupported mailbox command drm/xe/i2c: Introduce xe_i2c_present() Riana Tauro (11): drm/xe: Add documentation for Xe Device Wedging drm: Add a vendor-specific recovery method to drm device wedged uevent drm/xe: Set GT as wedged before sending wedged uevent drm/xe: Add a helper function to set recovery method drm/xe/xe_survivability: Refactor survivability mode drm/xe/xe_survivability: Add support for Runtime survivability mode drm/xe/doc: Document device wedged and runtime survivability drm/xe: Add support to handle hardware errors drm/xe/xe_hw_error: Handle CSC Firmware reported Hardware errors drm/xe/xe_hw_error: Add fault injection to trigger csc error handler drm/xe/nvm: Use root tile mmio Satyanarayana K V P (6): drm/xe/vf: Create contexts for CCS read write drm/xe/vf: Attach and detach CCS copy commands with BO drm/xe/vf: Register CCS read/write contexts with Guc drm/xe/vf: Fix VM crash during VF driver release drm/xe/vf: Refactor CCS save/restore to use default migration context drm/xe/pm: Disable RPM for SR-IOV VFs Shuicheng Lin (1): drm/xe/hw_engine_group: Avoid call kfree() for drmm_kzalloc() Simon Richter (2): Mark xe driver as BROKEN if kernel page size is not 4kB drm/xe: Make page size consistent in loop Sk Anirban (1): drm/xe/ptl: Apply Wa_16026007364 Soham Purkait (1): drm/xe/xe_debugfs: Exposure of G-State and pcie link state residency counters through debugfs Stuart Summers (3): drm/xe/pcode: Initialize data0 for pcode read routine drm/xe: Move explicit CT lock in TLB invalidation sequence drm/xe: Cancel pending TLB inval workers on teardown Tangudu Tilak Tirumalesh (1): drm/xe: Extend wa_13012615864 to additional Xe2 and Xe3 platforms Thomas Hellström (5): drm/xe: Defer buffer object shrinker write-backs and GPU waits drm/xe/vm: Don't pin the vm_resv during validation drm/xe/tests/xe_dma_buf: Set the drm_object::dma_buf member drm/xe/vm: Clear the scratch_pt pointer on error drm/xe: Fix incorrect migration of backed-up object to VRAM Tomasz Lis (8): drm/xe/sa: Avoid caching GGTT address within the manager drm/xe/vf: Pause submissions during RESFIX fixups drm/xe: Block reset while recovering from VF migration drm/xe/vf: Rebase HWSP of all contexts after migration drm/xe/vf: Rebase MEMIRQ structures for all contexts after migration drm/xe/vf: Post migration, repopulate ring area for pending request drm/xe/vf: Refresh utilization buffer during migration recovery drm/xe/vf: Rebase exec queue parallel commands during migration recovery Tvrtko Ursulin (3): drm/xe: Use emit_flush_imm_ggtt helper instead of open coding drm/xe/xelp: Implement Wa_16010904313 drm/xe/xelp: Add Wa_18022495364 Vinay Belgaumkar (1): drm/xe/psmi: Add Wa_16023683509 Xin Wang (2): drm/xe: make xe_gt_idle_disable_c6() handle the forcewake internally drm/xe: Ensure GT is in C0 during resumes Zbigniew Kempczyński (1): drm/xe/xe_sync: avoid race during ufence signaling Zhanjun Dong (1): drm/xe/uc: Fix missing unwind goto Documentation/gpu/drm-uapi.rst | 47 +- Documentation/gpu/xe/index.rst | 1 + Documentation/gpu/xe/xe_device.rst | 10 + Documentation/gpu/xe/xe_pcode.rst | 6 +- drivers/gpu/drm/drm_drv.c | 2 + drivers/gpu/drm/drm_gpusvm.c | 4 +- drivers/gpu/drm/drm_pagemap.c | 142 +++-- drivers/gpu/drm/xe/Makefile | 10 +- drivers/gpu/drm/xe/abi/guc_actions_abi.h | 8 + drivers/gpu/drm/xe/abi/guc_errors_abi.h | 3 + drivers/gpu/drm/xe/abi/guc_klvs_abi.h | 2 + drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 2 +- drivers/gpu/drm/xe/display/xe_display_wa.c | 2 +- drivers/gpu/drm/xe/display/xe_fb_pin.c | 5 +- drivers/gpu/drm/xe/display/xe_plane_initial.c | 5 +- drivers/gpu/drm/xe/instructions/xe_mi_commands.h | 1 + drivers/gpu/drm/xe/regs/xe_engine_regs.h | 3 + drivers/gpu/drm/xe/regs/xe_gsc_regs.h | 2 + drivers/gpu/drm/xe/regs/xe_gt_regs.h | 2 +- drivers/gpu/drm/xe/regs/xe_hw_error_regs.h | 20 + drivers/gpu/drm/xe/regs/xe_irq_regs.h | 1 + drivers/gpu/drm/xe/regs/xe_pmt.h | 10 + drivers/gpu/drm/xe/tests/xe_dma_buf.c | 13 +- drivers/gpu/drm/xe/tests/xe_pci.c | 7 + drivers/gpu/drm/xe/tests/xe_wa_test.c | 1 + drivers/gpu/drm/xe/xe_assert.h | 4 +- drivers/gpu/drm/xe/xe_bb.c | 35 ++ drivers/gpu/drm/xe/xe_bb.h | 3 + drivers/gpu/drm/xe/xe_bo.c | 94 +++- drivers/gpu/drm/xe/xe_bo.h | 4 +- drivers/gpu/drm/xe/xe_bo_types.h | 12 + drivers/gpu/drm/xe/xe_configfs.c | 346 ++++++++++--- drivers/gpu/drm/xe/xe_configfs.h | 4 + drivers/gpu/drm/xe/xe_debugfs.c | 114 ++++ drivers/gpu/drm/xe/xe_dep_job_types.h | 29 ++ drivers/gpu/drm/xe/xe_dep_scheduler.c | 143 +++++ drivers/gpu/drm/xe/xe_dep_scheduler.h | 21 + drivers/gpu/drm/xe/xe_device.c | 112 +++- drivers/gpu/drm/xe/xe_device.h | 1 + drivers/gpu/drm/xe/xe_device_sysfs.c | 8 +- drivers/gpu/drm/xe/xe_device_types.h | 86 +--- drivers/gpu/drm/xe/xe_eu_stall.c | 4 +- drivers/gpu/drm/xe/xe_exec_queue.c | 111 ++++ drivers/gpu/drm/xe/xe_exec_queue.h | 5 + drivers/gpu/drm/xe/xe_exec_queue_types.h | 15 + drivers/gpu/drm/xe/xe_gen_wa_oob.c | 10 +- drivers/gpu/drm/xe/xe_ggtt.c | 15 +- drivers/gpu/drm/xe/xe_gpu_scheduler.c | 13 + drivers/gpu/drm/xe/xe_gpu_scheduler.h | 1 + drivers/gpu/drm/xe/xe_gsc.c | 6 +- drivers/gpu/drm/xe/xe_gt.c | 34 +- drivers/gpu/drm/xe/xe_gt_debugfs.c | 56 +- drivers/gpu/drm/xe/xe_gt_idle.c | 21 +- drivers/gpu/drm/xe/xe_gt_idle.h | 2 +- drivers/gpu/drm/xe/xe_gt_mcr.c | 4 +- drivers/gpu/drm/xe/xe_gt_pagefault.c | 35 +- drivers/gpu/drm/xe/xe_gt_sriov_pf.c | 24 +- drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c | 13 +- drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 14 + drivers/gpu/drm/xe/xe_gt_sriov_vf.h | 1 + drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c | 596 --------------------- drivers/gpu/drm/xe/xe_gt_tlb_invalidation.h | 40 -- drivers/gpu/drm/xe/xe_gt_tlb_invalidation_types.h | 32 -- drivers/gpu/drm/xe/xe_gt_topology.c | 2 +- drivers/gpu/drm/xe/xe_gt_types.h | 33 +- drivers/gpu/drm/xe/xe_guc.c | 43 +- drivers/gpu/drm/xe/xe_guc_ads.c | 123 ++--- drivers/gpu/drm/xe/xe_guc_buf.c | 2 +- drivers/gpu/drm/xe/xe_guc_ct.c | 8 +- drivers/gpu/drm/xe/xe_guc_fwif.h | 7 + drivers/gpu/drm/xe/xe_guc_pc.c | 23 +- drivers/gpu/drm/xe/xe_guc_submit.c | 209 +++++++- drivers/gpu/drm/xe/xe_guc_submit.h | 10 + drivers/gpu/drm/xe/xe_guc_tlb_inval.c | 242 +++++++++ drivers/gpu/drm/xe/xe_guc_tlb_inval.h | 19 + drivers/gpu/drm/xe/xe_guc_types.h | 6 + drivers/gpu/drm/xe/xe_heci_gsc.c | 2 +- drivers/gpu/drm/xe/xe_hw_engine.c | 2 +- drivers/gpu/drm/xe/xe_hw_engine_group.c | 4 +- drivers/gpu/drm/xe/xe_hw_error.c | 182 +++++++ drivers/gpu/drm/xe/xe_hw_error.h | 15 + drivers/gpu/drm/xe/xe_hwmon.c | 8 +- drivers/gpu/drm/xe/xe_i2c.c | 18 +- drivers/gpu/drm/xe/xe_i2c.h | 2 + drivers/gpu/drm/xe/xe_irq.c | 4 + drivers/gpu/drm/xe/xe_lmtt.c | 21 +- drivers/gpu/drm/xe/xe_lrc.c | 174 ++++++- drivers/gpu/drm/xe/xe_lrc.h | 9 + drivers/gpu/drm/xe/xe_migrate.c | 424 +++++++++++---- drivers/gpu/drm/xe/xe_migrate.h | 29 +- drivers/gpu/drm/xe/xe_mmio.c | 33 -- drivers/gpu/drm/xe/xe_mmio_gem.c | 226 ++++++++ drivers/gpu/drm/xe/xe_mmio_gem.h | 20 + drivers/gpu/drm/xe/xe_module.c | 29 +- drivers/gpu/drm/xe/xe_nvm.c | 8 +- drivers/gpu/drm/xe/xe_oa.c | 8 +- drivers/gpu/drm/xe/xe_pci.c | 76 ++- drivers/gpu/drm/xe/xe_pci_types.h | 2 +- drivers/gpu/drm/xe/xe_pm.c | 23 +- drivers/gpu/drm/xe/xe_psmi.c | 306 +++++++++++ drivers/gpu/drm/xe/xe_psmi.h | 14 + drivers/gpu/drm/xe/xe_pt.c | 238 +++++---- drivers/gpu/drm/xe/xe_pt_types.h | 3 +- drivers/gpu/drm/xe/xe_pxp_submit.c | 2 +- drivers/gpu/drm/xe/xe_query.c | 13 +- drivers/gpu/drm/xe/xe_res_cursor.h | 10 +- drivers/gpu/drm/xe/xe_ring_ops.c | 22 +- drivers/gpu/drm/xe/xe_rtp.c | 7 + drivers/gpu/drm/xe/xe_rtp.h | 3 + drivers/gpu/drm/xe/xe_sa.c | 1 - drivers/gpu/drm/xe/xe_sa.h | 15 +- drivers/gpu/drm/xe/xe_sa_types.h | 1 - drivers/gpu/drm/xe/xe_sriov.c | 19 + drivers/gpu/drm/xe/xe_sriov.h | 1 + drivers/gpu/drm/xe/xe_sriov_vf.c | 78 ++- drivers/gpu/drm/xe/xe_sriov_vf_ccs.c | 377 ++++++++++++++ drivers/gpu/drm/xe/xe_sriov_vf_ccs.h | 17 + drivers/gpu/drm/xe/xe_sriov_vf_ccs_types.h | 53 ++ drivers/gpu/drm/xe/xe_sriov_vf_types.h | 6 + drivers/gpu/drm/xe/xe_survivability_mode.c | 169 ++++-- drivers/gpu/drm/xe/xe_survivability_mode.h | 5 +- drivers/gpu/drm/xe/xe_survivability_mode_types.h | 8 + drivers/gpu/drm/xe/xe_svm.c | 369 ++++++++++--- drivers/gpu/drm/xe/xe_svm.h | 27 +- drivers/gpu/drm/xe/xe_sync.c | 2 +- drivers/gpu/drm/xe/xe_tile.c | 62 ++- drivers/gpu/drm/xe/xe_tile.h | 14 +- drivers/gpu/drm/xe/xe_tlb_inval.c | 434 ++++++++++++++++ drivers/gpu/drm/xe/xe_tlb_inval.h | 46 ++ drivers/gpu/drm/xe/xe_tlb_inval_job.c | 268 ++++++++++ drivers/gpu/drm/xe/xe_tlb_inval_job.h | 33 ++ drivers/gpu/drm/xe/xe_tlb_inval_types.h | 130 +++++ drivers/gpu/drm/xe/xe_trace.h | 40 +- drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c | 12 +- drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 22 +- drivers/gpu/drm/xe/xe_ttm_vram_mgr.h | 3 +- drivers/gpu/drm/xe/xe_tuning.c | 2 +- drivers/gpu/drm/xe/xe_vm.c | 602 ++++++++++++++++++---- drivers/gpu/drm/xe/xe_vm.h | 31 +- drivers/gpu/drm/xe/xe_vm_madvise.c | 445 ++++++++++++++++ drivers/gpu/drm/xe/xe_vm_madvise.h | 15 + drivers/gpu/drm/xe/xe_vm_types.h | 57 +- drivers/gpu/drm/xe/xe_vram.c | 211 +++++--- drivers/gpu/drm/xe/xe_vram.h | 11 + drivers/gpu/drm/xe/xe_vram_freq.c | 4 +- drivers/gpu/drm/xe/xe_vram_types.h | 85 +++ drivers/gpu/drm/xe/xe_wa.c | 25 +- drivers/gpu/drm/xe/xe_wa.h | 8 +- drivers/gpu/drm/xe/xe_wa_oob.rules | 11 +- include/drm/drm_device.h | 4 + include/drm/drm_gpusvm.h | 4 +- include/drm/drm_pagemap.h | 50 +- include/drm/intel/pciids.h | 5 + include/uapi/drm/xe_drm.h | 282 +++++++++- 154 files changed, 7228 insertions(+), 1877 deletions(-) create mode 100644 Documentation/gpu/xe/xe_device.rst create mode 100644 drivers/gpu/drm/xe/regs/xe_hw_error_regs.h create mode 100644 drivers/gpu/drm/xe/xe_dep_job_types.h create mode 100644 drivers/gpu/drm/xe/xe_dep_scheduler.c create mode 100644 drivers/gpu/drm/xe/xe_dep_scheduler.h delete mode 100644 drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c delete mode 100644 drivers/gpu/drm/xe/xe_gt_tlb_invalidation.h delete mode 100644 drivers/gpu/drm/xe/xe_gt_tlb_invalidation_types.h create mode 100644 drivers/gpu/drm/xe/xe_guc_tlb_inval.c create mode 100644 drivers/gpu/drm/xe/xe_guc_tlb_inval.h create mode 100644 drivers/gpu/drm/xe/xe_hw_error.c create mode 100644 drivers/gpu/drm/xe/xe_hw_error.h create mode 100644 drivers/gpu/drm/xe/xe_mmio_gem.c create mode 100644 drivers/gpu/drm/xe/xe_mmio_gem.h create mode 100644 drivers/gpu/drm/xe/xe_psmi.c create mode 100644 drivers/gpu/drm/xe/xe_psmi.h create mode 100644 drivers/gpu/drm/xe/xe_sriov_vf_ccs.c create mode 100644 drivers/gpu/drm/xe/xe_sriov_vf_ccs.h create mode 100644 drivers/gpu/drm/xe/xe_sriov_vf_ccs_types.h create mode 100644 drivers/gpu/drm/xe/xe_tlb_inval.c create mode 100644 drivers/gpu/drm/xe/xe_tlb_inval.h create mode 100644 drivers/gpu/drm/xe/xe_tlb_inval_job.c create mode 100644 drivers/gpu/drm/xe/xe_tlb_inval_job.h create mode 100644 drivers/gpu/drm/xe/xe_tlb_inval_types.h create mode 100644 drivers/gpu/drm/xe/xe_vm_madvise.c create mode 100644 drivers/gpu/drm/xe/xe_vm_madvise.h create mode 100644 drivers/gpu/drm/xe/xe_vram_types.h