[Intel-gfx] [PATCH 2/2] drm/i915/audio: Extend audio sync rate support for DP MST

Ville Syrjälä ville.syrjala at linux.intel.com
Tue Nov 29 16:50:00 UTC 2016


On Tue, Nov 29, 2016 at 06:33:50PM +0200, Jani Nikula wrote:
> On Tue, 15 Nov 2016, libin.yang at intel.com wrote:
> > From: Libin Yang <libin.yang at intel.com>
> >
> > This patch extends the support of audio sample rate
> > sync up to DP MST.
> >
> > Signed-off-by: Libin Yang <libin.yang at intel.com>
> > ---
> >  drivers/gpu/drm/i915/intel_audio.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c
> > index c8a1345..88ed869 100644
> > --- a/drivers/gpu/drm/i915/intel_audio.c
> > +++ b/drivers/gpu/drm/i915/intel_audio.c
> > @@ -807,7 +807,8 @@ static int i915_audio_component_sync_audio_rate(struct device *kdev, int port,
> >  	intel_encoder = get_saved_enc(dev_priv, port, pipe);
> >  	if (!intel_encoder || !intel_encoder->base.crtc ||
> >  	    (intel_encoder->type != INTEL_OUTPUT_HDMI &&
> > -	     intel_encoder->type != INTEL_OUTPUT_DP)) {
> > +	     intel_encoder->type != INTEL_OUTPUT_DP &&
> > +		 intel_encoder->type != INTEL_OUTPUT_DP_MST)) {
> 
> I think the better option is to make absolutely sure we never store
> other kinds of encoders in dev_priv->av_enc_map[pipe] to begin with. I
> think that's true already, but please add
> 
> 	if (WARN_ON(intel_encoder->type != INTEL_OUTPUT_HDMI &&
> 		    intel_encoder->type != INTEL_OUTPUT_DP &&
> 		    intel_encoder->type != INTEL_OUTPUT_DP_MST))
>         	return;
> 
> near the beginning of intel_audio_codec_enable(), and remove the type
> checks here. This reduces the confusion about different kinds of checks
> after calling get_saved_enc().

This while encoder->type thing is pretty broken actually. Currently
we're semi-randomly flipping DDI encoders between UNKNOWN,HDMI and DP.
I want to eliminate that so that their type will always be just "DDI".
For iguring out what kind of signal we are driving out you should be
looking at crtc_state->output_types.

-- 
Ville Syrjälä
Intel OTC


More information about the Intel-gfx mailing list