[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