a52ff34e5e
For SKL and later Intel chips, we control the power well per codec
basis via link_power callback since the commit [03b135cebc47: ALSA:
hda - remove dependency on i915 power well for SKL].
However, there are a few exceptional cases where the gfx registers are
accessed from the audio driver: namely the wakeup override bit
toggling at (both system and runtime) resume. This seems causing a
kernel warning when accessed during the power well down (and likely
resulting in the bogus register accesses).
This patch puts the proper power up / down sequence around the resume
code so that the wakeup bit is fiddled properly while the power is
up. (The other callback, sync_audio_rate, is used only in the PCM
callback, so it's guaranteed in the power-on.)
Also, by this proper power up/down, the instantaneous flip of wakeup
bit in the resume callback that was introduced by the commit
[033ea349a7cd: ALSA: hda - Fix Skylake codec timeout] becomes
superfluous, as snd_hdac_display_power() already does it. So we can
clean it up together.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96214
Fixes:
|
||
---|---|---|
.. | ||
ac97 | ||
ali5451 | ||
asihpi | ||
au88x0 | ||
aw2 | ||
ca0106 | ||
cs46xx | ||
cs5535audio | ||
ctxfi | ||
echoaudio | ||
emu10k1 | ||
hda | ||
ice1712 | ||
korg1212 | ||
lola | ||
lx6464es | ||
mixart | ||
nm256 | ||
oxygen | ||
pcxhr | ||
riptide | ||
rme9652 | ||
trident | ||
vx222 | ||
ymfpci | ||
Kconfig | ||
Makefile | ||
ad1889.c | ||
ad1889.h | ||
ak4531_codec.c | ||
als300.c | ||
als4000.c | ||
atiixp.c | ||
atiixp_modem.c | ||
azt3328.c | ||
azt3328.h | ||
bt87x.c | ||
cmipci.c | ||
cs4281.c | ||
cs5530.c | ||
ens1370.c | ||
ens1371.c | ||
es1938.c | ||
es1968.c | ||
fm801.c | ||
intel8x0.c | ||
intel8x0m.c | ||
maestro3.c | ||
rme32.c | ||
rme96.c | ||
sis7019.c | ||
sis7019.h | ||
sonicvibes.c | ||
via82xx.c | ||
via82xx_modem.c |