linux/sound/pci/hda
Takashi Iwai bb404d159f ALSA: hda - Manage power well properly for resume
commit a52ff34e5e upstream.

For SKL and later Intel chips, we control the power well per codec
basis via link_power callback since the commit [03b135cebc: 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
[033ea349a7: 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: 03b135cebc ('ALSA: hda - remove dependency on i915 power well for SKL')
Cc: <stable@vger.kernel.org> # v4.2+
Tested-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2016-09-07 08:32:37 +02:00
..
ca0132_regs.h ALSA: hda: ca0132_regs.h: Fix typo in include guard 2014-08-22 11:24:11 +02:00
dell_wmi_helper.c ALSA: hda - add mic mute led hook for dell machines 2014-07-31 09:21:42 +02:00
hda_auto_parser.c ALSA: hda - remove no physical connection pins from pin_quirk table 2015-08-03 10:16:20 +02:00
hda_auto_parser.h ALSA: hda - Sort input pins depending on amp caps 2014-09-23 15:57:32 +02:00
hda_beep.c ALSA: hda-beep: Update authors dead email address 2015-06-13 09:13:26 +02:00
hda_beep.h ALSA: hda-beep: Update authors dead email address 2015-06-20 09:24:40 +02:00
hda_bind.c ALSA: hda - Fix missing module loading with model=generic option 2016-01-31 11:28:57 -08:00
hda_codec.c ASoC: Updates for v4.4 2015-10-26 12:14:49 +01:00
hda_codec.h Merge branch 'topic/hda-modalias' into for-next 2015-10-20 10:19:40 +02:00
hda_controller.c ALSA: hda - Fix lost 4k BDL boundary workaround 2015-11-02 17:39:06 +01:00
hda_controller.h ALSA: hda - Spell vga_switcheroo consistently 2015-10-19 11:00:45 +02:00
hda_controller_trace.h ALSA: hda - rename hda_intel_trace.h to hda_controller_trace.h 2015-05-18 10:06:32 +02:00
hda_eld.c ALSA: hda/eld - Add const to possible places 2015-08-17 15:12:14 +02:00
hda_generic.c ALSA: hda - fix read before array start 2016-07-27 09:47:38 -07:00
hda_generic.h ALSA: hda - Fix power of pins used for mute LED with vrefs 2015-03-20 18:30:48 +01:00
hda_hwdep.c ALSA: hda - Add card field to hda_codec struct 2015-03-03 11:25:16 +01:00
hda_intel.c ALSA: hda - Manage power well properly for resume 2016-09-07 08:32:37 +02:00
hda_intel.h ALSA: hda - Spell vga_switcheroo consistently 2015-10-19 11:00:45 +02:00
hda_intel_trace.h ALSA: hda - add hda_intel_trace.h 2015-05-18 10:06:44 +02:00
hda_jack.c ALSA: hda - Fix bad dereference of jack object 2016-02-17 12:31:00 -08:00
hda_jack.h ALSA: hda - Fix bad dereference of jack object 2016-02-17 12:31:00 -08:00
hda_local.h ALSA: hda: make use of core codec fns 2015-10-08 19:09:36 +02:00
hda_proc.c ALSA: hda/proc - Fix racy string access for power states 2015-08-17 15:12:04 +02:00
hda_sysfs.c ALSA: hda - Fix broken reconfig 2016-05-18 17:06:46 -07:00
hda_tegra.c ALSA: hda/tegra - async probe for avoiding module loading deadlock 2015-09-24 14:01:46 +02:00
Kconfig ALSA: HDAC: move SND_HDA_PREALLOC_SIZE to core 2015-06-16 17:40:38 +02:00
local.h ALSA: hda - Move a part of hda_codec stuff into hdac_device 2015-03-23 13:17:17 +01:00
Makefile ALSA: replace CONFIG_PROC_FS with CONFIG_SND_PROC_FS 2015-05-27 21:25:19 +02:00
patch_analog.c ALSA: hda - convert to hda_device_id 2015-10-20 10:15:20 +02:00
patch_ca0110.c ALSA: hda - convert to hda_device_id 2015-10-20 10:15:20 +02:00
patch_ca0132.c ALSA: hda - Fix bad dereference of jack object 2016-02-17 12:31:00 -08:00
patch_cirrus.c ALSA: hda - Keep powering up ADCs on Cirrus codecs 2016-05-04 14:48:42 -07:00
patch_cmedia.c ALSA: hda - convert to hda_device_id 2015-10-20 10:15:20 +02:00
patch_conexant.c ALSA: hda - Apply reboot D3 fix for CX20724 codec, too 2016-04-12 09:08:52 -07:00
patch_hdmi.c ALSA: hda - Don't handle ELD notify from invalid port 2016-04-12 09:08:52 -07:00
patch_realtek.c ALSA: hda - Fix headset mic detection problem for two dell machines 2016-08-20 18:09:24 +02:00
patch_si3054.c ALSA: hda - convert to hda_device_id 2015-10-20 10:15:20 +02:00
patch_sigmatel.c ALSA: hda - Fix bad dereference of jack object 2016-02-17 12:31:00 -08:00
patch_via.c ALSA: hda - convert to hda_device_id 2015-10-20 10:15:20 +02:00
thinkpad_helper.c Revert "ALSA: hda - Add mute-LED mode control to Thinkpad" 2015-05-24 08:32:37 +02:00