aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_dp_mst.c
diff options
context:
space:
mode:
authorDhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>2016-09-29 02:55:04 -0400
committerJani Nikula <jani.nikula@intel.com>2016-09-29 04:02:41 -0400
commitbe754b101f70076f6375c84db4e8bcc517a4524f (patch)
tree59583a9b365f817bf995a01cce13ecb8691a0e75 /drivers/gpu/drm/i915/intel_dp_mst.c
parent7d7f8633a82763577727762ff3ac1df3017cb8fe (diff)
Revert "drm/i915: start adding dp mst audio"
This reverts 'commit 3708d5e082c3 ("drm/i915: start adding dp mst audio")' because it breaks MST multi-monitor setups on some platforms. Fixes: 3708d5e082c3 ("drm/i915: start adding dp mst audio") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97907 Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Reported-by: Kim Lidström <kim@dxtr.im> Cc: Libin Yang <libin.yang@linux.intel.com> Cc: Lyude <cpaul@redhat.com> Cc: Jani Nikula <jani.nikula@intel.com> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1475132104-2754-1-git-send-email-dhinakaran.pandiyan@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dp_mst.c')
-rw-r--r--drivers/gpu/drm/i915/intel_dp_mst.c18
1 files changed, 0 insertions, 18 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index 2fc9f81fdd41..3ffbd69e4551 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -37,8 +37,6 @@ static bool intel_dp_mst_compute_config(struct intel_encoder *encoder,
37 struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base); 37 struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
38 struct intel_digital_port *intel_dig_port = intel_mst->primary; 38 struct intel_digital_port *intel_dig_port = intel_mst->primary;
39 struct intel_dp *intel_dp = &intel_dig_port->dp; 39 struct intel_dp *intel_dp = &intel_dig_port->dp;
40 struct intel_connector *connector =
41 to_intel_connector(conn_state->connector);
42 struct drm_atomic_state *state; 40 struct drm_atomic_state *state;
43 int bpp; 41 int bpp;
44 int lane_count, slots; 42 int lane_count, slots;
@@ -61,8 +59,6 @@ static bool intel_dp_mst_compute_config(struct intel_encoder *encoder,
61 59
62 state = pipe_config->base.state; 60 state = pipe_config->base.state;
63 61
64 if (drm_dp_mst_port_has_audio(&intel_dp->mst_mgr, connector->port))
65 pipe_config->has_audio = true;
66 mst_pbn = drm_dp_calc_pbn_mode(adjusted_mode->crtc_clock, bpp); 62 mst_pbn = drm_dp_calc_pbn_mode(adjusted_mode->crtc_clock, bpp);
67 63
68 pipe_config->pbn = mst_pbn; 64 pipe_config->pbn = mst_pbn;
@@ -88,7 +84,6 @@ static void intel_mst_disable_dp(struct intel_encoder *encoder,
88 struct intel_dp *intel_dp = &intel_dig_port->dp; 84 struct intel_dp *intel_dp = &intel_dig_port->dp;
89 struct intel_connector *connector = 85 struct intel_connector *connector =
90 to_intel_connector(old_conn_state->connector); 86 to_intel_connector(old_conn_state->connector);
91 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
92 int ret; 87 int ret;
93 88
94 DRM_DEBUG_KMS("%d\n", intel_dp->active_mst_links); 89 DRM_DEBUG_KMS("%d\n", intel_dp->active_mst_links);
@@ -99,10 +94,6 @@ static void intel_mst_disable_dp(struct intel_encoder *encoder,
99 if (ret) { 94 if (ret) {
100 DRM_ERROR("failed to update payload %d\n", ret); 95 DRM_ERROR("failed to update payload %d\n", ret);
101 } 96 }
102 if (old_crtc_state->has_audio) {
103 intel_audio_codec_disable(encoder);
104 intel_display_power_put(dev_priv, POWER_DOMAIN_AUDIO);
105 }
106} 97}
107 98
108static void intel_mst_post_disable_dp(struct intel_encoder *encoder, 99static void intel_mst_post_disable_dp(struct intel_encoder *encoder,
@@ -215,12 +206,6 @@ static void intel_mst_enable_dp(struct intel_encoder *encoder,
215 ret = drm_dp_check_act_status(&intel_dp->mst_mgr); 206 ret = drm_dp_check_act_status(&intel_dp->mst_mgr);
216 207
217 ret = drm_dp_update_payload_part2(&intel_dp->mst_mgr); 208 ret = drm_dp_update_payload_part2(&intel_dp->mst_mgr);
218 if (pipe_config->has_audio) {
219 DRM_DEBUG_DRIVER("Enabling DP audio on pipe %c\n",
220 pipe_name(intel_mst->pipe));
221 intel_display_power_get(dev_priv, POWER_DOMAIN_AUDIO);
222 intel_audio_codec_enable(encoder);
223 }
224} 209}
225 210
226static bool intel_dp_mst_enc_get_hw_state(struct intel_encoder *encoder, 211static bool intel_dp_mst_enc_get_hw_state(struct intel_encoder *encoder,
@@ -243,9 +228,6 @@ static void intel_dp_mst_enc_get_config(struct intel_encoder *encoder,
243 enum transcoder cpu_transcoder = pipe_config->cpu_transcoder; 228 enum transcoder cpu_transcoder = pipe_config->cpu_transcoder;
244 u32 temp, flags = 0; 229 u32 temp, flags = 0;
245 230
246 pipe_config->has_audio =
247 intel_ddi_is_audio_enabled(dev_priv, crtc);
248
249 temp = I915_READ(TRANS_DDI_FUNC_CTL(cpu_transcoder)); 231 temp = I915_READ(TRANS_DDI_FUNC_CTL(cpu_transcoder));
250 if (temp & TRANS_DDI_PHSYNC) 232 if (temp & TRANS_DDI_PHSYNC)
251 flags |= DRM_MODE_FLAG_PHSYNC; 233 flags |= DRM_MODE_FLAG_PHSYNC;