diff options
author | Andy Green <andy@openmoko.com> | 2008-06-13 16:24:05 +0100 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2008-06-16 09:32:31 +0200 |
commit | 6ed2597883b1b03ca94f62f0cfe908314cba6d6b (patch) | |
tree | d19f086cdd31ca77ea1583cc147b19dfd8458190 /include/sound/soc.h | |
parent | abb68c26ba15f8e84e580a40c0b1bc349cb534b0 (diff) | |
download | op-kernel-dev-6ed2597883b1b03ca94f62f0cfe908314cba6d6b.zip op-kernel-dev-6ed2597883b1b03ca94f62f0cfe908314cba6d6b.tar.gz |
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/soc.h')
-rw-r--r-- | include/sound/soc.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h index 1f5c621..340223a 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; }; |