| From 9fcb1704d1d51b12e2f03c78bca013d0cbbb7c98 Mon Sep 17 00:00:00 2001 |
| From: Jani Nikula <jani.nikula@intel.com> |
| Date: Tue, 5 May 2015 16:32:12 +0300 |
| Subject: drm/i915/dp: there is no audio on port A |
| |
| From: Jani Nikula <jani.nikula@intel.com> |
| |
| commit 9fcb1704d1d51b12e2f03c78bca013d0cbbb7c98 upstream. |
| |
| The eDP port A register on PCH split platforms has a slightly different |
| register layout from the other ports, with bit 6 being either alternate |
| scrambler reset or reserved, depending on the generation. Our |
| misinterpretation of the bit as audio has lead to warning. |
| |
| Fix this by not enabling audio on port A, since none of our platforms |
| support audio on port A anyway. |
| |
| v2: DDI doesn't have audio on port A either (Sivakumar Thulasimani) |
| |
| Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89958 |
| Reported-and-tested-by: Chris Bainbridge <chris.bainbridge@gmail.com> |
| Reviewed-by: Sivakumar Thulasimani <sivakumar.thulasimani@intel.com> |
| Signed-off-by: Jani Nikula <jani.nikula@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/gpu/drm/i915/intel_dp.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/gpu/drm/i915/intel_dp.c |
| +++ b/drivers/gpu/drm/i915/intel_dp.c |
| @@ -1176,7 +1176,7 @@ intel_dp_compute_config(struct intel_enc |
| |
| pipe_config->has_dp_encoder = true; |
| pipe_config->has_drrs = false; |
| - pipe_config->has_audio = intel_dp->has_audio; |
| + pipe_config->has_audio = intel_dp->has_audio && port != PORT_A; |
| |
| if (is_edp(intel_dp) && intel_connector->panel.fixed_mode) { |
| intel_fixed_panel_mode(intel_connector->panel.fixed_mode, |
| @@ -2026,8 +2026,8 @@ static void intel_dp_get_config(struct i |
| int dotclock; |
| |
| tmp = I915_READ(intel_dp->output_reg); |
| - if (tmp & DP_AUDIO_OUTPUT_ENABLE) |
| - pipe_config->has_audio = true; |
| + |
| + pipe_config->has_audio = tmp & DP_AUDIO_OUTPUT_ENABLE && port != PORT_A; |
| |
| if ((port == PORT_A) || !HAS_PCH_CPT(dev)) { |
| if (tmp & DP_SYNC_HS_HIGH) |