Commit d4c2a96f authored by Lewis Huang's avatar Lewis Huang Committed by Alex Deucher

drm/amd/display: take signal type from link

[Why]
Signal is update to EDP when driver disable first encoder. The
following encoder using SIGNAL_TYPE_EDP to handle other
device. When encoder signal is HDMI, driver will detect it is dp
and release phy. It cause hw hang.

[How]
Take signal type from link->connector_signal.
Signed-off-by: default avatarLewis Huang <Lewis.Huang@amd.com>
Reviewed-by: default avatarEric Yang <eric.yang2@amd.com>
Acked-by: default avatarLeo Li <sunpeng.li@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent b837d783
...@@ -1421,8 +1421,6 @@ static enum dc_status apply_single_controller_ctx_to_hw( ...@@ -1421,8 +1421,6 @@ static enum dc_status apply_single_controller_ctx_to_hw(
static void power_down_encoders(struct dc *dc) static void power_down_encoders(struct dc *dc)
{ {
int i; int i;
enum connector_id connector_id;
enum signal_type signal = SIGNAL_TYPE_NONE;
/* do not know BIOS back-front mapping, simply blank all. It will not /* do not know BIOS back-front mapping, simply blank all. It will not
* hurt for non-DP * hurt for non-DP
...@@ -1433,15 +1431,12 @@ static void power_down_encoders(struct dc *dc) ...@@ -1433,15 +1431,12 @@ static void power_down_encoders(struct dc *dc)
} }
for (i = 0; i < dc->link_count; i++) { for (i = 0; i < dc->link_count; i++) {
connector_id = dal_graphics_object_id_get_connector_id(dc->links[i]->link_id); enum signal_type signal = dc->links[i]->connector_signal;
if ((connector_id == CONNECTOR_ID_DISPLAY_PORT) ||
(connector_id == CONNECTOR_ID_EDP)) {
if ((signal == SIGNAL_TYPE_EDP) ||
(signal == SIGNAL_TYPE_DISPLAY_PORT))
if (!dc->links[i]->wa_flags.dp_keep_receiver_powered) if (!dc->links[i]->wa_flags.dp_keep_receiver_powered)
dp_receiver_power_ctrl(dc->links[i], false); dp_receiver_power_ctrl(dc->links[i], false);
if (connector_id == CONNECTOR_ID_EDP)
signal = SIGNAL_TYPE_EDP;
}
dc->links[i]->link_enc->funcs->disable_output( dc->links[i]->link_enc->funcs->disable_output(
dc->links[i]->link_enc, signal); dc->links[i]->link_enc, signal);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment