Skip to content

Commit d6112dd

Browse files
committed
Merge tag 'drm-fixes-2026-01-23' of https://gitlab.freedesktop.org/drm/kernel
Pull drm fixes from Dave Airlie: "Probably a good thing you decided to do an rc8 in this round. Nothing stands out, but xe/amdgpu and mediatek all have a bunch of fixes, and then there are a few other single patches. Hopefully next week is calmer for release. xe: - Disallow bind-queue sharing across multiple VMs - Fix xe userptr in the absence of CONFIG_DEVICE_PRIVATE - Fix a missed page count update - Fix a confused argument to alloc_workqueue() - Kernel-doc fixes - Disable a workaround on VFs - Fix a job lock assert - Update wedged.mode only after successful reset policy change - Select CONFIG_DEVICE_PRIVATE when DRM_XE_GPUSVM is selected amdgpu: - fix color pipeline string leak - GC 12 fix - Misc error path fixes - DC analog fix - SMU 6 fixes - TLB flush fix - DC idle optimization fix amdkfd: - GC 11 cooperative launch fix imagination: - sync wait for logtype update completion to ensure FW trace is available bridge/synopsis: - Fix error paths in dw_dp_bind nouveau: - Add and implement missing DSB connector types, and improve unknown connector handling - Set missing atomic function ops intel: - place 3D lut at correct place in pipeline - fix color pipeline string leak vkms: - fix color pipeline string leak mediatek: - Fix platform_get_irq() error checking - HDMI DDC v2 driver fixes - dpi: Find next bridge during probe - mtk_gem: Partial refactor and use drm_gem_dma_object - dt-bindings: Fix typo 'hardwares' to 'hardware'" * tag 'drm-fixes-2026-01-23' of https://gitlab.freedesktop.org/drm/kernel: (38 commits) Revert "drm/amd/display: pause the workload setting in dm" drm/xe: Select CONFIG_DEVICE_PRIVATE when DRM_XE_GPUSVM is selected drm, drm/xe: Fix xe userptr in the absence of CONFIG_DEVICE_PRIVATE drm/i915/display: Fix color pipeline enum name leak drm/vkms: Fix color pipeline enum name leak drm/amd/display: Fix color pipeline enum name leak drm/i915/color: Place 3D LUT after CSC in plane color pipeline drm/nouveau/disp: Set drm_mode_config_funcs.atomic_(check|commit) drm/nouveau: implement missing DCB connector types; gracefully handle unknown connectors drm/nouveau: add missing DCB connector types drm/amdgpu: fix type for wptr in ring backup drm/amdgpu: Fix validating flush_gpu_tlb_pasid() drm/amd/pm: Workaround SI powertune issue on Radeon 430 (v2) drm/amd/pm: Don't clear SI SMC table when setting power limit drm/amd/pm: Fix si_dpm mmCG_THERMAL_INT setting drm/xe: Update wedged.mode only after successful reset policy change drm/xe/migrate: fix job lock assert drm/xe/uapi: disallow bind queue sharing drm/amd/display: Only poll analog connectors drm/amdgpu: fix error handling in ib_schedule() ...
2 parents c072629 + b91adbe commit d6112dd

48 files changed

Lines changed: 561 additions & 405 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Documentation/devicetree/bindings/display/mediatek/mediatek,dp.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ maintainers:
1111
- Jitao shi <jitao.shi@mediatek.com>
1212

1313
description: |
14-
MediaTek DP and eDP are different hardwares and there are some features
14+
MediaTek DP and eDP are different hardware and there are some features
1515
which are not supported for eDP. For example, audio is not supported for
1616
eDP. Therefore, we need to use two different compatibles to describe them.
1717
In addition, We just need to enable the power domain of DP, so the clock

drivers/gpu/drm/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ config DRM_GPUVM
210210

211211
config DRM_GPUSVM
212212
tristate
213-
depends on DRM && DEVICE_PRIVATE
213+
depends on DRM
214214
select HMM_MIRROR
215215
select MMU_NOTIFIER
216216
help

drivers/gpu/drm/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,10 @@ obj-$(CONFIG_DRM_EXEC) += drm_exec.o
108108
obj-$(CONFIG_DRM_GPUVM) += drm_gpuvm.o
109109

110110
drm_gpusvm_helper-y := \
111-
drm_gpusvm.o\
111+
drm_gpusvm.o
112+
drm_gpusvm_helper-$(CONFIG_ZONE_DEVICE) += \
112113
drm_pagemap.o
114+
113115
obj-$(CONFIG_DRM_GPUSVM) += drm_gpusvm_helper.o
114116

115117
obj-$(CONFIG_DRM_BUDDY) += drm_buddy.o

drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,7 @@ void amdgpu_fence_save_wptr(struct amdgpu_fence *af)
763763
}
764764

