android_kernel_motorola_sm6225/sound/pci
Takashi Iwai f4c482a4d0 ALSA: hda - Fix yet another race of vga_switcheroo registration
The recent fix for vga switcheroo race in commit 128960a9 opened yet
another race.  At the time the audio driver starts probing, user may
turn off D-GPU off.  But at this moment, the audio driver still
doesn't register the vga switcheroo client, thus the switching isn't
notified.  Then the hardware gets off out of sudden, resulting in
invalid reads and lots of "spurious response" error messages.

For solving this situation, the following changes have been done in
this patch:
- Move again vga switcheroo registration to the very early stage of
  the probing; this also requires to set pci drvdata properly before
  registration
- Introduce the completion to synchronize the driver probe at vga
  switcheroo callbacks; this assures that the whole probing finished
  before executing the callbacks

Reported-by: Daniel J Blueman <daniel@quora.org>
Tested-by: Daniel J Blueman <daniel@quora.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-12-04 16:00:40 +01:00
..
ac97 ALSA: ac97 - Fix missing NULL check in snd_ac97_cvol_new() 2012-10-15 09:55:48 +02:00
ali5451 ALSA: PCI: Replace CONFIG_PM with CONFIG_PM_SLEEP 2012-08-14 18:12:04 +02:00
asihpi ALSA: Convert dev_printk(KERN_<LEVEL> to dev_<level>( 2012-10-28 09:56:20 +01:00
au88x0 ALSA: au88x0: Give comment for vortex_wtdma_bufshift() issue 2012-10-25 13:55:51 +02:00
aw2 ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
ca0106 ALSA: ca0106: Define channel maps 2012-09-12 15:52:09 +02:00
cs46xx Merge branch 'for-linus' into for-next 2012-08-20 22:14:26 +02:00
cs5535audio ALSA: PCI: Replace CONFIG_PM with CONFIG_PM_SLEEP 2012-08-14 18:12:04 +02:00
ctxfi ALSA: Define more channel map positions 2012-09-12 18:13:03 +02:00
echoaudio ALSA: PCI: Replace CONFIG_PM with CONFIG_PM_SLEEP 2012-08-14 18:12:04 +02:00
emu10k1 ALSA: emu10k1: Add missing ifdef for emu->suspend reference 2012-11-22 21:21:20 +01:00
hda ALSA: hda - Fix yet another race of vga_switcheroo registration 2012-12-04 16:00:40 +01:00
ice1712 ALSA: ice1724: Fix build error without CONFIG_PM_SLEEP 2012-11-12 11:38:10 +01:00
korg1212 ALSA: korg1212: Fix reverted min/max ADC sense range 2012-08-30 07:57:38 -07:00
lola ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
lx6464es ALSA: lx6464es: Add a missing error check 2012-08-14 17:42:11 +02:00
mixart ALSA: mixart: hard dependency on the standard fw loader 2012-11-22 17:47:57 +01:00
nm256 ALSA: PCI: Replace CONFIG_PM with CONFIG_PM_SLEEP 2012-08-14 18:12:04 +02:00
oxygen ALSA: virtuoso: Xonar DSX support 2012-11-05 12:53:16 +01:00
pcxhr ALSA: pcxhr: hard dependency on the standard fw loader 2012-11-22 17:47:59 +01:00
riptide ALSA: PCI: Replace CONFIG_PM with CONFIG_PM_SLEEP 2012-08-14 18:12:04 +02:00
rme9652 ALSA: hdspm - Remove obsolete settings functions 2012-12-03 15:30:01 +01:00
trident ALSA: PCI: Replace CONFIG_PM with CONFIG_PM_SLEEP 2012-08-14 18:12:04 +02:00
vx222 ALSA: PCI: Replace CONFIG_PM with CONFIG_PM_SLEEP 2012-08-14 18:12:04 +02:00
ymfpci ALSA: ymfpci: Use kmalloc for register buffer for PM 2012-11-22 17:48:05 +01:00
ad1889.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
ad1889.h
ak4531_codec.c sound: Add module.h to the previously silent sound users 2011-10-31 19:31:21 -04:00
als300.c ALSA: als3000: check for the kzalloc return value 2012-10-22 16:31:40 +02:00
als4000.c ALSA: PCI: Replace CONFIG_PM with CONFIG_PM_SLEEP 2012-08-14 18:12:04 +02:00
atiixp.c ALSA: Implement channel maps for standard onboard AC97 drivers 2012-09-06 18:08:31 +02:00
atiixp_modem.c ALSA: PCI: Replace CONFIG_PM with CONFIG_PM_SLEEP 2012-08-14 18:12:04 +02:00
azt3328.c ALSA: PCI: Replace CONFIG_PM with CONFIG_PM_SLEEP 2012-08-14 18:12:04 +02:00
azt3328.h ALSA: azt3328: fix previous breakage, improve suspend, cleanups 2009-07-15 12:03:26 +02:00
bt87x.c ALSA: pci: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
cmipci.c ALSA: cmipci: Implement channel mapping 2012-09-06 18:08:32 +02:00
cs4281.c ALSA: PCI: Replace CONFIG_PM with CONFIG_PM_SLEEP 2012-08-14 18:12:04 +02:00
cs5530.c ALSA: cs5530: Fix resource leak in error path 2012-08-30 13:21:00 -07:00
ens1370.c ALSA: Fix leftover chmap UNKNOWN -> MONO conversions 2012-09-13 14:48:46 +02:00
ens1371.c
es1938.c ALSA: PCI: Replace CONFIG_PM with CONFIG_PM_SLEEP 2012-08-14 18:12:04 +02:00
es1968.c ALSA: es1968: precedence bug in snd_es1968_tea575x_get_pins() 2012-11-13 08:51:47 +01:00
fm801.c ALSA: fm801: precedence bug in snd_fm801_tea575x_get_pins() 2012-11-14 09:34:28 +01:00
intel8x0.c sound: Remove unnecessary semicolon 2012-10-06 16:47:53 +02:00
intel8x0m.c ALSA: PCI: Replace CONFIG_PM with CONFIG_PM_SLEEP 2012-08-14 18:12:04 +02:00
Kconfig ALSA: hdsp: improve firmware caching 2012-11-22 17:48:07 +01:00
maestro3.c ALSA: PCI: Replace CONFIG_PM with CONFIG_PM_SLEEP 2012-08-14 18:12:04 +02:00
Makefile ALSA: Add the driver for Digigram Lola PCI-e boards 2011-05-03 16:31:05 +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 Merge branch 'for-linus' into for-next 2012-08-20 22:14:26 +02: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: clean up using module_pci_driver() 2012-04-24 12:25:00 +02:00
via82xx.c ALSA: Implement channel maps for standard onboard AC97 drivers 2012-09-06 18:08:31 +02:00
via82xx_modem.c ALSA: PCI: Replace CONFIG_PM with CONFIG_PM_SLEEP 2012-08-14 18:12:04 +02:00