diff options
author | Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> | 2016-09-29 02:55:04 -0400 |
---|---|---|
committer | Jani Nikula <jani.nikula@intel.com> | 2016-09-29 04:02:41 -0400 |
commit | be754b101f70076f6375c84db4e8bcc517a4524f (patch) | |
tree | 59583a9b365f817bf995a01cce13ecb8691a0e75 /drivers/gpu/drm/i915/intel_dp_mst.c | |
parent | 7d7f8633a82763577727762ff3ac1df3017cb8fe (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.c | 18 |
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 | ||
108 | static void intel_mst_post_disable_dp(struct intel_encoder *encoder, | 99 | static 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 | ||
226 | static bool intel_dp_mst_enc_get_hw_state(struct intel_encoder *encoder, | 211 | static 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; |