Commit 07920450 authored by Joshua Aberback's avatar Joshua Aberback Committed by Alex Deucher
Browse files

drm/amd/display: Check link_active instead of lane_settings != unknown



[Why]
enable_link_dp_mst checks that cur_link_settings != unknown to determine
that the link is already enabled, to skip redundant enablement calls for
multiple streams on the same link. During dc_reinitialize_hardware,
cur_link_settings on previously-active links is not cleared, which blocks
MST links from being re-enabled after a reinitialization.

[How]
 - check for link_status->link_active instead, as it's the real intent
 - clear cur_link_settings when we clear link_active

Signed-off-by: default avatarJoshua Aberback <joshua.aberback@amd.com>
Reviewed-by: default avatarWenjing Liu <Wenjing.Liu@amd.com>
Acked-by: default avatarAurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 901c1ec0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1738,7 +1738,7 @@ static enum dc_status enable_link_dp_mst(
	/* sink signal type after MST branch is MST. Multiple MST sinks
	 * share one link. Link DP PHY is enable or training only once.
	 */
	if (link->cur_link_settings.lane_count != LANE_COUNT_UNKNOWN)
	if (link->link_status.link_active)
		return DC_OK;

	/* clear payload table */
+2 −0
Original line number Diff line number Diff line
@@ -1530,6 +1530,8 @@ static void power_down_encoders(struct dc *dc)
				dc->links[i]->link_enc, signal);

		dc->links[i]->link_status.link_active = false;
		memset(&dc->links[i]->cur_link_settings, 0,
				sizeof(dc->links[i]->cur_link_settings));
	}
}