linux/sound
Liam Girdwood 965ac42ce9 [ALSA] ASoC force running of delayed PM work at suspend() and remove()
This patch fixes a bug whereby the power management delayed work would
never be run at driver suspend() or module remove(). Delayed work would
be created (after audio had finished) with a long delay (~5 secs) and
was sometimes never queued before flush_scheduled_work() was being
called at suspend or module remove. This caused the delayed work to
queued after the module had been removed or after resume.
This patch forces any delayed work to complete by cancelling it (timer
cannot fire and add it to queue later), scheduling it for now and
waiting on it's completion.
This is something I probably would like to add to workqueue.c in the
next merge window, however it's here atm because it can oops.

Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-02-09 09:03:27 +01:00
..
aoa [ALSA] sound: aoa of_node_put and kfree cleanup 2007-02-09 09:02:55 +01:00
arm [ALSA] arm header fix 2007-02-09 09:02:22 +01:00
core [ALSA] snd_hwdep_release() racefix 2007-02-09 09:03:24 +01:00
drivers [ALSA] Add even more 'const' to everything related to TLV 2007-02-09 09:03:19 +01:00
i2c [ALSA] Add even more 'const' to everything related to TLV 2007-02-09 09:03:19 +01:00
isa [ALSA] Add even more 'const' to everything related to TLV 2007-02-09 09:03:19 +01:00
mips IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
oss [PATCH] more work_struct fixes: tas300x sound drivers 2006-12-17 19:07:21 -08:00
parisc IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
pci [ALSA] hda-codec - Add model for Uniwill X40AIx 2007-02-09 09:03:25 +01:00
pcmcia [ALSA] Add even more 'const' to everything related to TLV 2007-02-09 09:03:19 +01:00
ppc WorkStruct: make allyesconfig 2006-11-22 14:57:56 +00:00
soc [ALSA] ASoC force running of delayed PM work at suspend() and remove() 2007-02-09 09:03:27 +01:00
sparc [ALSA] sparc dbri comment fix 2007-02-09 09:02:37 +01:00
synth [ALSA] Fix disconnection of proc interface 2006-09-23 10:36:48 +02:00
usb [ALSA] usbaudio - Fix Oops with broken usb descriptors 2007-02-09 09:03:26 +01:00
ac97_bus.c [PATCH] remove config ordering/dependency between ucb1400-ts and sound subsystem 2006-12-12 10:43:21 -08:00
Kconfig [ALSA] ASoC: Build files 2007-02-09 09:00:19 +01:00
last.c
Makefile [ALSA] ASoC: Build files 2007-02-09 09:00:19 +01:00
sound_core.c Driver core: convert sound core to use struct device 2006-12-01 14:52:01 -08:00
sound_firmware.c [PATCH] struct path: convert sound 2006-12-08 08:28:49 -08:00