linux/sound/pci
Dylan Reid b4a91cf05c ALSA: hda - Handle open while transitioning to D3.
This addresses an issue encountered when a pcm is opened while
transitioning to low power state (codec->power_on == 1 &&
codec->power_transition == -1).  Add snd_pcm_power_up_d3wait to
hda_codec.  This function is used to power up from azx_open as opposed
to snd_hda_power_up used from codec_exec_verb. When powering up from
azx_open, wait for pending power downs to complete, avoiding the power
up continuing in parallel with the power down on the work queue.

The specific issue seen was with the CS4210 codec, it powers off the ADC
and DAC nid in its suspend handler.  If it is re-opened before the
~100ms power down process completes, the ADC and DAC nid are initialized
while powered down and audio is lost until another suspend/resume cycle.

Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-18 09:35:21 +02:00
..
ac97
ali5451 ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
asihpi ALSA: asihpi - Revert module_pci_driver conversion for asihpi.c 2012-04-26 07:19:39 +02:00
au88x0 ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
aw2 ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
ca0106 ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
cs46xx ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
cs5535audio ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
ctxfi ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
echoaudio Merge branch 'topic/misc' into for-linus 2012-05-21 12:51:35 +02:00
emu10k1 ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
hda ALSA: hda - Handle open while transitioning to D3. 2012-06-18 09:35:21 +02:00
ice1712 ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
korg1212 ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
lola ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
lx6464es ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
mixart ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
nm256 ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
oxygen ALSA: oxygen: add Xonar DGX support 2012-05-05 14:24:12 +02:00
pcxhr ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
riptide ALSA: riptide: remove redundant NULL test before release_firmware() 2012-04-10 08:42:33 +02:00
rme9652 ALSA: hdspm - Work around broken DDS value on PCI RME MADI 2012-05-31 10:26:12 +02:00
trident ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
vx222 ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
ymfpci ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
Kconfig Merge branch 'topic/misc' into for-linus 2012-05-21 12:51:35 +02:00
Makefile
ad1889.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
ad1889.h
ak4531_codec.c
als300.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
als4000.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
atiixp.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
atiixp_modem.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
azt3328.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
azt3328.h
bt87x.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
cmipci.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
cs4281.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
cs5530.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
ens1370.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
ens1371.c
es1938.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
es1968.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
fm801.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
intel8x0.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
intel8x0m.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
maestro3.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
rme32.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
rme96.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
sis7019.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
sis7019.h
sonicvibes.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
via82xx.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
via82xx_modem.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00