drm/amd/display: Fix FEC_READY write on DP LT

[ Upstream commit a8baec4623 ]

[Why/How]
We can miss writing FEC_READY in some cases before LT start, which
violates DP spec. Remove the condition guarding the DPCD write so that
the write happens unconditionally.

Cc: Mario Limonciello <mario.limonciello@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Reviewed-by: Wenjing Liu <wenjing.liu@amd.com>
Acked-by: Wayne Lin <wayne.lin@amd.com>
Signed-off-by: Ilya Bakoulin <ilya.bakoulin@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Ilya Bakoulin 2024-04-17 14:21:28 -04:00 committed by Greg Kroah-Hartman
parent 27bbf0b1ca
commit 7853c146f8

View File

@ -147,16 +147,14 @@ enum dc_status dp_set_fec_ready(struct dc_link *link, const struct link_resource
return DC_NOT_SUPPORTED; return DC_NOT_SUPPORTED;
if (ready && dp_should_enable_fec(link)) { if (ready && dp_should_enable_fec(link)) {
if (link->fec_state == dc_link_fec_not_ready) { fec_config = 1;
fec_config = 1;
status = core_link_write_dpcd(link, DP_FEC_CONFIGURATION, status = core_link_write_dpcd(link, DP_FEC_CONFIGURATION,
&fec_config, sizeof(fec_config)); &fec_config, sizeof(fec_config));
if (status == DC_OK) { if (status == DC_OK) {
link_enc->funcs->fec_set_ready(link_enc, true); link_enc->funcs->fec_set_ready(link_enc, true);
link->fec_state = dc_link_fec_ready; link->fec_state = dc_link_fec_ready;
}
} }
} else { } else {
if (link->fec_state == dc_link_fec_ready) { if (link->fec_state == dc_link_fec_ready) {