[Intel-gfx] [PATCH 1/2] drm/i915: Fix audio power up sequence for gen10/11

Kai Vehmanen kai.vehmanen at linux.intel.com
Wed Oct 2 16:53:06 UTC 2019


Hey,

On Wed, 2 Oct 2019, Imre Deak wrote:

> On Tue, Oct 01, 2019 at 07:35:54PM +0300, Kai Vehmanen wrote:
> > On gen10/11 platforms, driver must set the enable bit of AUD_PIN_BUF_CTL
> > as part of audio power up sequence.
> 
> Good catch, seems to match bspec 21352 (and 49280 for GEN12+).
> 
> Before setting this bit the sequence has an other step done in the HDA
> driver (LCTL reg write in sound/pci/hda/hda_intel.c, intel_init_lctl())
> before setting this bit. If that order is important we'd need another
> hook in drm_audio_component_ops (and also clear the bit).

that is true. The full sequences to avoid unsolicited responses are quite 
awkward as there are multiple (new) hops between display and hda drivers. 
I don't think we strictly need these on Linux, but it's definitely a 
problem if we don't ensure AUD_PIN_BUF_CTL is set.

I have one failing case left on ICL where v1 patchset does not seem 
sufficient. The test case involves a loop of doing S3 suspend, resume, 
unload driver, load driver, play audio via HDMI and repeat. I get 
systematically better results with this patch, but it still fails before 
100 iterations. It's a definite improvement, so probably this patch 
should go in in any case.

I have a wip patch to HDA driver side that seems to cure the remaining 
issue as well. The problem seems slightly different -- we miss an IRQ but 
the display-pch transactions are functional, so this can be a different 
problem. I'll continue testing a bit and once confident enough, send out 
the v2 patch.

Br, Kai


More information about the Intel-gfx mailing list