Commit 1c9982b4 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'drm-fixes-2026-03-14' of https://gitlab.freedesktop.org/drm/kernel

Pull drm fixes from Dave Airlie:
 "The weekly drm fixes. This is mostly msm fixes across the functions,
  with amdgpu and i915. It also has a core rust fix and changes in
  nova-core to take advantage of it, and otherwise just has some minor
  driver fixes, and marks loongsoon as orphaned.

  rust:
   - Fix safety issue in dma_read! and dma_write!

  nova-core:
   - Fix UB in DmaGspMem pointer accessors
   - Fix stack overflow in GSP memory allocation

  loongsoon:
   - mark drm driver as unmaintained

  msm:
   - Core:
      - Adjusted msm_iommu_pagetable_prealloc_allocate() allocation type
   - DPU:
      - Fixed blue screens on Hamoa laptops by reverting the LM
        reservation
      - Fixed the size of the LM block on several platforms
      - Dropped usage of %pK (again)
      - Fixed smatch warning on SSPP v13+ code
      - Fixed INTF_6 interrupts on Lemans
   - DSI:
      - Fixed DSI PHY revision on Kaanapali
      - Fixed pixel clock calculation for the bonded DSI mode panels
        with compression enabled
   - DT bindings:
      - Fixed DisplayPort description on Glymur
      - Fixed model name in SM8750 MDSS schema
   - GPU:
      - Added MODULE_DEVICE_TABLE to the GPU driver
      - Fix bogus protect error on X2-85
      - Fix dma_free_attrs() buffer size
      - Gen8 UBWC fix for Glymur

  i915:
   - Avoid hang when configuring VRR [icl]
   - Fix sg_table overflow with >4GB folios
   - Fix PSR Selective Update handling
   - Fix eDP ALPM read-out sequence

  amdgpu:
   - SMU13 fix
   - SMU14 fix
   - Fixes for bringup hw testing
   - Kerneldoc fix
   - GC12 idle power fix for compute workloads
   - DCCG fixes

  amdkfd:
   - Fix missing BO unreserve in an error path

  ivpu:
   - drop unnecessary bootparams register setting

  amdxdna:
   - fix runtime/suspend resume deadlock

  bridge:
   - ti-sn65dsi83: fix DSI rounding and dual LVDS

  gud:
   - fix NULL crtc dereference on display disable"

* tag 'drm-fixes-2026-03-14' of https://gitlab.freedesktop.org/drm/kernel: (44 commits)
  drm/amd: Set num IP blocks to 0 if discovery fails
  drm/amdkfd: Unreserve bo if queue update failed
  drm/amd/display: Check for S0i3 to be done before DCCG init on DCN21
  drm/amd/display: Add missing DCCG register entries for DCN20-DCN316
  gpu: nova-core: gsp: fix UB in DmaGspMem pointer accessors
  drm/loongson: Mark driver as orphaned
  accel/amdxdna: Fix runtime suspend deadlock when there is pending job
  gpu: nova-core: fix stack overflow in GSP memory allocation
  accel/ivpu: Remove boot params address setting via MMIO register
  drm/i915/dp: Read ALPM caps after DPCD init
  drm/i915/psr: Write DSC parameters on Selective Update in ET mode
  drm/i915/dsc: Add helper for writing DSC Selective Update ET parameters
  drm/i915/dsc: Add Selective Update register definitions
  drm/i915/psr: Repeat Selective Update area alignment
  drm/i915: Fix potential overflow of shmem scatterlist length
  drm/i915/vrr: Configure VRR timings after enabling TRANS_DDI_FUNC_CTL
  drm/bridge: ti-sn65dsi83: halve horizontal syncs for dual LVDS output
  drm/bridge: ti-sn65dsi83: fix CHA_DSI_CLK_RANGE rounding
  drm/gud: fix NULL crtc dereference on display disable
  drm/sitronix/st7586: fix bad pixel data due to byte swap
  ...
