Hi, Dave, Sima The main -next 6.10 pull request for the xe driver. I scanned through the patches and tried to provide a somewhat condensed log below. Nothing spectacular in the uAPI changes. Among other things there are some flags that are reinstated now that we have published UMD for them. Unfortunately some of the underlying implementation got somehow lost in a backmerge but there is a patch pending to reinstate that. Will send another pull-request this week, or if you want I can resend this one when the patch passes review and CI with the patch included. Some hickups unfortunately in that we carry a couple of i915 patches. One that got mistakenly commited to drm-xe-next, but was later acked-by Rodrigo for carrying in drm-xe-next to simplify handling. There is also one that was part of the PM rework, and a fix for that patch. Thanks, Thomas drm-xe-next-2024-04-23: UAPI Changes: - Remove unused flags (Francois Dugast) - Extend uAPI to query HuC micro-controler firmware version (Francois Dugast) - drm/xe/uapi: Define topology types as indexes rather than masks (Francois Dugast) - drm/xe/uapi: Restore flags VM_BIND_FLAG_READONLY and VM_BIND_FLAG_IMMEDIATE (Francois Dugast) - devcoredump updates. Some touching the output format. (José Roberto de Souza, Matthew Brost) - drm/xe/hwmon: Add infra to support card power and energy attributes - Improve LRC, HWSP and HWCTX error capture. (Maarten Lankhorst) - drm/xe/uapi: Add IP version and stepping to GT list query (Matt roper) - Invalidate userptr VMA on page pin fault (Matthew Brost) - Improve xe_bo_move tracepoint (Priyanka Danamudi) - Align fence output format in ftrace log Cross-driver Changes: - drm/i915/hwmon: Get rid of devm (Ashutosh Dixit) (Acked-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>) - drm/i915/display: convert inner wakeref get towards get_if_in_use (SOB Rodrigo Vivi) - drm/i915: Convert intel_runtime_pm_get_noresume towards raw wakeref (Committer, SOB Jani Nikula) Driver Changes: - Fix for unneeded CCS metadata allocation (Akshata Jahagirdar) - Fix for fix multicast support for Xe_LP platforms (Andrzej Hajda) - A couple of build fixes (Arnd Bergmann) - Fix register definition (Ashutosh Dixit) - Add BMG mocs table (Balasubramani Vivekanandan) - Replace sprintf() across driver (Bommu Krishnaiah) - Add an xe2 workaround (Bommu Krishnaiah) - Makefile fix (Dafna Hirschfeld) - force_wake_get error value check (Daniele Ceraolo Spurio) - Handle GSCCS ER interrupt (Daniele Ceraolo Spurio) - GSC Workaround (Daniele Ceraolo Spurio) - Build error fix (Dawei Li) - drm/xe/gt: Add L3 bank mask to GT topology (Francois Dugast) - Implement xe2- and GuC workarounds (Gustavo Sousa, Haridhar Kalvala, Himal rasad Ghimiray, John Harrison, Matt Roper, Radhakrishna Sripada, Vinay Belgaumkar, Badal Nilawar) - xe2hpg compression (Himal Ghimiray Prasad) - Error code cleanups and fixes (Himal Prasad Ghimiray) - struct xe_device cleanup (Jani Nikula) - Avoid validating bos when only requesting an exec dma-fence (José Roberto de Souza) - Remove debug message from migrate_clear (José Roberto de Souza) - Nuke EXEC_QUEUE_FLAG_PERSISTENT leftover internal flag (José Roberto de Souza) - Mark dpt and related vma as uncached (Juha-Pekka Heikkila) - Hwmon updates (Karthik Poosa) - KConfig fix when ACPI_WMI selcted (Lu Yao) - Update intel_uncore_read*() return types (Luca Coelho) - Mocs updates (Lucas De Marchi, Matt Roper) - Drop dynamic load-balancing workaround (Lucas De Marchi) - Fix a PVC workaround (Lucas De Marchi) - Group live kunit tests into a single module (Lucas De Marchi) - Various code cleanups (Lucas De Marchi) - Fix a ggtt init error patch and move ggtt invalidate out of ggtt lock (Maarten Lankhorst) - Fix a bo leak (Marten Lankhorst) - Add LRC parsing for more GPU instructions (Matt Roper) - Add various definitions for hardware and IP (Matt Roper) - Define all possible engines in media IP descriptors (Matt Roper) - Various cleanups, asserts and code fixes (Matthew Auld) - Various cleanups and code fixes (Matthew Brost) - Increase VM_BIND number of per-ioctl Ops (Matthew Brost, Paulo Zanoni) - Don't support execlists in xe_gt_tlb_invalidation layer (Matthew Brost) - Handle timing out of already signaled jobs gracefully (Matthew Brost) - Pipeline evict / restore of pinned BOs during suspend / resume (Matthew Brost) - Do not grab forcewakes when issuing GGTT TLB invalidation via GuC (Matthew Brost) - Drop ggtt invalidate from display code (Matthew Brost) - drm/xe: Add XE_BO_GGTT_INVALIDATE flag (Matthew Brost) - Add debug messages for MMU notifier and VMA invalidate (Matthew Brost) - Use ordered wq for preempt fence waiting (Matthew Brost) - Initial development for SR-IOV support including some refactoring (Michal Wajdeczko) - Various GuC- and GT- related cleanups and fixes (Michal Wajdeczko) - Move userptr over to start using hmm_range_fault (Oak Zeng) - Add new PCI IDs to DG2 platform (Ravi Kumar Vodapalli) - Pcode - and VRAM initialization check update (Riana Tauro) - Large PM update including i915 display patches, and a fix for one of those. (Rodrigo Vivi) - Introduce performance tuning changes for Xe2_HPG (Shekhar Chauhan) - GSC / HDCP updates (Suraj Kandpal) - Minor code cleanup (Tejas Upadhyay) - Rework / fix rebind TLB flushing and move rebind into the drm_exec locking loop (Thomas Hellström) - Backmerge (Thomas Hellström) - GuC updates and fixes (Vinay Belgaumkar, Zhanjun Dong) The following changes since commit 6e1f415e7129f7cd4c2394af83b35cdcdd40baf7: Merge tag 'drm-misc-next-2024-04-10' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next (2024-04-11 13:36:01 +1000) are available in the Git repository at: https://gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-next-2024-04-23 for you to fetch changes up to 48c64d495fbef343c59598a793d583dfd199d389: drm/xe/guc: Fix arguments passed to relay G2H handlers (2024-04-22 20:08:04 +0200) ---------------------------------------------------------------- UAPI Changes: - Remove unused flags (Francois Dugast) - Extend uAPI to query HuC micro-controler firmware version (Francois Dugast) - drm/xe/uapi: Define topology types as indexes rather than masks (Francois Dugast) - drm/xe/uapi: Restore flags VM_BIND_FLAG_READONLY and VM_BIND_FLAG_IMMEDIATE (Francois Dugast) - devcoredump updates. Some touching the output format. (José Roberto de Souza, Matthew Brost) - drm/xe/hwmon: Add infra to support card power and energy attributes - Improve LRC, HWSP and HWCTX error capture. (Maarten Lankhorst) - drm/xe/uapi: Add IP version and stepping to GT list query (Matt roper) - Invalidate userptr VMA on page pin fault (Matthew Brost) - Improve xe_bo_move tracepoint (Priyanka Danamudi) - Align fence output format in ftrace log Cross-driver Changes: - drm/i915/hwmon: Get rid of devm (Ashutosh Dixit) (Acked-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>) - drm/i915/display: convert inner wakeref get towards get_if_in_use (SOB Rodrigo Vivi) - drm/i915: Convert intel_runtime_pm_get_noresume towards raw wakeref (Committer, SOB Jani Nikula) Driver Changes: - Fix for unneeded CCS metadata allocation (Akshata Jahagirdar) - Fix for fix multicast support for Xe_LP platforms (Andrzej Hajda) - A couple of build fixes (Arnd Bergmann) - Fix register definition (Ashutosh Dixit) - Add BMG mocs table (Balasubramani Vivekanandan) - Replace sprintf() across driver (Bommu Krishnaiah) - Add an xe2 workaround (Bommu Krishnaiah) - Makefile fix (Dafna Hirschfeld) - force_wake_get error value check (Daniele Ceraolo Spurio) - Handle GSCCS ER interrupt (Daniele Ceraolo Spurio) - GSC Workaround (Daniele Ceraolo Spurio) - Build error fix (Dawei Li) - drm/xe/gt: Add L3 bank mask to GT topology (Francois Dugast) - Implement xe2- and GuC workarounds (Gustavo Sousa, Haridhar Kalvala, Himal rasad Ghimiray, John Harrison, Matt Roper, Radhakrishna Sripada, Vinay Belgaumkar, Badal Nilawar) - xe2hpg compression (Himal Ghimiray Prasad) - Error code cleanups and fixes (Himal Prasad Ghimiray) - struct xe_device cleanup (Jani Nikula) - Avoid validating bos when only requesting an exec dma-fence (José Roberto de Souza) - Remove debug message from migrate_clear (José Roberto de Souza) - Nuke EXEC_QUEUE_FLAG_PERSISTENT leftover internal flag (José Roberto de Souza) - Mark dpt and related vma as uncached (Juha-Pekka Heikkila) - Hwmon updates (Karthik Poosa) - KConfig fix when ACPI_WMI selcted (Lu Yao) - Update intel_uncore_read*() return types (Luca Coelho) - Mocs updates (Lucas De Marchi, Matt Roper) - Drop dynamic load-balancing workaround (Lucas De Marchi) - Fix a PVC workaround (Lucas De Marchi) - Group live kunit tests into a single module (Lucas De Marchi) - Various code cleanups (Lucas De Marchi) - Fix a ggtt init error patch and move ggtt invalidate out of ggtt lock (Maarten Lankhorst) - Fix a bo leak (Marten Lankhorst) - Add LRC parsing for more GPU instructions (Matt Roper) - Add various definitions for hardware and IP (Matt Roper) - Define all possible engines in media IP descriptors (Matt Roper) - Various cleanups, asserts and code fixes (Matthew Auld) - Various cleanups and code fixes (Matthew Brost) - Increase VM_BIND number of per-ioctl Ops (Matthew Brost, Paulo Zanoni) - Don't support execlists in xe_gt_tlb_invalidation layer (Matthew Brost) - Handle timing out of already signaled jobs gracefully (Matthew Brost) - Pipeline evict / restore of pinned BOs during suspend / resume (Matthew Brost) - Do not grab forcewakes when issuing GGTT TLB invalidation via GuC (Matthew Brost) - Drop ggtt invalidate from display code (Matthew Brost) - drm/xe: Add XE_BO_GGTT_INVALIDATE flag (Matthew Brost) - Add debug messages for MMU notifier and VMA invalidate (Matthew Brost) - Use ordered wq for preempt fence waiting (Matthew Brost) - Initial development for SR-IOV support including some refactoring (Michal Wajdeczko) - Various GuC- and GT- related cleanups and fixes (Michal Wajdeczko) - Move userptr over to start using hmm_range_fault (Oak Zeng) - Add new PCI IDs to DG2 platform (Ravi Kumar Vodapalli) - Pcode - and VRAM initialization check update (Riana Tauro) - Large PM update including i915 display patches, and a fix for one of those. (Rodrigo Vivi) - Introduce performance tuning changes for Xe2_HPG (Shekhar Chauhan) - GSC / HDCP updates (Suraj Kandpal) - Minor code cleanup (Tejas Upadhyay) - Rework / fix rebind TLB flushing and move rebind into the drm_exec locking loop (Thomas Hellström) - Backmerge (Thomas Hellström) - GuC updates and fixes (Vinay Belgaumkar, Zhanjun Dong) ---------------------------------------------------------------- Akshata Jahagirdar (1): drm/xe/xe2hpg: Remove extra allocation of CCS pages for dgfx Andrzej Hajda (1): drm/xe: fix multicast support for Xe_LP platforms Arnd Bergmann (3): drm/xe/kunit: fix link failure with built-in xe drm/xe/mmio: fix build warning for BAR resize on 32-bit drm/xe/xe2: fix 64-bit division in pte_update_size Ashutosh Dixit (2): drm/xe: Label RING_CONTEXT_CONTROL as masked drm/i915/hwmon: Get rid of devm Badal Nilawar (2): drm/xe/guc: Add support for workaround KLVs drm/xe/lnl: Enable GuC Wa_14019882105 Balasubramani Vivekanandan (1): drm/xe/bmg: Add BMG mocs table Bommu Krishnaiah (3): drm/xe: prefer snprintf over sprintf drm/xe/xe_hw_engine_class_sysfs: use sysfs_emit() for attr's _show() drm/xe/xe2: Add workaround 18034896535 Dafna Hirschfeld (1): drm/xe: Replace 'grouped target' in Makefile with pattern rule Daniele Ceraolo Spurio (6): drm/xe/gsc: Handle GSCCS ER interrupt drm/xe/guc: Don't support older GuC 70.x releases drm/xe: Always check force_wake_get return code drm/xe/uc: Use u64 for offsets for which we use upper_32_bits() drm/xe/guc: Check error code when initializing the CT mutex drm/xe/gsc: Implement WA 14018094691 Dawei Li (1): drm/xe: Declare __xe_lrc_*_ggtt_addr with __maybe__unused Francois Dugast (5): drm/xe/uapi: Remove unused flags drm/xe: Extend uAPI to query HuC micro-controler firmware version drm/xe/uapi: Define topology types as indexes rather than masks drm/xe/uapi: Restore flags VM_BIND_FLAG_READONLY and VM_BIND_FLAG_IMMEDIATE drm/xe/gt: Add L3 bank mask to GT topology Gustavo Sousa (2): drm/xe/xe2hpm: Add initial set of workarounds drm/xe/xe2lpg: Extend Wa_14020338487 Haridhar Kalvala (1): drm/xe/xe2hpg: Add initial GT workarounds Himal Prasad Ghimiray (15): drm/xe: Return if kobj creation is failed drm/xe/xe_exec : In xe_exec_ioctl remove deadcode drm/xe/vm : Remove duplicate assignment of XE_VM_FLAG_LR_MODE flag. drm/xe: Use USEC_PER_MSEC rather than the hard coding drm/xe/xe_devcoredump: Check NULL before assignments drm/xe/xe2: Add workaround 18033852989 drm/xe/xe_migrate: Cast to output precision before multiplying operands drm/xe/xe2hpg: Determine flat ccs offset for vram drm/xe: Simplify function return using drmm_add_action_or_reset() drm/xe: Remove sysfs only once on action add failure drm/xe: call free_gsc_pkt only once on action add failure drm/xe: Return NULL in case of drmm_add_action_or_reset failure drm/xe/gt: Abort driver load for sysfs creation failure drm/xe/tile: Abort driver load for sysfs creation failure drm/xe/pm: Capture errors and handle them Jani Nikula (1): drm/xe: remove unused struct xe_device members John Harrison (2): drm/xe/lnl: Enable more GuC based workarounds drm/xe/bmg: Some LNL workarounds also apply to BMG José Roberto de Souza (7): drm/xe: Skip VMAs pin when requesting signal to the last XE_EXEC drm/xe: Make devcoredump VM error state print consistent drm/xe/devcoredump: Print errno if VM snapshot was not captured drm/xe: Nuke EXEC_QUEUE_FLAG_PERSISTENT drm/xe: Remove debug message from migrate_clear() devcoredump: Add dev_coredump_put() drm/xe: Remove devcoredump during driver release Juha-Pekka Heikkila (1): drm/xe/display: Mark dpt and related vma as uncached Karthik Poosa (4): drm/xe/hwmon: Add infra to support card power and energy attributes drm/xe: Define xe_reg_is_valid drm/xe/hwmon: Update xe_hwmon_get_reg to return struct xe_reg drm/xe/hwmon: Cast result to output precision on left shift of operand Lu Yao (1): drm/xe: select X86_PLATFORM_DEVICES when ACPI_WMI is selected Luca Coelho (1): drm/xe/display: fix type of intel_uncore_read*() functions Lucas De Marchi (15): drm/xe/mocs: Refactor mocs/l3cc loop drm/xe/mocs: Be explicit when logging number of entries drm/xe/mocs: Move warn/assertion up drm/xe/mocs: Allow odd number of entries on test drm/xe/mocs: Fix DG2 kunit drm/xe: Drop WA 16015675438 drm/xe: Remove unused FF_SLICE_CS_CHICKEN2 drm/xe/pvc: Fix WA 18020744125 drm/xe: Group live kunit tests drm/xe: Fix END redefinition drm/xe: Remove redundant functions to get xe drm/xe: Stop passing user flag to xe_bo_create_user() drm/xe: Normalize bo flags macros drm/xe/display: Fix double mutex initialization drm/xe: Remove dead clock code Maarten Lankhorst (6): drm/xe: Move lrc snapshot capturing to xe_lrc.c drm/xe: Add infrastructure for delayed LRC capture drm/xe: Implement capture of HWSP and HWCTX drm/xe: Fix NULL check in xe_ggtt_init() drm/xe: Move xe_ggtt_invalidate out from ggtt->lock drm/xe: Fix bo leak in intel_fb_bo_framebuffer_init Matt Roper (12): drm/xe: Add LRC parsing for more GPU instructions drm/xe/xelpg: Recognize graphics version 12.74 as Xe_LPG drm/xe/xelpg: Extend some workarounds to graphics version 12.74 drm/xe/arl: Add Arrow Lake H support drm/xe/uapi: Add IP version and stepping to GT list query drm/xe/mocs: Determine MCR separately for primary/media GT in kunit test drm/xe/mocs: Clarify which GT is being operated on drm/xe/xe2: Recognize Xe2_HPG IP drm/xe/xe2: Recognize Xe2_HPM IP drm/xe/bmg: Add BMG platform definition drm/xe/bmg: Program an additional discrete-specific PAT setting drm/xe: Define all possible engines in media IP descriptors Matthew Auld (16): drm/xe/guc_submit: use jiffies for job timeout drm/xe/client: remove bogus rcu list usage drm/xe/client: drop bogus bo NULL check drm/xe/vm: fix xe_assert() drm/xe/queue: fix engine_class bounds check drm/xe/device: fix XE_MAX_GT_PER_TILE check drm/xe/device: fix XE_MAX_TILES_PER_DEVICE check drm/xe/display: mark DPT with XE_BO_PAGETABLE drm/xe/bb: assert width in xe_bb_create_job() drm/xe/bb: assert width in xe_bb_create_migration_job() drm/xe/query: fix gt_id bounds check drm/xe/stolen: lower the default alignment drm/xe/stolen: ignore first page for FBC drm/xe/vm: prevent UAF with asid based lookup drm/xe/vm: drop vm->destroy_work drm/xe/vm: don't include xe_gt.h Matthew Brost (17): drm/xe: Fix execlist splat drm/xe: Cleanup some layering in GGTT drm/xe: Don't support execlists in xe_gt_tlb_invalidation layer drm/xe: Use vmalloc for array of bind allocation in bind IOCTL drm/xe/guc: Handle timing out of signaled jobs gracefully drm/xe: Fix build error in xe_ggtt.c drm/xe: Fix ref counting leak on page fault drm/xe: Pipeline evict / restore of pinned BOs during suspend / resume drm/xe: Do not grab forcewakes when issuing GGTT TLB invalidation via GuC drm/xe: Invalidate userptr VMA on page pin fault drm/xe: Use xe_assert in xe_device_assert_mem_access drm/xe: Drop ggtt invalidate from display code drm/xe: Add XE_BO_GGTT_INVALIDATE flag drm/xe: Add debug messages for MMU notifier and VMA invalidate drm/xe: Use ordered wq for preempt fence waiting drm/xe: Always capture exec queues on snapshot drm/xe: Capture GuC CT snapshot when stopped Michal Wajdeczko (53): drm/xe: Assert size of the struct xe_reg drm/xe: Define XE_REG_OPTION_VF drm/xe: Mark VF accessible GuC registers drm/xe: Mark VF accessible global registers drm/xe: Mark VF accessible interrupt registers drm/xe: Make xe_mmio_read|write() functions non-inline drm/xe: Allow VRAM BO allocations aligned to 64K drm/xe/pf: Request 64K aligned allocations for LMTT PD drm/xe/pf: Always select Multi-Level LMTT for platforms 12.60+ drm/xe: Move HW GGTT definitions to dedicated file drm/xe/guc: Fix include guard for SR-IOV ABI drm/xe/guc: Move GUC_ID_MAX definition to GuC ABI header drm/xe/guc: Introduce GuC context ID Manager drm/xe/kunit: Add basic tests for GuC context ID Manager drm/xe/guc: Use GuC ID Manager in submission code drm/xe: Separate pure MMIO init from VRAM checkout drm/xe: Move SR-IOV probe to xe_device_probe_early() drm/xe/vf: Add proper detection of the SR-IOV VF mode drm/xe/guc: Add VF_STATE_NOTIFY and VF_CONTROL to ABI drm/xe/pf: Add minimal support for VF_STATE_NOTIFY events drm/xe: Store pointer to struct xe_gt in gt/ debugfs directory drm/xe: Define helper for GT specific debugfs files drm/xe: Refactor GT debugfs drm/xe/guc: Prefer GT oriented logs for GuC messages drm/xe/guc: Reuse code while debugging GuC params drm/xe: Move PTE/PDE bit definitions to proper header drm/xe: Drop xe_vm_assert_held() macro definition from xe_bo.h drm/xe/guc: Use drm_device-managed version of mutex_init() drm/xe/guc: Initialize GuC ID manager sooner drm/xe/vf: Don't emit access to Global HWSP if VF drm/xe/vf: Don't try to program MOCS if VF drm/xe/vf: Don't try to read legacy GuC MMIO notification if VF drm/xe/vf: Mark supported firmwares as preloaded drm/xe: Assert pat.ops function pointers drm/xe: Check pat.ops before dumping PAT settings drm/xe: Add max_vfs module parameter drm/xe: Add proper detection of the SR-IOV PF mode drm/xe: Add SR-IOV info attribute to debugfs drm/xe/guc: Prefer GT oriented logs in GuC CTB code drm/xe/guc: Prefer GT oriented asserts in CTB code drm/xe/pf: Introduce mutex to protect VFs configurations drm/xe/pf: Introduce helper functions for use by PF drm/xe/guc: Add PF2GUC_UPDATE_VGT_POLICY to ABI drm/xe/guc: Add helpers for GuC KLVs drm/xe/pf: Add support to configure GuC SR-IOV policies drm/xe: Add helper to format SR-IOV function name drm/xe: Allow to assign GGTT region to the VF drm/xe: Add xe_ttm_vram_get_avail drm/xe/guc: Add PF2GUC_UPDATE_VF_CFG to ABI drm/xe/pf: Add SR-IOV PF specific early GT initialization drm/xe/pf: Add support to configure SR-IOV VFs drm/xe/pf: Fix xe_gt_sriov_pf_config_print_available_ggtt() drm/xe/guc: Fix arguments passed to relay G2H handlers Mika Kuoppala (3): drm/xe: Expose user fence from xe_sync_entry drm/xe: Deny unbinds if uapi ufence pending drm/xe: Remove obsolete async_ops from struct xe_vm Nathan Chancellor (1): drm/xe: Add xe_guc_ads.c to uses_generated_oob Niranjana Vishwanathapura (4): drm/xe: Separate out sched/deregister_done handling drm/xe: Streamline exec queue freeing path drm/xe: Use correct function pointer type drm/xe: Use FIELD_PREP for lrc descriptor Nirmoy Das (7): drm/xe: Remove unused 'create' parameter from queue property logic drm/xe: Remove unused xe_bo->props struct drm/xe: Fix potential integer overflow in page size calculation drm/xe: Drop bogus vma NULL check drm/xe: Remove usage of unsafe strcpy drm/xe: Add a NULL check in xe_ttm_stolen_mgr_init drm/xe: Create a helper function to init job's user fence Oak Zeng (2): drm/xe: Introduce helper to populate userptr drm/xe: Use hmm_range_fault to populate user pages Paulo Zanoni (1): drm/xe: get rid of MAX_BINDS Priyanka Dandamudi (1): drm/xe/xe_trace: Add move_lacks_source detail to xe_bo_move trace Radhakrishna Sripada (1): drm/xe/xelpg: Add Wa_14020495402 Ravi Kumar Vodapalli (1): drm/xe: Add new PCI IDs to DG2 platform Riana Tauro (2): drm/xe: check pcode init status only on root gt of root tile drm/xe: re-order lmem init check and wait for initialization to complete Rodrigo Vivi (33): drm/xe: Document Xe PM component drm/xe: Convert mem_access assertion towards the runtime_pm state drm/xe: Runtime PM wake on every IOCTL drm/xe: Convert kunit tests from mem_access to xe_pm_runtime drm/xe: Runtime PM wake on every sysfs call drm/xe: Remove mem_access from guc_pc calls drm/xe: Runtime PM wake on every debugfs call drm/xe: Replace dma_buf mem_access per direct xe_pm_runtime calls drm/xe: Convert hwmon from mem_access to xe_pm_runtime calls drm/xe: Remove useless mem_access protection for query ioctls drm/xe: Convert gsc_work from mem_access to xe_pm_runtime drm/xe: Remove mem_access from suspend and resume functions drm/xe: Convert gt_reset from mem_access to xe_pm_runtime drm/xe: Remove useless mem_access on PAT dumps drm/xe: Fix display runtime_pm handling drm/xe: Create a xe_pm_runtime_resume_and_get variant for display drm/xe: Convert xe_pm_runtime_{get, put} to void and protect from recursion drm/xe: Return immediately on tile_init failure drm/xe: Convert gt suspend/resume messages to debug drm/xe: Add dbg messages on the suspend resume functions. drm/xe: Protect devcoredump access after unbind drm/xe: Introduce xe_pm_runtime_get_noresume for inner callers drm/xe: Introduce intel_runtime_pm_get_noresume at compat-i915-headers for display drm/i915/display: convert inner wakeref get towards get_if_in_use drm/xe: Move lockdep protection from mem_access to xe_pm_runtime drm/xe: Remove useless mem_access during probe drm/xe: Convert xe_gem_fault to use direct xe_pm_runtime calls drm/xe: Removing extra mem_access protection from runtime pm drm/xe: Convert mem_access_if_ongoing to direct xe_pm_runtime_get_if_active drm/xe: Ensure all the inner access are using the _noresume variant drm/xe: Add outer runtime_pm protection to xe_live_ktest@xe_dma_buf drm/i915: Convert intel_runtime_pm_get_noresume towards raw wakeref drm/xe: Kill xe_device_mem_access_{get*,put} Shekhar Chauhan (1): drm/xe/xe2hpg: Introduce performance tuning changes for Xe2_HPG. Shuicheng Lin (1): drm/xe/xe_tracer: Align fence output format in ftrace log Suraj Kandpal (6): drm/i915/hdcp: Move intel_hdcp_gsc_message def away from header file drm/xe/hdcp: Use xe_device struct drm/xe: Use gsc_proxy_init_done to check proxy status drm/xe/hdcp: Enable HDCP for XE drm/xe/gsc: Fix kernel doc for xe_gsc_create_host_session_id drm/xe/hdcp: Fix condition for hdcp gsc cs requirement Tejas Upadhyay (1): drm/xe/gt: Remove continue statement which has no effect Thomas Hellström (5): drm/xe: Use ring ops TLB invalidation for rebinds drm/xe: Rework rebinding drm/xe: Make TLB invalidation fences unordered drm/xe: Move vma rebinding to the drm_exec locking loop Merge drm/drm-next into drm-xe-next Vinay Belgaumkar (3): drm/xe/guc: Add some failure checks drm/xe/guc: Remove explicit shutdown of SLPC drm/xe/lnl: Apply GuC Wa_13011645652 Zhanjun Dong (2): drm/xe/guc: Fix missing topology init drm/xe: Add helper macro to loop each DSS .../ABI/testing/sysfs-driver-intel-xe-hwmon | 94 +- drivers/base/devcoredump.c | 23 + drivers/gpu/drm/i915/display/intel_display_power.c | 8 +- drivers/gpu/drm/i915/display/intel_hdcp_gsc.c | 6 + drivers/gpu/drm/i915/display/intel_hdcp_gsc.h | 7 +- drivers/gpu/drm/i915/i915_hwmon.c | 46 +- drivers/gpu/drm/i915/intel_runtime_pm.c | 14 +- drivers/gpu/drm/xe/Kconfig | 2 + drivers/gpu/drm/xe/Makefile | 13 +- drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h | 200 +- drivers/gpu/drm/xe/abi/guc_klvs_abi.h | 10 + drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h | 17 +- .../drm/xe/compat-i915-headers/i915_gem_stolen.h | 9 +- .../gpu/drm/xe/compat-i915-headers/intel_uncore.h | 6 +- drivers/gpu/drm/xe/display/intel_fb_bo.c | 16 +- drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 16 +- drivers/gpu/drm/xe/display/xe_display.c | 13 +- drivers/gpu/drm/xe/display/xe_dsb_buffer.c | 4 +- drivers/gpu/drm/xe/display/xe_fb_pin.c | 39 +- drivers/gpu/drm/xe/display/xe_hdcp_gsc.c | 240 ++- drivers/gpu/drm/xe/display/xe_plane_initial.c | 7 +- .../drm/xe/instructions/xe_gfx_state_commands.h | 18 + .../gpu/drm/xe/instructions/xe_gfxpipe_commands.h | 3 + drivers/gpu/drm/xe/instructions/xe_instr_defs.h | 1 + drivers/gpu/drm/xe/regs/xe_engine_regs.h | 5 +- drivers/gpu/drm/xe/regs/xe_gsc_regs.h | 7 + drivers/gpu/drm/xe/regs/xe_gt_regs.h | 65 +- drivers/gpu/drm/xe/regs/xe_gtt_defs.h | 37 + drivers/gpu/drm/xe/regs/xe_guc_regs.h | 15 +- drivers/gpu/drm/xe/regs/xe_reg_defs.h | 19 + drivers/gpu/drm/xe/regs/xe_regs.h | 2 +- drivers/gpu/drm/xe/regs/xe_sriov_regs.h | 3 + drivers/gpu/drm/xe/tests/Makefile | 3 +- drivers/gpu/drm/xe/tests/xe_bo.c | 12 +- drivers/gpu/drm/xe/tests/xe_bo_test.c | 5 - drivers/gpu/drm/xe/tests/xe_dma_buf.c | 57 +- drivers/gpu/drm/xe/tests/xe_dma_buf_test.c | 5 - drivers/gpu/drm/xe/tests/xe_guc_id_mgr_test.c | 136 ++ drivers/gpu/drm/xe/tests/xe_live_test_mod.c | 10 + drivers/gpu/drm/xe/tests/xe_migrate.c | 27 +- drivers/gpu/drm/xe/tests/xe_migrate_test.c | 5 - drivers/gpu/drm/xe/tests/xe_mocs.c | 96 +- drivers/gpu/drm/xe/tests/xe_mocs_test.c | 5 - drivers/gpu/drm/xe/tests/xe_wa_test.c | 1 + drivers/gpu/drm/xe/xe_bb.c | 6 +- drivers/gpu/drm/xe/xe_bo.c | 137 +- drivers/gpu/drm/xe/xe_bo.h | 74 +- drivers/gpu/drm/xe/xe_bo_evict.c | 4 +- drivers/gpu/drm/xe/xe_debugfs.c | 23 +- drivers/gpu/drm/xe/xe_devcoredump.c | 47 +- drivers/gpu/drm/xe/xe_devcoredump.h | 6 + drivers/gpu/drm/xe/xe_device.c | 236 ++- drivers/gpu/drm/xe/xe_device.h | 9 - drivers/gpu/drm/xe/xe_device_sysfs.c | 16 +- drivers/gpu/drm/xe/xe_device_sysfs.h | 2 +- drivers/gpu/drm/xe/xe_device_types.h | 15 +- drivers/gpu/drm/xe/xe_dma_buf.c | 7 +- drivers/gpu/drm/xe/xe_drm_client.c | 8 +- drivers/gpu/drm/xe/xe_exec.c | 93 +- drivers/gpu/drm/xe/xe_exec_queue.c | 74 +- drivers/gpu/drm/xe/xe_exec_queue_types.h | 13 +- drivers/gpu/drm/xe/xe_ggtt.c | 136 +- drivers/gpu/drm/xe/xe_ggtt.h | 8 +- drivers/gpu/drm/xe/xe_gsc.c | 100 +- drivers/gpu/drm/xe/xe_gsc.h | 2 + drivers/gpu/drm/xe/xe_gsc_proxy.c | 15 +- drivers/gpu/drm/xe/xe_gsc_proxy.h | 1 + drivers/gpu/drm/xe/xe_gsc_submit.c | 15 + drivers/gpu/drm/xe/xe_gsc_submit.h | 1 + drivers/gpu/drm/xe/xe_gsc_types.h | 1 + drivers/gpu/drm/xe/xe_gt.c | 63 +- drivers/gpu/drm/xe/xe_gt_ccs_mode.c | 19 +- drivers/gpu/drm/xe/xe_gt_ccs_mode.h | 2 +- drivers/gpu/drm/xe/xe_gt_clock.c | 5 - drivers/gpu/drm/xe/xe_gt_clock.h | 2 +- drivers/gpu/drm/xe/xe_gt_debugfs.c | 240 ++- drivers/gpu/drm/xe/xe_gt_debugfs.h | 2 + drivers/gpu/drm/xe/xe_gt_freq.c | 63 +- drivers/gpu/drm/xe/xe_gt_freq.h | 2 +- drivers/gpu/drm/xe/xe_gt_idle.c | 43 +- drivers/gpu/drm/xe/xe_gt_idle.h | 2 +- drivers/gpu/drm/xe/xe_gt_mcr.c | 39 +- drivers/gpu/drm/xe/xe_gt_mcr.h | 14 + drivers/gpu/drm/xe/xe_gt_pagefault.c | 3 +- drivers/gpu/drm/xe/xe_gt_sriov_pf.c | 52 + drivers/gpu/drm/xe/xe_gt_sriov_pf.h | 20 + drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c | 1977 ++++++++++++++++++++ drivers/gpu/drm/xe/xe_gt_sriov_pf_config.h | 56 + drivers/gpu/drm/xe/xe_gt_sriov_pf_config_types.h | 54 + drivers/gpu/drm/xe/xe_gt_sriov_pf_control.c | 257 +++ drivers/gpu/drm/xe/xe_gt_sriov_pf_control.h | 27 + drivers/gpu/drm/xe/xe_gt_sriov_pf_helpers.h | 35 + drivers/gpu/drm/xe/xe_gt_sriov_pf_policy.c | 418 +++++ drivers/gpu/drm/xe/xe_gt_sriov_pf_policy.h | 25 + drivers/gpu/drm/xe/xe_gt_sriov_pf_policy_types.h | 31 + drivers/gpu/drm/xe/xe_gt_sriov_pf_types.h | 34 + drivers/gpu/drm/xe/xe_gt_sysfs.c | 14 +- drivers/gpu/drm/xe/xe_gt_sysfs.h | 2 +- drivers/gpu/drm/xe/xe_gt_throttle_sysfs.c | 16 +- drivers/gpu/drm/xe/xe_gt_throttle_sysfs.h | 2 +- drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c | 44 +- drivers/gpu/drm/xe/xe_gt_tlb_invalidation.h | 2 +- drivers/gpu/drm/xe/xe_gt_topology.c | 115 +- drivers/gpu/drm/xe/xe_gt_topology.h | 11 + drivers/gpu/drm/xe/xe_gt_types.h | 29 +- drivers/gpu/drm/xe/xe_guc.c | 122 +- drivers/gpu/drm/xe/xe_guc_ads.c | 137 +- drivers/gpu/drm/xe/xe_guc_ads_types.h | 2 + drivers/gpu/drm/xe/xe_guc_ct.c | 135 +- drivers/gpu/drm/xe/xe_guc_debugfs.c | 9 +- drivers/gpu/drm/xe/xe_guc_fwif.h | 7 +- drivers/gpu/drm/xe/xe_guc_hwconfig.c | 7 +- drivers/gpu/drm/xe/xe_guc_id_mgr.c | 279 +++ drivers/gpu/drm/xe/xe_guc_id_mgr.h | 22 + drivers/gpu/drm/xe/xe_guc_klv_helpers.c | 134 ++ drivers/gpu/drm/xe/xe_guc_klv_helpers.h | 51 + drivers/gpu/drm/xe/xe_guc_log.c | 5 +- drivers/gpu/drm/xe/xe_guc_pc.c | 116 +- drivers/gpu/drm/xe/xe_guc_submit.c | 230 ++- drivers/gpu/drm/xe/xe_guc_submit.h | 6 +- drivers/gpu/drm/xe/xe_guc_submit_types.h | 13 +- drivers/gpu/drm/xe/xe_guc_types.h | 21 +- drivers/gpu/drm/xe/xe_hmm.c | 253 +++ drivers/gpu/drm/xe/xe_hmm.h | 11 + drivers/gpu/drm/xe/xe_huc.c | 13 +- drivers/gpu/drm/xe/xe_huc_debugfs.c | 5 +- drivers/gpu/drm/xe/xe_hw_engine.c | 46 +- drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.c | 155 +- drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.h | 7 + drivers/gpu/drm/xe/xe_hw_fence.c | 2 +- drivers/gpu/drm/xe/xe_hwmon.c | 270 +-- drivers/gpu/drm/xe/xe_irq.c | 3 +- drivers/gpu/drm/xe/xe_lmtt.c | 6 +- drivers/gpu/drm/xe/xe_lrc.c | 174 +- drivers/gpu/drm/xe/xe_lrc.h | 5 + drivers/gpu/drm/xe/xe_lrc_types.h | 2 + drivers/gpu/drm/xe/xe_memirq.c | 9 +- drivers/gpu/drm/xe/xe_migrate.c | 16 +- drivers/gpu/drm/xe/xe_mmio.c | 144 +- drivers/gpu/drm/xe/xe_mmio.h | 82 +- drivers/gpu/drm/xe/xe_mocs.c | 66 +- drivers/gpu/drm/xe/xe_module.c | 7 + drivers/gpu/drm/xe/xe_module.h | 3 + drivers/gpu/drm/xe/xe_pat.c | 23 +- drivers/gpu/drm/xe/xe_pci.c | 43 +- drivers/gpu/drm/xe/xe_pcode.c | 117 +- drivers/gpu/drm/xe/xe_pcode.h | 6 +- drivers/gpu/drm/xe/xe_platform_types.h | 1 + drivers/gpu/drm/xe/xe_pm.c | 327 +++- drivers/gpu/drm/xe/xe_pm.h | 13 +- drivers/gpu/drm/xe/xe_preempt_fence.c | 2 +- drivers/gpu/drm/xe/xe_pt.c | 38 +- drivers/gpu/drm/xe/xe_query.c | 53 +- drivers/gpu/drm/xe/xe_ring_ops.c | 22 +- drivers/gpu/drm/xe/xe_sa.c | 5 +- drivers/gpu/drm/xe/xe_sched_job.c | 33 +- drivers/gpu/drm/xe/xe_sched_job.h | 3 + drivers/gpu/drm/xe/xe_sched_job_types.h | 2 + drivers/gpu/drm/xe/xe_sriov.c | 62 +- drivers/gpu/drm/xe/xe_sriov.h | 6 +- drivers/gpu/drm/xe/xe_sriov_pf.c | 104 + drivers/gpu/drm/xe/xe_sriov_pf.h | 30 + drivers/gpu/drm/xe/xe_sriov_pf_helpers.h | 46 + drivers/gpu/drm/xe/xe_sriov_types.h | 19 + drivers/gpu/drm/xe/xe_sync.c | 7 +- drivers/gpu/drm/xe/xe_sync.h | 1 - drivers/gpu/drm/xe/xe_tile.c | 17 +- drivers/gpu/drm/xe/xe_tile_sysfs.c | 17 +- drivers/gpu/drm/xe/xe_tile_sysfs.h | 2 +- drivers/gpu/drm/xe/xe_trace.h | 6 +- drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c | 15 +- drivers/gpu/drm/xe/xe_ttm_sys_mgr.c | 5 +- drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 14 +- drivers/gpu/drm/xe/xe_ttm_vram_mgr.h | 1 + drivers/gpu/drm/xe/xe_tuning.c | 10 +- drivers/gpu/drm/xe/xe_uc.c | 11 - drivers/gpu/drm/xe/xe_uc_fw.c | 53 +- drivers/gpu/drm/xe/xe_uc_fw.h | 8 +- drivers/gpu/drm/xe/xe_uc_fw_types.h | 3 +- drivers/gpu/drm/xe/xe_vm.c | 341 ++-- drivers/gpu/drm/xe/xe_vm.h | 8 +- drivers/gpu/drm/xe/xe_vm_types.h | 15 +- drivers/gpu/drm/xe/xe_vram_freq.c | 20 +- drivers/gpu/drm/xe/xe_vram_freq.h | 2 +- drivers/gpu/drm/xe/xe_wa.c | 135 +- drivers/gpu/drm/xe/xe_wa_oob.rules | 11 +- include/drm/xe_pciids.h | 7 +- include/linux/devcoredump.h | 5 + include/uapi/drm/xe_drm.h | 25 +- 189 files changed, 8136 insertions(+), 2229 deletions(-) create mode 100644 drivers/gpu/drm/xe/instructions/xe_gfx_state_commands.h create mode 100644 drivers/gpu/drm/xe/regs/xe_gtt_defs.h create mode 100644 drivers/gpu/drm/xe/tests/xe_guc_id_mgr_test.c create mode 100644 drivers/gpu/drm/xe/tests/xe_live_test_mod.c create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf.c create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf.h create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_config.h create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_config_types.h create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_control.c create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_control.h create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_helpers.h create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_policy.c create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_policy.h create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_policy_types.h create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_types.h create mode 100644 drivers/gpu/drm/xe/xe_guc_id_mgr.c create mode 100644 drivers/gpu/drm/xe/xe_guc_id_mgr.h create mode 100644 drivers/gpu/drm/xe/xe_guc_klv_helpers.c create mode 100644 drivers/gpu/drm/xe/xe_guc_klv_helpers.h create mode 100644 drivers/gpu/drm/xe/xe_hmm.c create mode 100644 drivers/gpu/drm/xe/xe_hmm.h create mode 100644 drivers/gpu/drm/xe/xe_sriov_pf.c create mode 100644 drivers/gpu/drm/xe/xe_sriov_pf.h create mode 100644 drivers/gpu/drm/xe/xe_sriov_pf_helpers.h