mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
drm/amd/display: Find link encoder for flexible DIG mapping cases
[why & how] link->link_enc can only be used to identify the link's link encoder when the link is not permitted to use flexible link encoder assignments. Use the correct function for identifying link encoder and add function pointer guards before calling them. Reviewed-by: Wenjing Liu <wenjing.liu@amd.com> Signed-off-by: Ovidiu Bunea <ovidiu.bunea@amd.com> Signed-off-by: James Lin <pinglei.lin@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
64b4c4cdfd
commit
74ef54e656
|
|
@ -1787,20 +1787,22 @@ static void power_down_encoders(struct dc *dc)
|
|||
|
||||
for (i = 0; i < dc->link_count; i++) {
|
||||
struct dc_link *link = dc->links[i];
|
||||
struct link_encoder *link_enc = link->link_enc;
|
||||
struct link_encoder *link_enc = link_enc_cfg_get_link_enc(link);
|
||||
enum signal_type signal = link->connector_signal;
|
||||
|
||||
dc->link_srv->blank_dp_stream(link, false);
|
||||
if (signal != SIGNAL_TYPE_EDP)
|
||||
signal = SIGNAL_TYPE_NONE;
|
||||
|
||||
if (link->ep_type == DISPLAY_ENDPOINT_PHY)
|
||||
if (link->ep_type == DISPLAY_ENDPOINT_PHY && link_enc)
|
||||
link_enc->funcs->disable_output(link_enc, signal);
|
||||
|
||||
if (link->fec_state == dc_link_fec_enabled) {
|
||||
link_enc->funcs->fec_set_enable(link_enc, false);
|
||||
link_enc->funcs->fec_set_ready(link_enc, false);
|
||||
link->fec_state = dc_link_fec_not_ready;
|
||||
if (link_enc && link_enc->funcs->fec_set_enable && link_enc->funcs->fec_set_ready) {
|
||||
link_enc->funcs->fec_set_enable(link_enc, false);
|
||||
link_enc->funcs->fec_set_ready(link_enc, false);
|
||||
link->fec_state = dc_link_fec_not_ready;
|
||||
}
|
||||
}
|
||||
|
||||
link->link_status.link_active = false;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user