765765
static void amdgpu_ring_backup_unprocessed_command(struct amdgpu_ring *ring,
766-
u64 start_wptr, u32 end_wptr)
766+
u64 start_wptr, u64 end_wptr)
767767
{
768768
unsigned int first_idx = start_wptr & ring->buf_mask;
769769
unsigned int last_idx = end_wptr & ring->buf_mask;

drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -733,8 +733,10 @@ int amdgpu_gmc_flush_gpu_tlb_pasid(struct amdgpu_device *adev, uint16_t pasid,
733733

734734
if (!adev->gmc.flush_pasid_uses_kiq || !ring->sched.ready) {
735735

736-
if (!adev->gmc.gmc_funcs->flush_gpu_tlb_pasid)
737-
return 0;
736+
if (!adev->gmc.gmc_funcs->flush_gpu_tlb_pasid) {
737+
r = 0;
738+
goto error_unlock_reset;
739+
}
738740

739741
if (adev->gmc.flush_tlb_needs_extra_type_2)
740742
adev->gmc.gmc_funcs->flush_gpu_tlb_pasid(adev, pasid,

drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned int num_ibs,
302302
if (job && job->vmid)
303303
amdgpu_vmid_reset(adev, ring->vm_hub, job->vmid);
304304
amdgpu_ring_undo(ring);
305-
return r;
305+
goto free_fence;
306306
}
307307
*f = &af->base;
308308
/* get a ref for the job */

drivers/gpu/drm/amd/amdgpu/amdgpu_job.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,8 +217,11 @@ int amdgpu_job_alloc(struct amdgpu_device *adev, struct amdgpu_vm *vm,
217217
if (!entity)
218218
return 0;
219219

220-
return drm_sched_job_init(&(*job)->base, entity, 1, owner,
221-
drm_client_id);
220+
r = drm_sched_job_init(&(*job)->base, entity, 1, owner, drm_client_id);
221+
if (!r)
222+
return 0;
223+
224+
kfree((*job)->hw_vm_fence);
222225

223226
err_fence:
224227
kfree((*job)->hw_fence);

drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,6 @@ static void gfx_v12_0_select_se_sh(struct amdgpu_device *adev, u32 se_num,
278278
u32 sh_num, u32 instance, int xcc_id);
279279
static u32 gfx_v12_0_get_wgp_active_bitmap_per_sh(struct amdgpu_device *adev);
280280

281-
static void gfx_v12_0_ring_emit_frame_cntl(struct amdgpu_ring *ring, bool start, bool secure);
282281
static void gfx_v12_0_ring_emit_wreg(struct amdgpu_ring *ring, uint32_t reg,
283282
uint32_t val);
284283
static int gfx_v12_0_wait_for_rlc_autoload_complete(struct amdgpu_device *adev);
@@ -4634,16 +4633,6 @@ static int gfx_v12_0_ring_preempt_ib(struct amdgpu_ring *ring)
46344633
return r;
46354634
}
46364635

4637-
static void gfx_v12_0_ring_emit_frame_cntl(struct amdgpu_ring *ring,
4638-
bool start,
4639-
bool secure)
4640-
{
4641-
uint32_t v = secure ? FRAME_TMZ : 0;
4642-
4643-
amdgpu_ring_write(ring, PACKET3(PACKET3_FRAME_CONTROL, 0));
4644-
amdgpu_ring_write(ring, v | FRAME_CMD(start ? 0 : 1));
4645-
}
4646-
46474636
static void gfx_v12_0_ring_emit_rreg(struct amdgpu_ring *ring, uint32_t reg,
46484637
uint32_t reg_val_offs)
46494638
{
@@ -5520,7 +5509,6 @@ static const struct amdgpu_ring_funcs gfx_v12_0_ring_funcs_gfx = {
55205509
.emit_cntxcntl = gfx_v12_0_ring_emit_cntxcntl,
55215510
.init_cond_exec = gfx_v12_0_ring_emit_init_cond_exec,
55225511
.preempt_ib = gfx_v12_0_ring_preempt_ib,
5523-
.emit_frame_cntl = gfx_v12_0_ring_emit_frame_cntl,
55245512
.emit_wreg = gfx_v12_0_ring_emit_wreg,
55255513
.emit_reg_wait = gfx_v12_0_ring_emit_reg_wait,
55265514
.emit_reg_write_reg_wait = gfx_v12_0_ring_emit_reg_write_reg_wait,

drivers/gpu/drm/amd/amdkfd/kfd_debug.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,7 @@ static inline bool kfd_dbg_has_gws_support(struct kfd_node *dev)
120120
&& dev->kfd->mec2_fw_version < 0x1b6) ||
121121
(KFD_GC_VERSION(dev) == IP_VERSION(9, 4, 1)
122122
&& dev->kfd->mec2_fw_version < 0x30) ||
123-
(KFD_GC_VERSION(dev) >= IP_VERSION(11, 0, 0) &&
124-
KFD_GC_VERSION(dev) < IP_VERSION(12, 0, 0)))
123+
kfd_dbg_has_cwsr_workaround(dev))
125124
return false;
126125

127126
/* Assume debugging and cooperative launch supported otherwise. */

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
7979
goto cleanup;
8080

8181
list->type = ops[i]->base.id;
82-
list->name = kasprintf(GFP_KERNEL, "Color Pipeline %d", ops[i]->base.id);
8382

8483
i++;
8584

@@ -197,6 +196,9 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
197196
goto cleanup;
198197

199198
drm_colorop_set_next_property(ops[i-1], ops[i]);
199+
200+
list->name = kasprintf(GFP_KERNEL, "Color Pipeline %d", ops[0]->base.id);
201+
200202
return 0;
201203

202204
cleanup:

0 commit comments

Comments
 (0)