parents 9abff574 b28913e8
Loading
Loading
Loading
Loading
+20 −1
Original line number Diff line number Diff line
@@ -253,7 +253,6 @@ allOf:
            enum:
              # these platforms support 2 streams MST on some interfaces,
              # others are SST only
              - qcom,glymur-dp
              - qcom,sc8280xp-dp
              - qcom,x1e80100-dp
    then:
@@ -310,6 +309,26 @@ allOf:
          minItems: 6
          maxItems: 8

  - if:
      properties:
        compatible:
          contains:
            enum:
              # these platforms support 2 streams MST on some interfaces,
              # others are SST only, but all controllers have 4 ports
              - qcom,glymur-dp
    then:
      properties:
        reg:
          minItems: 9
          maxItems: 9
        clocks:
          minItems: 5
          maxItems: 6
        clocks-names:
          minItems: 5
          maxItems: 6

unevaluatedProperties: false

examples:
+10 −6
Original line number Diff line number Diff line
@@ -176,13 +176,17 @@ examples:
                };
            };

            displayport-controller@ae90000 {
            displayport-controller@af54000 {
                compatible = "qcom,glymur-dp";
                reg = <0xae90000 0x200>,
                      <0xae90200 0x200>,
                      <0xae90400 0x600>,
                      <0xae91000 0x400>,
                      <0xae91400 0x400>;
                reg = <0xaf54000 0x200>,
                      <0xaf54200 0x200>,
                      <0xaf55000 0xc00>,
                      <0xaf56000 0x400>,
                      <0xaf57000 0x400>,
                      <0xaf58000 0x400>,
                      <0xaf59000 0x400>,
                      <0xaf5a000 0x600>,
                      <0xaf5b000 0x600>;

                interrupt-parent = <&mdss>;
                interrupts = <12>;
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

description:
  SM8650 MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like
  SM8750 MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like
  DPU display controller, DSI and DP interfaces etc.

$ref: /schemas/display/msm/mdss-common.yaml#
+1 −2
Original line number Diff line number Diff line
@@ -8626,9 +8626,8 @@ F: drivers/gpu/drm/lima/
F:	include/uapi/drm/lima_drm.h
DRM DRIVERS FOR LOONGSON
M:	Sui Jingfeng <suijingfeng@loongson.cn>
L:	dri-devel@lists.freedesktop.org
S:	Supported
S:	Orphan
T:	git https://gitlab.freedesktop.org/drm/misc/kernel.git
F:	drivers/gpu/drm/loongson/
+2 −12
Original line number Diff line number Diff line
@@ -165,7 +165,6 @@ aie2_sched_notify(struct amdxdna_sched_job *job)

	trace_xdna_job(&job->base, job->hwctx->name, "signaled fence", job->seq);

	amdxdna_pm_suspend_put(job->hwctx->client->xdna);
	job->hwctx->priv->completed++;
	dma_fence_signal(fence);

@@ -290,19 +289,11 @@ aie2_sched_job_run(struct drm_sched_job *sched_job)
	struct dma_fence *fence;
	int ret;

	ret = amdxdna_pm_resume_get(hwctx->client->xdna);
	if (ret)
		return NULL;

	if (!hwctx->priv->mbox_chann) {
		amdxdna_pm_suspend_put(hwctx->client->xdna);
	if (!hwctx->priv->mbox_chann)
		return NULL;
	}

	if (!mmget_not_zero(job->mm)) {
		amdxdna_pm_suspend_put(hwctx->client->xdna);
	if (!mmget_not_zero(job->mm))
		return ERR_PTR(-ESRCH);
	}

	kref_get(&job->refcnt);
	fence = dma_fence_get(job->fence);
@@ -333,7 +324,6 @@ aie2_sched_job_run(struct drm_sched_job *sched_job)

out:
	if (ret) {
		amdxdna_pm_suspend_put(hwctx->client->xdna);
		dma_fence_put(job->fence);
		aie2_job_put(job);
		mmput(job->mm);
Loading