Commit cf37a531 authored by Agustin Gutierrez's avatar Agustin Gutierrez Committed by Alex Deucher
Browse files

drm/amd/display: MST DSC check for older devices



[Why]
Some older MST hubs do not report DPCD registers according to
specification.

[How]
This change re-applies commit c5365554 ("drm/amd/display: dsc mst
re-compute pbn for changes on hub").
With an additional check for these older MST devices.

Reviewed-by: default avatarSwapnil Patel <swapnil.patel@amd.com>
Acked-by: default avatarTom Chung <chiahsuan.chung@amd.com>
Signed-off-by: default avatarAgustin Gutierrez <agustin.gutierrez@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent b436f1cb
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -1219,6 +1219,12 @@ static bool is_dsc_need_re_compute(
	if (dc_link->type != dc_connection_mst_branch)
		return false;

	/* add a check for older MST DSC with no virtual DPCDs */
	if (needs_dsc_aux_workaround(dc_link)  &&
		(!(dc_link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.dsc_support.DSC_SUPPORT ||
		dc_link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.dsc_support.DSC_PASSTHROUGH_SUPPORT)))
		return false;

	for (i = 0; i < MAX_PIPES; i++)
		stream_on_link[i] = NULL;

@@ -1240,12 +1246,8 @@ static bool is_dsc_need_re_compute(
			continue;

		/*
		 *	Check if cached virtual MST DSC caps are available and DSC is supported
		 *	this change takes care of newer MST DSC capable devices that report their
		 *	DPCD caps as per specifications in their Virtual DPCD registers.

		 *	TODO: implement the check for older MST DSC devices that do not conform to
		 *	specifications.
		 *	check if cached virtual MST DSC caps are available and DSC is supported
		 *	as per specifications in their Virtual DPCD registers.
		*/
		if (!(aconnector->dc_sink->dsc_caps.dsc_dec_caps.is_dsc_supported ||
			aconnector->dc_link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.dsc_support.DSC_PASSTHROUGH_SUPPORT))