linux-kernel-test/sound/pci/hda
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
..
hda_auto_parser.c ALSA: hda - Use standard sort function in hda_auto_parser.c 2012-11-30 10:54:45 +01:00
hda_auto_parser.h ALSA: hda - Fix memory leaks in Realtek & Conexant codec parsers 2012-06-26 14:56:20 +02:00
hda_beep.c ALSA: hda - Fix 'Beep Playback Switch' with no underlying mute switch 2012-08-14 10:22:31 +02:00
hda_beep.h ALSA: hda - Get rid of superfluous beep->mode field 2012-07-03 18:31:36 +02:00
hda_codec.c ASoC: Updates for v3.8 2012-12-03 09:55:44 +01:00
hda_codec.h Merge branch 'for-linus' into for-next 2012-11-19 21:25:27 +01:00
hda_eld.c ALSA: hda - hide HDMI/ELD printks unless snd.debug=2 2012-04-10 14:53:55 +02:00
hda_generic.c ALSA: hda - Clean up CONFIG_SND_HDA_POWER_SAVE 2012-08-30 07:50:13 -07:00
hda_hwdep.c ALSA: hda - Clean up CONFIG_SND_HDA_POWER_SAVE 2012-08-30 07:50:13 -07: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 ALSA: hda - Fix yet another race of vga_switcheroo registration 2012-12-04 16:00:40 +01:00
hda_jack.c ALSA: hda - Call snd_array_init() early and only once 2012-11-28 09:03:39 +01: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 - Add a helper function for simple enum kcontrols 2012-11-30 18:34:38 +01:00
hda_proc.c Merge branch 'for-linus' into for-next 2012-08-20 22:14:26 +02:00
hda_trace.h ALSA: hda - Clean up CONFIG_SND_HDA_POWER_SAVE 2012-08-30 07:50:13 -07:00
Kconfig ALSA: sound/pci/hda: remove CONFIG_EXPERIMENTAL 2012-10-25 00:17:20 +02:00
Makefile ALSA: hda - Add tracepoints to HD-audio controller driver 2012-10-30 10:39:59 +01:00
patch_analog.c ALSA: hda - Call snd_array_init() early and only once 2012-11-28 09:03:39 +01:00
patch_ca0110.c ALSA: hda - Move BIOS pin-parser code to hda_auto_parser.c 2012-05-08 18:01:33 +02:00
patch_ca0132.c ALSA: hda - don't create dysfunctional mixer controls for ca0132 2012-08-20 11:33:23 +02:00
patch_cirrus.c ALSA: hda - Add a fixup for internal mic on MacBook Pro 8,1 2012-11-23 08:37:32 +01:00
patch_cmedia.c ALSA: hda - Move BIOS pin-parser code to hda_auto_parser.c 2012-05-08 18:01:33 +02:00
patch_conexant.c ALSA: hda - Add a helper function for simple enum kcontrols 2012-11-30 18:34:38 +01:00
patch_hdmi.c ALSA: hda - Use standard helper functions in patch_hdmi.c 2012-11-21 15:06:05 +01:00
patch_realtek.c ALSA: hda/realtek - Keep the channel count for multiple speakers 2012-12-03 10:39:36 +01: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 - Call snd_array_init() early and only once 2012-11-28 09:03:39 +01:00
patch_via.c ALSA: hda - Add a helper function for simple enum kcontrols 2012-11-30 18:34:38 +01:00