Commit bb9ddd99 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'amd-drm-fixes-6.17-2025-07-31' of...

Merge tag 'amd-drm-fixes-6.17-2025-07-31' of https://gitlab.freedesktop.org/agd5f/linux

 into drm-next

amd-drm-fixes-6.17-2025-07-31:

amdgpu:
- DSC divide by 0 fix
- clang fix
- DC debugfs fix
- Userq fixes
- Avoid extra evict-restore with KFD
- Backlight fix
- Documentation fix
- RAS fix
- Add new kicker handling
- DSC fix for DCN 3.1.4
- PSR fix
- Atomic fix
- DC reset fixes
- DCN 3.0.1 fix
- MMHUB client mapping fix

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Alex Deucher <alexander.deucher@amd.com>
Link: https://lore.kernel.org/r/20250731191916.255648-1-alexander.deucher@amd.com
parents 711fa266 a0b34e4c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -883,6 +883,7 @@ struct amdgpu_mqd_prop {
	uint64_t csa_addr;
	uint64_t fence_address;
	bool tmz_queue;
	bool kernel_queue;
};

struct amdgpu_mqd {
+4 −2
Original line number Diff line number Diff line
@@ -459,7 +459,7 @@ static u32 amdgpu_cper_ring_get_ent_sz(struct amdgpu_ring *ring, u64 pos)

void amdgpu_cper_ring_write(struct amdgpu_ring *ring, void *src, int count)
{
	u64 pos, wptr_old, rptr = *ring->rptr_cpu_addr & ring->ptr_mask;
	u64 pos, wptr_old, rptr;
	int rec_cnt_dw = count >> 2;
	u32 chunk, ent_sz;
	u8 *s = (u8 *)src;
@@ -472,9 +472,11 @@ void amdgpu_cper_ring_write(struct amdgpu_ring *ring, void *src, int count)
		return;
	}

	mutex_lock(&ring->adev->cper.ring_lock);

	wptr_old = ring->wptr;
	rptr = *ring->rptr_cpu_addr & ring->ptr_mask;

	mutex_lock(&ring->adev->cper.ring_lock);
	while (count) {
		ent_sz = amdgpu_cper_ring_get_ent_sz(ring, ring->wptr);
		chunk = umin(ent_sz, count);
+1 −0
Original line number Diff line number Diff line
@@ -719,6 +719,7 @@ static void amdgpu_ring_to_mqd_prop(struct amdgpu_ring *ring,
	prop->eop_gpu_addr = ring->eop_gpu_addr;
	prop->use_doorbell = ring->use_doorbell;
	prop->doorbell_index = ring->doorbell_index;
	prop->kernel_queue = true;

	/* map_queues packet doesn't need activate the queue,
	 * so only kiq need set this field.
+1 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@

static const struct kicker_device kicker_device_list[] = {
	{0x744B, 0x00},
	{0x7551, 0xC8}
};

static void amdgpu_ucode_print_common_hdr(const struct common_firmware_header *hdr)
+2 −4
Original line number Diff line number Diff line
@@ -2414,13 +2414,11 @@ void amdgpu_vm_adjust_size(struct amdgpu_device *adev, uint32_t min_vm_size,
 */
long amdgpu_vm_wait_idle(struct amdgpu_vm *vm, long timeout)
{
	timeout = dma_resv_wait_timeout(vm->root.bo->tbo.base.resv,
					DMA_RESV_USAGE_BOOKKEEP,
					true, timeout);
	timeout = drm_sched_entity_flush(&vm->immediate, timeout);
	if (timeout <= 0)
		return timeout;

	return dma_fence_wait_timeout(vm->last_unlocked, true, timeout);
	return drm_sched_entity_flush(&vm->delayed, timeout);
}

static void amdgpu_vm_destroy_task_info(struct kref *kref)
Loading