Commit 269ce3bd authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'drm-fixes-2024-11-02' of https://gitlab.freedesktop.org/drm/kernel

Pull drm fixes from Dave Airlie:
 "Regular fixes pull, nothing too out of the ordinary, the mediatek
  fixes came in a batch that I might have preferred a bit earlier but
  all seem fine, otherwise regular xe/amdgpu and a few misc ones.

  xe:
   - Fix missing HPD interrupt enabling, bringing one PM refactor with it
   - Workaround LNL GGTT invalidation not being visible to GuC
   - Avoid getting jobs stuck without a protecting timeout

  ivpu:
   - Fix firewall IRQ handling

  panthor:
   - Fix firmware initialization wrt page sizes
   - Fix handling and reporting of dead job groups

  sched:
   - Guarantee forward progress via WC_MEM_RECLAIM

  tests:
   - Fix memory leak in drm_display_mode_from_cea_vic()

  amdgpu:
   - DCN 3.5 fix
   - Vangogh SMU KASAN fix
   - SMU 13 profile reporting fix

  mediatek:
   - Fix degradation problem of alpha blending
   - Fix color format MACROs in OVL
   - Fix get efuse issue for MT8188 DPTX
   - Fix potential NULL dereference in mtk_crtc_destroy()
   - Correct dpi power-domains property
   - Add split subschema property constraints"

* tag 'drm-fixes-2024-11-02' of https://gitlab.freedesktop.org/drm/kernel: (27 commits)
  drm/xe: Don't short circuit TDR on jobs not started
  drm/xe: Add mmio read before GGTT invalidate
  drm/tests: hdmi: Fix memory leaks in drm_display_mode_from_cea_vic()
  drm/connector: hdmi: Fix memory leak in drm_display_mode_from_cea_vic()
  drm/tests: helpers: Add helper for drm_display_mode_from_cea_vic()
  drm/panthor: Report group as timedout when we fail to properly suspend
  drm/panthor: Fail job creation when the group is dead
  drm/panthor: Fix firmware initialization on systems with a page size > 4k
  accel/ivpu: Fix NOC firewall interrupt handling
  drm/xe/display: Add missing HPD interrupt enabling during non-d3cold RPM resume
  drm/xe/display: Separate the d3cold and non-d3cold runtime PM handling
  drm/xe: Remove runtime argument from display s/r functions
  drm/amdgpu/smu13: fix profile reporting
  drm/amd/pm: Vangogh: Fix kernel memory out of bounds write
  Revert "drm/amd/display: update DML2 policy EnhancedPrefetchScheduleAccelerationFinal DCN35"
  drm/sched: Mark scheduler work queues with WQ_MEM_RECLAIM
  drm/tegra: Fix NULL vs IS_ERR() check in probe()
  dt-bindings: display: mediatek: split: add subschema property constraints
  dt-bindings: display: mediatek: dpi: correct power-domains property
  drm/mediatek: Fix potential NULL dereference in mtk_crtc_destroy()
  ...
parents b1966a1f f99c7cca
Loading
Loading
Loading
Loading
+10 −14
Original line number Diff line number Diff line
@@ -63,6 +63,16 @@ properties:
      - const: sleep

  power-domains:
    description: |
      The MediaTek DPI module is typically associated with one of the
      following multimedia power domains:
        POWER_DOMAIN_DISPLAY
        POWER_DOMAIN_VDOSYS
        POWER_DOMAIN_MM
      The specific power domain used varies depending on the SoC design.

      It is recommended to explicitly add the appropriate power domain
      property to the DPI node in the device tree.
    maxItems: 1

  port:
@@ -79,20 +89,6 @@ required:
  - clock-names
  - port

allOf:
  - if:
      not:
        properties:
          compatible:
            contains:
              enum:
                - mediatek,mt6795-dpi
                - mediatek,mt8173-dpi
                - mediatek,mt8186-dpi
    then:
      properties:
        power-domains: false

additionalProperties: false

examples:
+19 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ properties:
    description: A phandle and PM domain specifier as defined by bindings of
      the power controller specified by phandle. See
      Documentation/devicetree/bindings/power/power-domain.yaml for details.
    maxItems: 1

  mediatek,gce-client-reg:
    description:
@@ -57,6 +58,9 @@ properties:
  clocks:
    items:
      - description: SPLIT Clock
      - description: Used for interfacing with the HDMI RX signal source.
      - description: Paired with receiving HDMI RX metadata.
    minItems: 1

required:
  - compatible
@@ -72,9 +76,24 @@ allOf:
            const: mediatek,mt8195-mdp3-split

    then:
      properties:
        clocks:
          minItems: 3

      required:
        - mediatek,gce-client-reg

  - if:
      properties:
        compatible:
          contains:
            const: mediatek,mt8173-disp-split

    then:
      properties:
        clocks:
          maxItems: 1

additionalProperties: false

examples:
+9 −0
Original line number Diff line number Diff line
@@ -108,6 +108,14 @@ static int reset_pending_show(struct seq_file *s, void *v)
	return 0;
}

static int firewall_irq_counter_show(struct seq_file *s, void *v)
{
	struct ivpu_device *vdev = seq_to_ivpu(s);

	seq_printf(s, "%d\n", atomic_read(&vdev->hw->firewall_irq_counter));
	return 0;
}

static const struct drm_debugfs_info vdev_debugfs_list[] = {
	{"bo_list", bo_list_show, 0},
	{"fw_name", fw_name_show, 0},
@@ -116,6 +124,7 @@ static const struct drm_debugfs_info vdev_debugfs_list[] = {
	{"last_bootmode", last_bootmode_show, 0},
	{"reset_counter", reset_counter_show, 0},
	{"reset_pending", reset_pending_show, 0},
	{"firewall_irq_counter", firewall_irq_counter_show, 0},
};

static ssize_t
+1 −0
Original line number Diff line number Diff line
@@ -249,6 +249,7 @@ int ivpu_hw_init(struct ivpu_device *vdev)
	platform_init(vdev);
	wa_init(vdev);
	timeouts_init(vdev);
	atomic_set(&vdev->hw->firewall_irq_counter, 0);

	return 0;
}
+1 −0
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ struct ivpu_hw_info {
	int dma_bits;
	ktime_t d0i3_entry_host_ts;
	u64 d0i3_entry_vpu_ts;
	atomic_t firewall_irq_counter;
};

int ivpu_hw_init(struct ivpu_device *vdev);
Loading