summaryrefslogtreecommitdiffstats
path: root/include/sound
diff options
context:
space:
mode:
authorAndy Green <andy@openmoko.com>2008-06-13 16:24:05 +0100
committerJaroslav Kysela <perex@perex.cz>2008-06-16 09:32:31 +0200
commit6ed2597883b1b03ca94f62f0cfe908314cba6d6b (patch)
treed19f086cdd31ca77ea1583cc147b19dfd8458190 /include/sound
parentabb68c26ba15f8e84e580a40c0b1bc349cb534b0 (diff)
downloadlinux-6ed2597883b1b03ca94f62f0cfe908314cba6d6b.tar.gz
linux-6ed2597883b1b03ca94f62f0cfe908314cba6d6b.tar.bz2
linux-6ed2597883b1b03ca94f62f0cfe908314cba6d6b.zip
ALSA: ASoC: Don't block system resume
On OpenMoko soc-audio resume is taking 700ms of the whole resume time of 1.3s, dominated by writes to the codec over I2C. This patch shunts the resume guts into a workqueue which then is done asynchronously. The "card" is locked using the ALSA power state APIs as suggested by Mark Brown. [Added fix for race with resume to suspend and fixed a couple of nits from checkpatch -- broonie.] Signed-off-by: Andy Green <andy@openmoko.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'include/sound')
-rw-r--r--include/sound/soc.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 1f5c62181002..340223a8f24c 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -510,6 +510,7 @@ struct snd_soc_device {
struct snd_soc_codec *codec;
struct snd_soc_codec_device *codec_dev;
struct delayed_work delayed_work;
+ struct work_struct deferred_resume_work;
void *codec_data;
};