FAILED: patch "[PATCH] drm/amdgpu/display/mst: update mst_mgr relevant variable when" failed to apply to 6.1-stable tree
[email protected]
maintainerThe patch below does not apply to the 6.1-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.1.y
git checkout FETCH_HEAD
git cherry-pick -x 2daeb74b7d66362de8e15b983e310e85f01930e5
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '[email protected]' --subject-prefix 'PATCH 6.1.y' HEAD^..
Possible dependencies:
2daeb74b7d66 ("drm/amdgpu/display/mst: update mst_mgr relevant variable when long HPD")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 2daeb74b7d66362de8e15b983e310e85f01930e5 Mon Sep 17 00:00:00 2001
From: Wayne Lin <[email protected]>
Date: Mon, 12 Dec 2022 15:41:18 +0800
Subject: [PATCH] drm/amdgpu/display/mst: update mst_mgr relevant variable when
long HPD
[Why & How]
Now the vc_start_slot is controlled at drm side. When we service a long HPD, we still need to run dm_helpers_dp_mst_write_payload_allocation_table() to update drm mst_mgr's relevant variable. Otherwise, on the next plug-in, payload will get assigned with a wrong start slot.
drivers/gpu/drm/amd/display/dc/core/dc_link.c +12 -2
@@ -3999,10 +3999,13 @@ static enum dc_status deallocate_mst_payload(struct pipe_ctx *pipe_ctx)struct fixed31_32 avg_time_slots_per_mtp =dc_fixpt_from_int (0 );int i;bool mst_mode = (link->type == dc_connection_mst_branch); +/* adjust for drm changes*/ +bool update_drm_mst_state = true;const struct link_hwss *link_hwss =get_link_hwss (link, &pipe_ctx->link_res);const struct dc_link_settings empty_link_settings = {0 };DC_LOGGER_INIT (link->ctx->logger); +/* deallocate_mst_payload is called before disable link. When mode or * disable/enable monitor, new stream is created which is not in link * stream[] yet. For this, payload is not allocated yet, so de-alloc
@@ -4018,7 +4021,7 @@ static enum dc_status deallocate_mst_payload(struct pipe_ctx *pipe_ctx) &empty_link_settings, avg_time_slots_per_mtp); -if (mst_mode) { +if (mst_mode || update_drm_mst_state) {/* when link is in mst mode, reply on mst manager to remove * payload */
@@ -4081,11 +4084,18 @@ static enum dc_status deallocate_mst_payload(struct pipe_ctx *pipe_ctx) stream->ctx, stream); +if (!update_drm_mst_state) +dm_helpers_dp_mst_send_payload_allocation ( + stream->ctx, + stream, + false); + } + +if (update_drm_mst_state)dm_helpers_dp_mst_send_payload_allocation ( stream->ctx, stream, false); - }return DC_OK ; }