alistair23-linux/sound/pci
Wang Xingchao 99a2008d0b ALSA: hda - Add power-welll support for haswell HDA
For Intel Haswell chip, HDA controller and codec have
power well dependency from GPU side. This patch added support
to request/release power well in audio driver. Power save
feature should be enabled to get runtime power saving.

There's deadlock when request_module(i915) in azx_probe.
It looks like:
device_lock(audio pci device) -> azx_probe -> module_request
(or symbol_request) -> modprobe (userspace) -> i915 init ->
drm_pci_init -> pci_register_driver -> bus_add_driver -> driver_attach ->
which in turn tries all locks on pci bus, and when it tries the one on the
audio device, it will deadlock.

This patch introduce a work to store remaining probe stuff, and let
request_module run in safe work context.

Signed-off-by: Wang Xingchao <xingchao.wang@linux.intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com>
Reviewed-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-06-06 17:31:56 +02:00
..
ac97 ALSA: add/change some comments describing function return values 2013-03-12 08:32:53 +01:00
ali5451 ALSA: ali5451: use mdelay instead of large udelay constants 2013-04-26 07:36:21 +02:00
asihpi ALSA: asihpi: add format support check in snd_card_asihpi_capture_formats 2013-04-29 13:37:33 +02:00
au88x0 ALSA: au88x0 - Define channel map for au88x0 2013-02-14 15:01:52 +01:00
aw2 ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
ca0106 ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
cs46xx ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
cs5535audio ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
ctxfi ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
echoaudio ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
emu10k1 ALSA: emu10k1: Fix dock firmware loading 2013-04-24 08:11:49 +02:00
hda ALSA: hda - Add power-welll support for haswell HDA 2013-06-06 17:31:56 +02:00
ice1712 ALSA: ice1712: Initialize card->private_data properly 2013-03-07 15:38:58 +01:00
korg1212 ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
lola ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
lx6464es ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
mixart treewide: Fix typos in printk and comment 2013-03-18 14:57:53 +01:00
nm256 ALSA: Make snd_printd() and snd_printdd() inline 2013-01-25 18:32:14 +01:00
oxygen ALSA: oxygen: remove __dev* attributes 2012-12-07 07:32:02 +01:00
pcxhr ALSA: Make snd_printd() and snd_printdd() inline 2013-01-25 18:32:14 +01:00
riptide ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
rme9652 ALSA: hdspm - Enable new TCO ALSA controls 2013-03-11 10:11:21 +01:00
trident ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
vx222 ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
ymfpci ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
ad1889.c ALSA: ad1889: remove __dev* attributes 2012-12-07 07:31:18 +01:00
ad1889.h
ak4531_codec.c ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
als300.c ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
als4000.c ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
atiixp.c ALSA: Make snd_printd() and snd_printdd() inline 2013-01-25 18:32:14 +01:00
atiixp_modem.c ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
azt3328.c ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
azt3328.h ALSA: azt3328: fix previous breakage, improve suspend, cleanups 2009-07-15 12:03:26 +02:00
bt87x.c ALSA: bt87x: Make load_all parameter working again 2013-02-25 09:48:45 +01:00
cmipci.c ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
cs4281.c ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
cs5530.c ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
ens1370.c ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
ens1371.c
es1938.c ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
es1968.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-12-13 12:00:02 -08:00
fm801.c ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
intel8x0.c ALSA: Make snd_printd() and snd_printdd() inline 2013-01-25 18:32:14 +01:00
intel8x0m.c ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
Kconfig ALSA: add missing HAS_IOPORT and GENERIC_HARDIRQS dependencies 2013-02-07 14:46:13 +01:00
maestro3.c ALSA: Make snd_printd() and snd_printdd() inline 2013-01-25 18:32:14 +01:00
Makefile ALSA: Add the driver for Digigram Lola PCI-e boards 2011-05-03 16:31:05 +02:00
rme32.c ALSA: rme32.c irq enabling after spin_lock_irq 2013-02-11 16:12:24 +01:00
rme96.c ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
sis7019.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-12-13 12:00:02 -08:00
sis7019.h trivial: fix typos s/paramter/parameter/ and s/excute/execute/ in documentation and source comments. 2009-06-12 18:01:46 +02:00
sonicvibes.c ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
via82xx.c ALSA: Make snd_printd() and snd_printdd() inline 2013-01-25 18:32:14 +01:00
via82xx_modem.c ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00