diff options
author | Andy Green <andy@openmoko.com> | 2008-06-13 11:24:05 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2008-06-16 03:32:31 -0400 |
commit | 6ed2597883b1b03ca94f62f0cfe908314cba6d6b (patch) | |
tree | d19f086cdd31ca77ea1583cc147b19dfd8458190 /include | |
parent | abb68c26ba15f8e84e580a40c0b1bc349cb534b0 (diff) |
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')
-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 1f5c62181002..340223a8f24c 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h | |||
@@ -510,6 +510,7 @@ struct snd_soc_device { | |||
510 | struct snd_soc_codec *codec; | 510 | struct snd_soc_codec *codec; |
511 | struct snd_soc_codec_device *codec_dev; | 511 | struct snd_soc_codec_device *codec_dev; |
512 | struct delayed_work delayed_work; | 512 | struct delayed_work delayed_work; |
513 | struct work_struct deferred_resume_work; | ||
513 | void *codec_data; | 514 | void *codec_data; |
514 | }; | 515 | }; |
515 | 516 | ||