|
@@ -2639,6 +2639,8 @@ static void intel_ddi_pre_enable_dp(struct intel_encoder *encoder,
|
|
|
intel_dp_start_link_train(intel_dp);
|
|
|
if (port != PORT_A || INTEL_GEN(dev_priv) >= 9)
|
|
|
intel_dp_stop_link_train(intel_dp);
|
|
|
+
|
|
|
+ intel_ddi_enable_pipe_clock(crtc_state);
|
|
|
}
|
|
|
|
|
|
static void intel_ddi_pre_enable_hdmi(struct intel_encoder *encoder,
|
|
@@ -2672,6 +2674,8 @@ static void intel_ddi_pre_enable_hdmi(struct intel_encoder *encoder,
|
|
|
intel_dig_port->set_infoframes(&encoder->base,
|
|
|
crtc_state->has_infoframe,
|
|
|
crtc_state, conn_state);
|
|
|
+
|
|
|
+ intel_ddi_enable_pipe_clock(crtc_state);
|
|
|
}
|
|
|
|
|
|
static void intel_ddi_pre_enable(struct intel_encoder *encoder,
|
|
@@ -2738,6 +2742,8 @@ static void intel_ddi_post_disable_dp(struct intel_encoder *encoder,
|
|
|
bool is_mst = intel_crtc_has_type(old_crtc_state,
|
|
|
INTEL_OUTPUT_DP_MST);
|
|
|
|
|
|
+ intel_ddi_disable_pipe_clock(old_crtc_state);
|
|
|
+
|
|
|
/*
|
|
|
* Power down sink before disabling the port, otherwise we end
|
|
|
* up getting interrupts from the sink on detecting link loss.
|
|
@@ -2763,6 +2769,8 @@ static void intel_ddi_post_disable_hdmi(struct intel_encoder *encoder,
|
|
|
struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
|
|
|
struct intel_hdmi *intel_hdmi = &dig_port->hdmi;
|
|
|
|
|
|
+ intel_ddi_disable_pipe_clock(old_crtc_state);
|
|
|
+
|
|
|
intel_disable_ddi_buf(encoder);
|
|
|
|
|
|
dig_port->set_infoframes(&encoder->base, false,
|