Message ID | 1452047202-103072-2-git-send-email-libin.yang@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Jan 06, 2016 at 10:26:42AM +0800, libin.yang@linux.intel.com wrote: > From: Libin Yang <libin.yang@linux.intel.com> > > hsw platforms supports DP MST while ilk doesn't. > This patch fixes the bug. > > Signed-off-by: Libin Yang <libin.yang@linux.intel.com> > --- > drivers/gpu/drm/i915/intel_audio.c | 11 ++++------- > 1 file changed, 4 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c > index 431487a0..d8d42d3 100644 > --- a/drivers/gpu/drm/i915/intel_audio.c > +++ b/drivers/gpu/drm/i915/intel_audio.c > @@ -272,8 +272,7 @@ static void hsw_audio_codec_disable(struct intel_encoder *encoder) > tmp |= AUD_CONFIG_N_PROG_ENABLE; > tmp &= ~AUD_CONFIG_UPPER_N_MASK; > tmp &= ~AUD_CONFIG_LOWER_N_MASK; > - if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT) || > - intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DP_MST)) > + if (intel_crtc->config->has_dp_encoder) > tmp |= AUD_CONFIG_N_VALUE_INDEX; > I915_WRITE(HSW_AUD_CFG(pipe), tmp); > > @@ -339,7 +338,7 @@ static void hsw_audio_codec_enable(struct drm_connector *connector, > tmp = I915_READ(HSW_AUD_CFG(pipe)); > tmp &= ~AUD_CONFIG_N_VALUE_INDEX; > tmp &= ~AUD_CONFIG_PIXEL_CLOCK_HDMI_MASK; > - if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT)) > + if (intel_crtc->config->has_dp_encoder) > tmp |= AUD_CONFIG_N_VALUE_INDEX; > else > tmp |= audio_config_hdmi_pixel_clock(adjusted_mode); > @@ -486,8 +485,7 @@ static void ilk_audio_codec_enable(struct drm_connector *connector, > tmp &= ~AUD_CONFIG_N_VALUE_INDEX; > tmp &= ~AUD_CONFIG_N_PROG_ENABLE; > tmp &= ~AUD_CONFIG_PIXEL_CLOCK_HDMI_MASK; > - if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT) || > - intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DP_MST)) > + if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT)) Could have used has_dp_encoder everywhere, but whatever Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > tmp |= AUD_CONFIG_N_VALUE_INDEX; > else > tmp |= audio_config_hdmi_pixel_clock(adjusted_mode); > @@ -526,8 +524,7 @@ void intel_audio_codec_enable(struct intel_encoder *intel_encoder) > > /* ELD Conn_Type */ > connector->eld[5] &= ~(3 << 2); > - if (intel_pipe_has_type(crtc, INTEL_OUTPUT_DISPLAYPORT) || > - intel_pipe_has_type(crtc, INTEL_OUTPUT_DP_MST)) > + if (crtc->config->has_dp_encoder) > connector->eld[5] |= (1 << 2); > > connector->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2; > -- > 1.9.1
On Thu, Jan 07, 2016 at 06:51:08PM +0200, Ville Syrjälä wrote: > On Wed, Jan 06, 2016 at 10:26:42AM +0800, libin.yang@linux.intel.com wrote: > > From: Libin Yang <libin.yang@linux.intel.com> > > > > hsw platforms supports DP MST while ilk doesn't. > > This patch fixes the bug. > > > > Signed-off-by: Libin Yang <libin.yang@linux.intel.com> > > --- > > drivers/gpu/drm/i915/intel_audio.c | 11 ++++------- > > 1 file changed, 4 insertions(+), 7 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c > > index 431487a0..d8d42d3 100644 > > --- a/drivers/gpu/drm/i915/intel_audio.c > > +++ b/drivers/gpu/drm/i915/intel_audio.c > > @@ -272,8 +272,7 @@ static void hsw_audio_codec_disable(struct intel_encoder *encoder) > > tmp |= AUD_CONFIG_N_PROG_ENABLE; > > tmp &= ~AUD_CONFIG_UPPER_N_MASK; > > tmp &= ~AUD_CONFIG_LOWER_N_MASK; > > - if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT) || > > - intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DP_MST)) > > + if (intel_crtc->config->has_dp_encoder) > > tmp |= AUD_CONFIG_N_VALUE_INDEX; > > I915_WRITE(HSW_AUD_CFG(pipe), tmp); > > > > @@ -339,7 +338,7 @@ static void hsw_audio_codec_enable(struct drm_connector *connector, > > tmp = I915_READ(HSW_AUD_CFG(pipe)); > > tmp &= ~AUD_CONFIG_N_VALUE_INDEX; > > tmp &= ~AUD_CONFIG_PIXEL_CLOCK_HDMI_MASK; > > - if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT)) > > + if (intel_crtc->config->has_dp_encoder) > > tmp |= AUD_CONFIG_N_VALUE_INDEX; > > else > > tmp |= audio_config_hdmi_pixel_clock(adjusted_mode); > > @@ -486,8 +485,7 @@ static void ilk_audio_codec_enable(struct drm_connector *connector, > > tmp &= ~AUD_CONFIG_N_VALUE_INDEX; > > tmp &= ~AUD_CONFIG_N_PROG_ENABLE; > > tmp &= ~AUD_CONFIG_PIXEL_CLOCK_HDMI_MASK; > > - if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT) || > > - intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DP_MST)) > > + if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT)) > > Could have used has_dp_encoder everywhere, but whatever I think this would be good chance to do for consistency, before merging. -Daniel
diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c index 431487a0..d8d42d3 100644 --- a/drivers/gpu/drm/i915/intel_audio.c +++ b/drivers/gpu/drm/i915/intel_audio.c @@ -272,8 +272,7 @@ static void hsw_audio_codec_disable(struct intel_encoder *encoder) tmp |= AUD_CONFIG_N_PROG_ENABLE; tmp &= ~AUD_CONFIG_UPPER_N_MASK; tmp &= ~AUD_CONFIG_LOWER_N_MASK; - if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT) || - intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DP_MST)) + if (intel_crtc->config->has_dp_encoder) tmp |= AUD_CONFIG_N_VALUE_INDEX; I915_WRITE(HSW_AUD_CFG(pipe), tmp); @@ -339,7 +338,7 @@ static void hsw_audio_codec_enable(struct drm_connector *connector, tmp = I915_READ(HSW_AUD_CFG(pipe)); tmp &= ~AUD_CONFIG_N_VALUE_INDEX; tmp &= ~AUD_CONFIG_PIXEL_CLOCK_HDMI_MASK; - if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT)) + if (intel_crtc->config->has_dp_encoder) tmp |= AUD_CONFIG_N_VALUE_INDEX; else tmp |= audio_config_hdmi_pixel_clock(adjusted_mode); @@ -486,8 +485,7 @@ static void ilk_audio_codec_enable(struct drm_connector *connector, tmp &= ~AUD_CONFIG_N_VALUE_INDEX; tmp &= ~AUD_CONFIG_N_PROG_ENABLE; tmp &= ~AUD_CONFIG_PIXEL_CLOCK_HDMI_MASK; - if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT) || - intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DP_MST)) + if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT)) tmp |= AUD_CONFIG_N_VALUE_INDEX; else tmp |= audio_config_hdmi_pixel_clock(adjusted_mode); @@ -526,8 +524,7 @@ void intel_audio_codec_enable(struct intel_encoder *intel_encoder) /* ELD Conn_Type */ connector->eld[5] &= ~(3 << 2); - if (intel_pipe_has_type(crtc, INTEL_OUTPUT_DISPLAYPORT) || - intel_pipe_has_type(crtc, INTEL_OUTPUT_DP_MST)) + if (crtc->config->has_dp_encoder) connector->eld[5] |= (1 << 2); connector->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2;