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: Lewis Huang <Lewis.Huang@amd.com> Reviewed-by: Eric Yang <eric.yang2@amd.com> Acked-by: Leo Li <sunpeng.li@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
b837d783b6
commit
d4c2a96fdb
|
|
@ -1421,8 +1421,6 @@ static enum dc_status apply_single_controller_ctx_to_hw(
|
|||
static void power_down_encoders(struct dc *dc)
|
||||
{
|
||||
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
|
||||
* hurt for non-DP
|
||||
|
|
@ -1433,15 +1431,12 @@ static void power_down_encoders(struct dc *dc)
|
|||
}
|
||||
|
||||
for (i = 0; i < dc->link_count; i++) {
|
||||
connector_id = dal_graphics_object_id_get_connector_id(dc->links[i]->link_id);
|
||||
if ((connector_id == CONNECTOR_ID_DISPLAY_PORT) ||
|
||||
(connector_id == CONNECTOR_ID_EDP)) {
|
||||
enum signal_type signal = dc->links[i]->connector_signal;
|
||||
|
||||
if ((signal == SIGNAL_TYPE_EDP) ||
|
||||
(signal == SIGNAL_TYPE_DISPLAY_PORT))
|
||||
if (!dc->links[i]->wa_flags.dp_keep_receiver_powered)
|
||||
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, signal);
|
||||
|
|
|
|||
Loading…
Reference in New Issue