aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_dp_mst.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dp_mst.c')
-rw-r--r--drivers/gpu/drm/i915/intel_dp_mst.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index 629337dbca3d..8f7594ef39a9 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -92,7 +92,9 @@ static bool intel_dp_mst_compute_config(struct intel_encoder *encoder,
92 92
93} 93}
94 94
95static void intel_mst_disable_dp(struct intel_encoder *encoder) 95static void intel_mst_disable_dp(struct intel_encoder *encoder,
96 struct intel_crtc_state *old_crtc_state,
97 struct drm_connector_state *old_conn_state)
96{ 98{
97 struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base); 99 struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
98 struct intel_digital_port *intel_dig_port = intel_mst->primary; 100 struct intel_digital_port *intel_dig_port = intel_mst->primary;
@@ -109,7 +111,9 @@ static void intel_mst_disable_dp(struct intel_encoder *encoder)
109 } 111 }
110} 112}
111 113
112static void intel_mst_post_disable_dp(struct intel_encoder *encoder) 114static void intel_mst_post_disable_dp(struct intel_encoder *encoder,
115 struct intel_crtc_state *old_crtc_state,
116 struct drm_connector_state *old_conn_state)
113{ 117{
114 struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base); 118 struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
115 struct intel_digital_port *intel_dig_port = intel_mst->primary; 119 struct intel_digital_port *intel_dig_port = intel_mst->primary;
@@ -128,12 +132,16 @@ static void intel_mst_post_disable_dp(struct intel_encoder *encoder)
128 132
129 intel_mst->connector = NULL; 133 intel_mst->connector = NULL;
130 if (intel_dp->active_mst_links == 0) { 134 if (intel_dp->active_mst_links == 0) {
131 intel_dig_port->base.post_disable(&intel_dig_port->base); 135 intel_dig_port->base.post_disable(&intel_dig_port->base,
136 NULL, NULL);
137
132 intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF); 138 intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF);
133 } 139 }
134} 140}
135 141
136static void intel_mst_pre_enable_dp(struct intel_encoder *encoder) 142static void intel_mst_pre_enable_dp(struct intel_encoder *encoder,
143 struct intel_crtc_state *pipe_config,
144 struct drm_connector_state *conn_state)
137{ 145{
138 struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base); 146 struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
139 struct intel_digital_port *intel_dig_port = intel_mst->primary; 147 struct intel_digital_port *intel_dig_port = intel_mst->primary;
@@ -200,7 +208,9 @@ static void intel_mst_pre_enable_dp(struct intel_encoder *encoder)
200 ret = drm_dp_update_payload_part1(&intel_dp->mst_mgr); 208 ret = drm_dp_update_payload_part1(&intel_dp->mst_mgr);
201} 209}
202 210
203static void intel_mst_enable_dp(struct intel_encoder *encoder) 211static void intel_mst_enable_dp(struct intel_encoder *encoder,
212 struct intel_crtc_state *pipe_config,
213 struct drm_connector_state *conn_state)
204{ 214{
205 struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base); 215 struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
206 struct intel_digital_port *intel_dig_port = intel_mst->primary; 216 struct intel_digital_port *intel_dig_port = intel_mst->primary;