[Intel-gfx] [RFC PATCH 4/5] drm: i915: add DisplayPort amp unmute for LPE audio mode

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Fri Jan 27 14:47:50 UTC 2017


Thanks Jani and Ville for the comments. Couple of precisions needed below:
>>
>>>   #define GEN6_BSD_RNCID			_MMIO(0x12198)
>>>   
>>>   #define GEN7_FF_THREAD_MODE		_MMIO(0x20a0)
>>> diff --git a/drivers/gpu/drm/i915/intel_lpe_audio.c b/drivers/gpu/drm/i915/intel_lpe_audio.c
>>> index 245523e..b3134ef 100644
>>> --- a/drivers/gpu/drm/i915/intel_lpe_audio.c
>>> +++ b/drivers/gpu/drm/i915/intel_lpe_audio.c
>>> @@ -248,6 +248,15 @@ static int lpe_audio_setup(struct drm_i915_private *dev_priv)
>>>   		goto err_free_irq;
>>>   	}
>>>   
>>> +	/* Enable DPAudio debug bits by default */
>>> +	if (IS_CHERRYVIEW(dev_priv)) {
> VLV too. And like I said we might need this in the powerwell code as
> well. You should make a test to see if the register value is retained
> across the display power well being turned off. Eg. simply disable all
> displays, check the log to make sure it really did turn off the display
> power well, then re-enable some displays, and finally check if the
> register value was retained or not).
VLV has DisplayPort? I thought this was an addition on CHT, and I really 
don't know of any devices with this combination of HDaudio disabled+DP. 
I'd rather keep this CHT-only until we find a device where this can be 
tested.

On the powerwell, I could use more guidance. i tried this first solution 
to see if streaming worked (and it did :-)). I don't mind moving the 
code somewhere else but I have no idea where.
>
>>> +		u32 chicken_bit;
>>> +
>>> +		chicken_bit = I915_READ(VLV_AUD_CHICKEN_BIT_REG);
>>> +		I915_WRITE(VLV_AUD_CHICKEN_BIT_REG,
>>> +			   chicken_bit | CHICKEN_BIT_DBG_ENABLE);
>>> +	}
>>> +
>>>   	return 0;
>>>   err_free_irq:
>>>   	irq_free_desc(dev_priv->lpe_audio.irq);
>>> @@ -357,6 +366,24 @@ void intel_lpe_audio_notify(struct drm_i915_private *dev_priv,
>>>   			pdata->tmds_clock_speed = tmds_clk_speed;
>>>   		if (link_rate)
>>>   			pdata->link_rate = link_rate;
>>> +
>>> +		if (dp_output) { /* unmute the amp */
> The spec doesn't distinquish DP vs. HDMI here. So I presume we should be
> able to do this always.

I'll try to see if HDMI still works with this. We could tentatively add 
unmute in all cases but I'll need to add a test for Baytrail (no PORT_D) 
so in the end it's the same number of tests.

>
> And I think we might want to mute things again when disabling audio.
I was wondering if there would be side effects of writing to a register 
controlling a port if that port is not connected any longer. I'll give 
it a try.


More information about the Intel-gfx mailing list