Merge tag 'drm-next-2025-06-06' of https://gitlab.freedesktop.org/drm/kernel
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 6 Jun 2025 15:09:56 +0000 (08:09 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 6 Jun 2025 15:09:56 +0000 (08:09 -0700)
Pull drm fixes from Dave Airlie:
 "This is pretty much two weeks worth of fixes, plus one thing that
  might be considered next: amdkfd is now able to be enabled on risc-v
  platforms.

  Otherwise, amdgpu and xe with the majority of fixes, and then a
  smattering all over.

  panel:
   - nt37801: fix IS_ERR
   - nt37801: fix KConfig

  connector:
   - Fix null deref in HDMI audio helper.

  bridge:
   - analogix_dp: fixup clk-disable removal

  nouveau:
   - minor typo fix (',' vs ';')

  msm:
   - mailmap updates

  i915:
   - Fix the enabling/disabling of DP audio SDP splitting
   - Fix PSR register definitions for ALPM
   - Fix u32 overflow in SNPS PHY HDMI PLL setup
   - Fix GuC pending message underflow when submit fails
   - Fix GuC wakeref underflow race during reset

  xe:
   - Two documentation fixes
   - A couple of vm init fixes
   - Hwmon fixes
   - Drop reduntant conversion to bool
   - Fix CONFIG_INTEL_VSEC dependency
   - Rework eviction rejection of bound external bos
   - Stop re-submitting signalled jobs
   - A couple of pxp fixes
   - Add back a fix that got lost in a merge
   - Create LRC bo without VM
   - Fix for the above fix

  amdgpu:
   - UserQ fixes
   - SMU 13.x fixes
   - VCN fixes
   - JPEG fixes
   - Misc cleanups
   - runtime pm fix
   - DCN 4.0.1 fixes
   - Misc display fixes
   - ISP fix
   - VRAM manager fix
   - RAS fixes
   - IP discovery fix
   - Cleaner shader fix for GC 10.1.x
   - OD fix
   - Non-OLED panel fix
   - Misc display fixes
   - Brightness fixes

  amdkfd:
   - Enable CONFIG_HSA_AMD on RISCV
   - SVM fix
   - Misc cleanups
   - Ref leak fix
   - WPTR BO fix

  radeon:
   - Misc cleanups"

* tag 'drm-next-2025-06-06' of https://gitlab.freedesktop.org/drm/kernel: (105 commits)
  drm/nouveau/vfn/r535: Convert comma to semicolon
  drm/xe: remove unmatched xe_vm_unlock() from __xe_exec_queue_init()
  drm/xe: Create LRC BO without VM
  drm/xe/guc_submit: add back fix
  drm/xe/pxp: Clarify PXP queue creation behavior if PXP is not ready
  drm/xe/pxp: Use the correct define in the set_property_funcs array
  drm/xe/sched: stop re-submitting signalled jobs
  drm/xe: Rework eviction rejection of bound external bos
  drm/xe/vsec: fix CONFIG_INTEL_VSEC dependency
  drm/xe: drop redundant conversion to bool
  drm/xe/hwmon: Move card reactive critical power under channel card
  drm/xe/hwmon: Add support to manage power limits though mailbox
  drm/xe/vm: move xe_svm_init() earlier
  drm/xe/vm: move rebind_work init earlier
  MAINTAINERS: .mailmap: update Rob Clark's email address
  mailmap: Update entry for Akhil P Oommen
  MAINTAINERS: update my email address
  MAINTAINERS: drop myself as maintainer
  drm/i915/display: Fix u32 overflow in SNPS PHY HDMI PLL setup
  drm/amd/display: Fix default DC and AC levels
  ...

1  2 
.mailmap
MAINTAINERS
drivers/gpu/drm/amd/amdgpu/Kconfig
drivers/gpu/drm/i915/display/intel_dp_mst.c
drivers/gpu/drm/xe/Kconfig
drivers/gpu/drm/xe/xe_device_types.h
drivers/gpu/drm/xe/xe_exec_queue.c
drivers/gpu/drm/xe/xe_guc_submit.c
drivers/gpu/drm/xe/xe_lrc.c
drivers/gpu/drm/xe/xe_pci.c

diff --cc .mailmap
Simple merge
diff --cc MAINTAINERS
index 633dcd3d5eaf90ae61cf7fd3569f266fdd456cf5,712fdb49017e2c40690f1373715ea457accd8f3a..6099085ab197a0feddfa5fd0cce51c0d646a0d9b
@@@ -20439,8 -20080,7 +20440,8 @@@ F:   drivers/regulator/vqmmc-ipq4019-regu
  QUALCOMM IRIS VIDEO ACCELERATOR DRIVER
  M:    Vikash Garodia <quic_vgarodia@quicinc.com>
  M:    Dikshita Agarwal <quic_dikshita@quicinc.com>
- R:    Abhinav Kumar <quic_abhinavk@quicinc.com>
+ R:    Abhinav Kumar <abhinav.kumar@linux.dev>
 +R:    Bryan O'Donoghue <bryan.odonoghue@linaro.org>
  L:    linux-media@vger.kernel.org
  L:    linux-arm-msm@vger.kernel.org
  S:    Maintained
Simple merge
index 2169bc969ea16dc1e54c94590c6e15513f970083,98b46c534278788b040962849e404d7b4296f35d..fcc2677a4229dcc6da1d3090db9928960da1873b
@@@ -1,7 -1,9 +1,9 @@@
  # SPDX-License-Identifier: GPL-2.0-only
  config DRM_XE
        tristate "Intel Xe Graphics"
 -      depends on DRM && PCI && MMU && (m || (y && KUNIT=y))
 +      depends on DRM && PCI && (m || (y && KUNIT=y))
+       depends on INTEL_VSEC || !INTEL_VSEC
+       depends on X86_PLATFORM_DEVICES || !(X86 && ACPI)
        select INTERVAL_TREE
        # we need shmfs for the swappable backing store, and in particular
        # the shmem_readpage() which depends upon tmpfs
Simple merge
Simple merge
Simple merge
index 61a2e87990a9de62f04d0b35cc5709d9cc16ff56,e1db6f2a1ad03550a9d1be6d8dcd9eb41373f2cf..63d74e27f54cf11bb5032bb1bbfcc892842ea253
@@@ -909,69 -876,7 +909,66 @@@ static void xe_lrc_set_ppgtt(struct xe_
  static void xe_lrc_finish(struct xe_lrc *lrc)
  {
        xe_hw_fence_ctx_finish(&lrc->fence_ctx);
-       xe_bo_lock(lrc->bo, false);
-       xe_bo_unpin(lrc->bo);
-       xe_bo_unlock(lrc->bo);
-       xe_bo_put(lrc->bo);
+       xe_bo_unpin_map_no_vm(lrc->bo);
 +      xe_bo_unpin_map_no_vm(lrc->bb_per_ctx_bo);
 +}
 +
 +/*
 + * xe_lrc_setup_utilization() - Setup wa bb to assist in calculating active
 + * context run ticks.
 + * @lrc: Pointer to the lrc.
 + *
 + * Context Timestamp (CTX_TIMESTAMP) in the LRC accumulates the run ticks of the
 + * context, but only gets updated when the context switches out. In order to
 + * check how long a context has been active before it switches out, two things
 + * are required:
 + *
 + * (1) Determine if the context is running:
 + * To do so, we program the WA BB to set an initial value for CTX_TIMESTAMP in
 + * the LRC. The value chosen is 1 since 0 is the initial value when the LRC is
 + * initialized. During a query, we just check for this value to determine if the
 + * context is active. If the context switched out, it would overwrite this
 + * location with the actual CTX_TIMESTAMP MMIO value. Note that WA BB runs as
 + * the last part of context restore, so reusing this LRC location will not
 + * clobber anything.
 + *
 + * (2) Calculate the time that the context has been active for:
 + * The CTX_TIMESTAMP ticks only when the context is active. If a context is
 + * active, we just use the CTX_TIMESTAMP MMIO as the new value of utilization.
 + * While doing so, we need to read the CTX_TIMESTAMP MMIO for the specific
 + * engine instance. Since we do not know which instance the context is running
 + * on until it is scheduled, we also read the ENGINE_ID MMIO in the WA BB and
 + * store it in the PPHSWP.
 + */
 +#define CONTEXT_ACTIVE 1ULL
 +static void xe_lrc_setup_utilization(struct xe_lrc *lrc)
 +{
 +      u32 *cmd;
 +
 +      cmd = lrc->bb_per_ctx_bo->vmap.vaddr;
 +
 +      *cmd++ = MI_STORE_REGISTER_MEM | MI_SRM_USE_GGTT | MI_SRM_ADD_CS_OFFSET;
 +      *cmd++ = ENGINE_ID(0).addr;
 +      *cmd++ = __xe_lrc_engine_id_ggtt_addr(lrc);
 +      *cmd++ = 0;
 +
 +      *cmd++ = MI_STORE_DATA_IMM | MI_SDI_GGTT | MI_SDI_NUM_DW(1);
 +      *cmd++ = __xe_lrc_ctx_timestamp_ggtt_addr(lrc);
 +      *cmd++ = 0;
 +      *cmd++ = lower_32_bits(CONTEXT_ACTIVE);
 +
 +      if (lrc_to_xe(lrc)->info.has_64bit_timestamp) {
 +              *cmd++ = MI_STORE_DATA_IMM | MI_SDI_GGTT | MI_SDI_NUM_DW(1);
 +              *cmd++ = __xe_lrc_ctx_timestamp_udw_ggtt_addr(lrc);
 +              *cmd++ = 0;
 +              *cmd++ = upper_32_bits(CONTEXT_ACTIVE);
 +      }
 +
 +      *cmd++ = MI_BATCH_BUFFER_END;
 +
 +      xe_lrc_write_ctx_reg(lrc, CTX_BB_PER_CTX_PTR,
 +                           xe_bo_ggtt_addr(lrc->bb_per_ctx_bo) | 1);
 +
  }
  
  #define PVC_CTX_ASID          (0x2e + 1)
Simple merge