linux/sound/pci/hda
Dave Airlie 246efa4a07 snd/hda: add runtime suspend/resume on optimus support (v4)
Add support for HDMI audio device on VGA cards that powerdown
to D3cold using non-standard ACPI/PCI infrastructure (optimus).

This does a couple of things to make it work:

a) add a set of power ops for the hdmi domain, and enables them
via vga_switcheroo when we are a switcheroo controlled card. This
just replaces the runtime resume operation so that when the card
is in D3cold the userspace pci config space access via sysfs,
the vga switcheroon runtime resume gets called first and it calls
the GPU resume callback before calling the sound card runtime
resume.

b) standard ACPI/PCI stacks won't put a device into D3cold without
an ACPI handle, but since the hdmi audio devices on gpus don't have
an ACPI handle, we need to manually force the device into D3cold
after suspend from the switcheroo path only.

c) don't try and do runtime s/r when the GPU is off.

d) call runtime suspend/resume during switcheroo suspend/resume
this is to make sure the runtime stack knows to try and resume
the hdmi audio device for pci config space access.

v2: fix incorrect runtime call suspend->resume.

v3: rework irq handler to avoid false irq when we are resuming
but haven't runtime resumed yet, don't bother trying D3cold,
it won't work, just set it manually ourselves, move runtime s/r
calls outside the main s/r hook. enable dnyamic pm properly by
dropping reference.

v4: put back irq handler check just wrap it with cap check

Acked-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2013-08-29 13:30:29 +10:00
..
ca0132_regs.h ALSA: hda/ca0132 - Fix type of INVALID_CHIP_ADDRESS 2013-02-12 10:15:15 +01:00
hda_auto_parser.c ALSA: hda - allow "Headphone Mic" parser flag 2013-04-11 11:59:20 +02:00
hda_auto_parser.h ALSA: hda - add some small convenience functions to auto parser 2013-04-11 11:59:27 +02:00
hda_beep.c ALSA: hda - Make the resume of digital beep setup proper 2013-03-18 12:58:48 +01:00
hda_beep.h ALSA: hda - Fix power-saving during playing beep sound 2013-03-18 12:58:47 +01:00
hda_codec.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-07-04 11:40:58 -07:00
hda_codec.h ALSA: hda - Don't take unresponsive D3 transition too serious 2013-06-06 14:20:19 +02:00
hda_eld.c ALSA: hda - bug fix on return value when getting HDMI ELD info 2013-04-02 11:55:23 +02:00
hda_generic.c ALSA: Replace the magic number 44 with const 2013-06-28 12:14:44 +02:00
hda_generic.h ALSA: hda - Add auto_mute_via_amp flag to generic parser 2013-06-25 08:13:51 +02:00
hda_hwdep.c ALSA: hda - Add snd_hda_get_int_hint() helper function 2013-01-12 08:44:47 +01:00
hda_i915.c ALSA: hda - Add power-welll support for haswell HDA 2013-06-06 17:31:56 +02:00
hda_i915.h ALSA: hda - Add power-welll support for haswell HDA 2013-06-06 17:31:56 +02:00
hda_intel_trace.h ALSA: hda - Add tracepoints to HD-audio controller driver 2012-10-30 10:39:59 +01:00
hda_intel.c snd/hda: add runtime suspend/resume on optimus support (v4) 2013-08-29 13:30:29 +10:00
hda_jack.c ALSA: Replace the magic number 44 with const 2013-06-28 12:14:44 +02:00
hda_jack.h ALSA: hda - Allow jack state to depend on another jack 2012-11-19 19:49:58 +01:00
hda_local.h ALSA: hda - Fix missing Mic Boost controls for VIA codecs 2013-06-19 07:54:09 +02:00
hda_proc.c ALSA: hda - Add In-driver connection info 2013-06-25 08:13:56 +02:00
hda_trace.h ALSA: hda - Clean up CONFIG_SND_HDA_POWER_SAVE 2012-08-30 07:50:13 -07:00
Kconfig Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2013-07-09 16:04:31 -07:00
Makefile ALSA: hda - Add power-welll support for haswell HDA 2013-06-06 17:31:56 +02:00
patch_analog.c ALSA: hda - Fix EAPD vmaster hook for AD1884 & co 2013-07-04 12:54:22 +02:00
patch_ca0110.c ALSA: hda - Remove superfluous header inclusions 2013-01-21 16:10:56 +01:00
patch_ca0132.c ALSA: Replace the magic number 44 with const 2013-06-28 12:14:44 +02:00
patch_cirrus.c ALSA: hda - Fix pin configurations for MacBook Air 4,2 2013-06-17 10:22:46 +02:00
patch_cmedia.c ALSA: hda - Remove superfluous header inclusions 2013-01-21 16:10:56 +01:00
patch_conexant.c ALSA: hda - Make Thinkpad X220-tablet use generic parser 2013-06-20 12:53:36 +02:00
patch_hdmi.c ALSA: hda - Add new GPU codec ID to snd-hda 2013-07-16 08:14:49 +02:00
patch_realtek.c ALSA: hda - Keep halting ALC5505 DSP 2013-07-08 09:42:42 +02:00
patch_si3054.c sound: Add module.h to the previously silent sound users 2011-10-31 19:31:21 -04:00
patch_sigmatel.c ALSA: hda - Remove NO_PRESENCE bit override for Dell 1420n Laptop 2013-07-19 08:11:41 +02:00
patch_via.c ALSA: hda - Use auto_mute_via_amp=1 for VT1708 2013-06-25 08:13:55 +02:00