summarylogtreecommitdiffstats
path: root/0202-amd-drm-fixes-6.4-2023-06-23.patch
diff options
context:
space:
mode:
Diffstat (limited to '0202-amd-drm-fixes-6.4-2023-06-23.patch')
-rw-r--r--0202-amd-drm-fixes-6.4-2023-06-23.patch412
1 files changed, 0 insertions, 412 deletions
diff --git a/0202-amd-drm-fixes-6.4-2023-06-23.patch b/0202-amd-drm-fixes-6.4-2023-06-23.patch
deleted file mode 100644
index 63f36917cedf..000000000000
--- a/0202-amd-drm-fixes-6.4-2023-06-23.patch
+++ /dev/null
@@ -1,412 +0,0 @@
-diff -Npur linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
---- linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c 2023-06-23 04:16:48.000000000 +0200
-+++ linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c 2023-06-23 22:44:45.000000000 +0200
-@@ -133,9 +133,6 @@ static int amdgpu_cs_p1_user_fence(struc
- bo = amdgpu_bo_ref(gem_to_amdgpu_bo(gobj));
- p->uf_entry.priority = 0;
- p->uf_entry.tv.bo = &bo->tbo;
-- /* One for TTM and two for the CS job */
-- p->uf_entry.tv.num_shared = 3;
--
- drm_gem_object_put(gobj);
-
- size = amdgpu_bo_size(bo);
-@@ -882,15 +879,19 @@ static int amdgpu_cs_parser_bos(struct a
-
- mutex_lock(&p->bo_list->bo_list_mutex);
-
-- /* One for TTM and one for the CS job */
-+ /* One for TTM and one for each CS job */
- amdgpu_bo_list_for_each_entry(e, p->bo_list)
-- e->tv.num_shared = 2;
-+ e->tv.num_shared = 1 + p->gang_size;
-+ p->uf_entry.tv.num_shared = 1 + p->gang_size;
-
- amdgpu_bo_list_get_list(p->bo_list, &p->validated);
-
- INIT_LIST_HEAD(&duplicates);
- amdgpu_vm_get_pd_bo(&fpriv->vm, &p->validated, &p->vm_pd);
-
-+ /* Two for VM updates, one for TTM and one for each CS job */
-+ p->vm_pd.tv.num_shared = 3 + p->gang_size;
-+
- if (p->uf_entry.tv.bo && !ttm_to_amdgpu_bo(p->uf_entry.tv.bo)->parent)
- list_add(&p->uf_entry.tv.head, &p->validated);
-
-diff -Npur linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
---- linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c 2023-06-23 04:16:48.000000000 +0200
-+++ linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c 2023-06-23 22:44:45.000000000 +0200
-@@ -251,7 +251,8 @@ int amdgpu_jpeg_ras_late_init(struct amd
-
- if (amdgpu_ras_is_supported(adev, ras_block->block)) {
- for (i = 0; i < adev->jpeg.num_jpeg_inst; ++i) {
-- if (adev->jpeg.harvest_config & (1 << i))
-+ if (adev->jpeg.harvest_config & (1 << i) ||
-+ !adev->jpeg.inst[i].ras_poison_irq.funcs)
- continue;
-
- r = amdgpu_irq_get(adev, &adev->jpeg.inst[i].ras_poison_irq, 0);
-diff -Npur linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
---- linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c 2023-06-23 04:16:48.000000000 +0200
-+++ linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c 2023-06-23 22:44:45.000000000 +0200
-@@ -1266,8 +1266,12 @@ void amdgpu_bo_move_notify(struct ttm_bu
- void amdgpu_bo_get_memory(struct amdgpu_bo *bo,
- struct amdgpu_mem_stats *stats)
- {
-- unsigned int domain;
- uint64_t size = amdgpu_bo_size(bo);
-+ unsigned int domain;
-+
-+ /* Abort if the BO doesn't currently have a backing store */
-+ if (!bo->tbo.resource)
-+ return;
-
- domain = amdgpu_mem_type_to_domain(bo->tbo.resource->mem_type);
- switch (domain) {
-diff -Npur linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
---- linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c 2023-06-23 04:16:48.000000000 +0200
-+++ linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c 2023-06-23 22:44:45.000000000 +0200
-@@ -1947,6 +1947,8 @@ static int psp_securedisplay_initialize(
- psp_securedisplay_parse_resp_status(psp, securedisplay_cmd->status);
- dev_err(psp->adev->dev, "SECUREDISPLAY: query securedisplay TA failed. ret 0x%x\n",
- securedisplay_cmd->securedisplay_out_message.query_ta.query_cmd_ret);
-+ /* don't try again */
-+ psp->securedisplay_context.context.bin_desc.size_bytes = 0;
- }
-
- return 0;
-diff -Npur linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c
---- linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c 2023-06-23 04:16:48.000000000 +0200
-+++ linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c 2023-06-23 22:44:45.000000000 +0200
-@@ -423,6 +423,9 @@ void amdgpu_sw_ring_ib_mark_offset(struc
- struct amdgpu_ring_mux *mux = &adev->gfx.muxer;
- unsigned offset;
-
-+ if (ring->hw_prio > AMDGPU_RING_PRIO_DEFAULT)
-+ return;
-+
- offset = ring->wptr & ring->buf_mask;
-
- amdgpu_ring_mux_ib_mark_offset(mux, ring, offset, type);
-diff -Npur linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
---- linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c 2023-06-23 04:16:48.000000000 +0200
-+++ linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c 2023-06-23 22:44:45.000000000 +0200
-@@ -1191,7 +1191,8 @@ int amdgpu_vcn_ras_late_init(struct amdg
-
- if (amdgpu_ras_is_supported(adev, ras_block->block)) {
- for (i = 0; i < adev->vcn.num_vcn_inst; i++) {
-- if (adev->vcn.harvest_config & (1 << i))
-+ if (adev->vcn.harvest_config & (1 << i) ||
-+ !adev->vcn.inst[i].ras_poison_irq.funcs)
- continue;
-
- r = amdgpu_irq_get(adev, &adev->vcn.inst[i].ras_poison_irq, 0);
-diff -Npur linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
---- linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c 2023-06-23 04:16:48.000000000 +0200
-+++ linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c 2023-06-23 22:44:45.000000000 +0200
-@@ -920,42 +920,51 @@ error_unlock:
- return r;
- }
-
-+static void amdgpu_vm_bo_get_memory(struct amdgpu_bo_va *bo_va,
-+ struct amdgpu_mem_stats *stats)
-+{
-+ struct amdgpu_vm *vm = bo_va->base.vm;
-+ struct amdgpu_bo *bo = bo_va->base.bo;
-+
-+ if (!bo)
-+ return;
-+
-+ /*
-+ * For now ignore BOs which are currently locked and potentially
-+ * changing their location.
-+ */
-+ if (bo->tbo.base.resv != vm->root.bo->tbo.base.resv &&
-+ !dma_resv_trylock(bo->tbo.base.resv))
-+ return;
-+
-+ amdgpu_bo_get_memory(bo, stats);
-+ if (bo->tbo.base.resv != vm->root.bo->tbo.base.resv)
-+ dma_resv_unlock(bo->tbo.base.resv);
-+}
-+
- void amdgpu_vm_get_memory(struct amdgpu_vm *vm,
- struct amdgpu_mem_stats *stats)
- {
- struct amdgpu_bo_va *bo_va, *tmp;
-
- spin_lock(&vm->status_lock);
-- list_for_each_entry_safe(bo_va, tmp, &vm->idle, base.vm_status) {
-- if (!bo_va->base.bo)
-- continue;
-- amdgpu_bo_get_memory(bo_va->base.bo, stats);
-- }
-- list_for_each_entry_safe(bo_va, tmp, &vm->evicted, base.vm_status) {
-- if (!bo_va->base.bo)
-- continue;
-- amdgpu_bo_get_memory(bo_va->base.bo, stats);
-- }
-- list_for_each_entry_safe(bo_va, tmp, &vm->relocated, base.vm_status) {
-- if (!bo_va->base.bo)
-- continue;
-- amdgpu_bo_get_memory(bo_va->base.bo, stats);
-- }
-- list_for_each_entry_safe(bo_va, tmp, &vm->moved, base.vm_status) {
-- if (!bo_va->base.bo)
-- continue;
-- amdgpu_bo_get_memory(bo_va->base.bo, stats);
-- }
-- list_for_each_entry_safe(bo_va, tmp, &vm->invalidated, base.vm_status) {
-- if (!bo_va->base.bo)
-- continue;
-- amdgpu_bo_get_memory(bo_va->base.bo, stats);
-- }
-- list_for_each_entry_safe(bo_va, tmp, &vm->done, base.vm_status) {
-- if (!bo_va->base.bo)
-- continue;
-- amdgpu_bo_get_memory(bo_va->base.bo, stats);
-- }
-+ list_for_each_entry_safe(bo_va, tmp, &vm->idle, base.vm_status)
-+ amdgpu_vm_bo_get_memory(bo_va, stats);
-+
-+ list_for_each_entry_safe(bo_va, tmp, &vm->evicted, base.vm_status)
-+ amdgpu_vm_bo_get_memory(bo_va, stats);
-+
-+ list_for_each_entry_safe(bo_va, tmp, &vm->relocated, base.vm_status)
-+ amdgpu_vm_bo_get_memory(bo_va, stats);
-+
-+ list_for_each_entry_safe(bo_va, tmp, &vm->moved, base.vm_status)
-+ amdgpu_vm_bo_get_memory(bo_va, stats);
-+
-+ list_for_each_entry_safe(bo_va, tmp, &vm->invalidated, base.vm_status)
-+ amdgpu_vm_bo_get_memory(bo_va, stats);
-+
-+ list_for_each_entry_safe(bo_va, tmp, &vm->done, base.vm_status)
-+ amdgpu_vm_bo_get_memory(bo_va, stats);
- spin_unlock(&vm->status_lock);
- }
-
-@@ -1674,18 +1683,30 @@ int amdgpu_vm_bo_clear_mappings(struct a
-
- /* Insert partial mapping before the range */
- if (!list_empty(&before->list)) {
-+ struct amdgpu_bo *bo = before->bo_va->base.bo;
-+
- amdgpu_vm_it_insert(before, &vm->va);
- if (before->flags & AMDGPU_PTE_PRT)
- amdgpu_vm_prt_get(adev);
-+
-+ if (bo && bo->tbo.base.resv == vm->root.bo->tbo.base.resv &&
-+ !before->bo_va->base.moved)
-+ amdgpu_vm_bo_moved(&before->bo_va->base);
- } else {
- kfree(before);
- }
-
- /* Insert partial mapping after the range */
- if (!list_empty(&after->list)) {
-+ struct amdgpu_bo *bo = after->bo_va->base.bo;
-+
- amdgpu_vm_it_insert(after, &vm->va);
- if (after->flags & AMDGPU_PTE_PRT)
- amdgpu_vm_prt_get(adev);
-+
-+ if (bo && bo->tbo.base.resv == vm->root.bo->tbo.base.resv &&
-+ !after->bo_va->base.moved)
-+ amdgpu_vm_bo_moved(&after->bo_va->base);
- } else {
- kfree(after);
- }
-diff -Npur linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c
---- linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c 2023-06-23 04:16:48.000000000 +0200
-+++ linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c 2023-06-23 22:44:45.000000000 +0200
-@@ -345,8 +345,8 @@ static void nbio_v2_3_init_registers(str
- }
-
- #define NAVI10_PCIE__LC_L0S_INACTIVITY_DEFAULT 0x00000000 // off by default, no gains over L1
--#define NAVI10_PCIE__LC_L1_INACTIVITY_DEFAULT 0x00000009 // 1=1us, 9=1ms
--#define NAVI10_PCIE__LC_L1_INACTIVITY_TBT_DEFAULT 0x0000000E // 4ms
-+#define NAVI10_PCIE__LC_L1_INACTIVITY_DEFAULT 0x0000000A // 1=1us, 9=1ms, 10=4ms
-+#define NAVI10_PCIE__LC_L1_INACTIVITY_TBT_DEFAULT 0x0000000E // 400ms
-
- static void nbio_v2_3_enable_aspm(struct amdgpu_device *adev,
- bool enable)
-@@ -479,9 +479,12 @@ static void nbio_v2_3_program_aspm(struc
- WREG32_SOC15(NBIO, 0, mmRCC_BIF_STRAP5, data);
-
- def = data = RREG32_PCIE(smnPCIE_LC_CNTL);
-- data &= ~PCIE_LC_CNTL__LC_L0S_INACTIVITY_MASK;
-- data |= 0x9 << PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT;
-- data |= 0x1 << PCIE_LC_CNTL__LC_PMI_TO_L1_DIS__SHIFT;
-+ data |= NAVI10_PCIE__LC_L0S_INACTIVITY_DEFAULT << PCIE_LC_CNTL__LC_L0S_INACTIVITY__SHIFT;
-+ if (pci_is_thunderbolt_attached(adev->pdev))
-+ data |= NAVI10_PCIE__LC_L1_INACTIVITY_TBT_DEFAULT << PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT;
-+ else
-+ data |= NAVI10_PCIE__LC_L1_INACTIVITY_DEFAULT << PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT;
-+ data &= ~PCIE_LC_CNTL__LC_PMI_TO_L1_DIS_MASK;
- if (def != data)
- WREG32_PCIE(smnPCIE_LC_CNTL, data);
-
-diff -Npur linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
---- linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c 2023-06-23 04:16:48.000000000 +0200
-+++ linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c 2023-06-23 22:44:45.000000000 +0200
-@@ -2306,7 +2306,7 @@ const struct amd_ip_funcs sdma_v4_0_ip_f
-
- static const struct amdgpu_ring_funcs sdma_v4_0_ring_funcs = {
- .type = AMDGPU_RING_TYPE_SDMA,
-- .align_mask = 0xf,
-+ .align_mask = 0xff,
- .nop = SDMA_PKT_NOP_HEADER_OP(SDMA_OP_NOP),
- .support_64bit_ptrs = true,
- .secure_submission_supported = true,
-@@ -2338,7 +2338,7 @@ static const struct amdgpu_ring_funcs sd
-
- static const struct amdgpu_ring_funcs sdma_v4_0_page_ring_funcs = {
- .type = AMDGPU_RING_TYPE_SDMA,
-- .align_mask = 0xf,
-+ .align_mask = 0xff,
- .nop = SDMA_PKT_NOP_HEADER_OP(SDMA_OP_NOP),
- .support_64bit_ptrs = true,
- .secure_submission_supported = true,
-diff -Npur linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
---- linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c 2023-06-23 04:16:48.000000000 +0200
-+++ linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c 2023-06-23 22:44:45.000000000 +0200
-@@ -1740,7 +1740,7 @@ const struct amd_ip_funcs sdma_v4_4_2_ip
-
- static const struct amdgpu_ring_funcs sdma_v4_4_2_ring_funcs = {
- .type = AMDGPU_RING_TYPE_SDMA,
-- .align_mask = 0xf,
-+ .align_mask = 0xff,
- .nop = SDMA_PKT_NOP_HEADER_OP(SDMA_OP_NOP),
- .support_64bit_ptrs = true,
- .get_rptr = sdma_v4_4_2_ring_get_rptr,
-@@ -1771,7 +1771,7 @@ static const struct amdgpu_ring_funcs sd
-
- static const struct amdgpu_ring_funcs sdma_v4_4_2_page_ring_funcs = {
- .type = AMDGPU_RING_TYPE_SDMA,
-- .align_mask = 0xf,
-+ .align_mask = 0xff,
- .nop = SDMA_PKT_NOP_HEADER_OP(SDMA_OP_NOP),
- .support_64bit_ptrs = true,
- .get_rptr = sdma_v4_4_2_ring_get_rptr,
-diff -Npur linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
---- linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 2023-06-23 04:16:48.000000000 +0200
-+++ linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 2023-06-23 22:44:45.000000000 +0200
-@@ -5057,11 +5057,7 @@ static inline void fill_dc_dirty_rect(st
- s32 y, s32 width, s32 height,
- int *i, bool ffu)
- {
-- if (*i > DC_MAX_DIRTY_RECTS)
-- return;
--
-- if (*i == DC_MAX_DIRTY_RECTS)
-- goto out;
-+ WARN_ON(*i >= DC_MAX_DIRTY_RECTS);
-
- dirty_rect->x = x;
- dirty_rect->y = y;
-@@ -5077,7 +5073,6 @@ static inline void fill_dc_dirty_rect(st
- "[PLANE:%d] PSR SU dirty rect at (%d, %d) size (%d, %d)",
- plane->base.id, x, y, width, height);
-
--out:
- (*i)++;
- }
-
-@@ -5164,6 +5159,9 @@ static void fill_dc_dirty_rects(struct d
-
- *dirty_regions_changed = bb_changed;
-
-+ if ((num_clips + (bb_changed ? 2 : 0)) > DC_MAX_DIRTY_RECTS)
-+ goto ffu;
-+
- if (bb_changed) {
- fill_dc_dirty_rect(new_plane_state->plane, &dirty_rects[i],
- new_plane_state->crtc_x,
-@@ -5193,9 +5191,6 @@ static void fill_dc_dirty_rects(struct d
- new_plane_state->crtc_h, &i, false);
- }
-
-- if (i > DC_MAX_DIRTY_RECTS)
-- goto ffu;
--
- flip_addrs->dirty_rect_count = i;
- return;
-
-diff -Npur linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/display/dc/core/dc.c linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/display/dc/core/dc.c
---- linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/display/dc/core/dc.c 2023-06-23 04:16:48.000000000 +0200
-+++ linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/display/dc/core/dc.c 2023-06-23 22:44:45.000000000 +0200
-@@ -1602,6 +1602,9 @@ bool dc_validate_boot_timing(const struc
- return false;
- }
-
-+ if (dc->debug.force_odm_combine)
-+ return false;
-+
- /* Check for enabled DIG to identify enabled display */
- if (!link->link_enc->funcs->is_dig_enabled(link->link_enc))
- return false;
-diff -Npur linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c
---- linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c 2023-06-23 04:16:48.000000000 +0200
-+++ linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c 2023-06-23 22:44:45.000000000 +0200
-@@ -970,10 +970,12 @@ enum dc_status resource_map_phy_clock_re
- || dc_is_virtual_signal(pipe_ctx->stream->signal))
- pipe_ctx->clock_source =
- dc->res_pool->dp_clock_source;
-- else
-- pipe_ctx->clock_source = find_matching_pll(
-- &context->res_ctx, dc->res_pool,
-- stream);
-+ else {
-+ if (stream && stream->link && stream->link->link_enc)
-+ pipe_ctx->clock_source = find_matching_pll(
-+ &context->res_ctx, dc->res_pool,
-+ stream);
-+ }
-
- if (pipe_ctx->clock_source == NULL)
- return DC_NO_CLOCK_SOURCE_RESOURCE;
-diff -Npur linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c
---- linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c 2023-06-23 04:16:48.000000000 +0200
-+++ linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c 2023-06-23 22:44:45.000000000 +0200
-@@ -82,8 +82,15 @@ bool dp_parse_link_loss_status(
- }
-
- /* Check interlane align.*/
-- if (sink_status_changed ||
-- !hpd_irq_dpcd_data->bytes.lane_status_updated.bits.INTERLANE_ALIGN_DONE) {
-+ if (link_dp_get_encoding_format(&link->cur_link_settings) == DP_128b_132b_ENCODING &&
-+ (!hpd_irq_dpcd_data->bytes.lane_status_updated.bits.EQ_INTERLANE_ALIGN_DONE_128b_132b ||
-+ !hpd_irq_dpcd_data->bytes.lane_status_updated.bits.CDS_INTERLANE_ALIGN_DONE_128b_132b)) {
-+ sink_status_changed = true;
-+ } else if (!hpd_irq_dpcd_data->bytes.lane_status_updated.bits.INTERLANE_ALIGN_DONE) {
-+ sink_status_changed = true;
-+ }
-+
-+ if (sink_status_changed) {
-
- DC_LOG_HW_HPD_IRQ("%s: Link Status changed.\n", __func__);
-
-diff -Npur linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/display/modules/power/power_helpers.c linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/display/modules/power/power_helpers.c
---- linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/display/modules/power/power_helpers.c 2023-06-23 04:16:48.000000000 +0200
-+++ linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/display/modules/power/power_helpers.c 2023-06-23 22:44:45.000000000 +0200
-@@ -818,6 +818,8 @@ bool is_psr_su_specific_panel(struct dc_
- ((dpcd_caps->sink_dev_id_str[1] == 0x08 && dpcd_caps->sink_dev_id_str[0] == 0x08) ||
- (dpcd_caps->sink_dev_id_str[1] == 0x08 && dpcd_caps->sink_dev_id_str[0] == 0x07)))
- isPSRSUSupported = false;
-+ else if (dpcd_caps->sink_dev_id_str[1] == 0x08 && dpcd_caps->sink_dev_id_str[0] == 0x03)
-+ isPSRSUSupported = false;
- else if (dpcd_caps->psr_info.force_psrsu_cap == 0x1)
- isPSRSUSupported = true;
- }
-diff -Npur linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
---- linux-9bd9be5cbaf8a8faa175ef4fba04a5623281debe/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c 2023-06-23 04:16:48.000000000 +0200
-+++ linux-134ea95255cf359a2e6d70308c15243c3fdf8eaf/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c 2023-06-23 22:44:45.000000000 +0200
-@@ -1300,6 +1300,7 @@ static int smu_v13_0_0_get_thermal_tempe
- range->mem_emergency_max = (pptable->SkuTable.TemperatureLimit[TEMP_MEM] + CTF_OFFSET_MEM)*
- SMU_TEMPERATURE_UNITS_PER_CENTIGRADES;
- range->software_shutdown_temp = powerplay_table->software_shutdown_temp;
-+ range->software_shutdown_temp_offset = pptable->SkuTable.FanAbnormalTempLimitOffset;
-
- return 0;
- }