summaryrefslogtreecommitdiffstats
path: root/sound/soc/soc-core.c
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2019-01-21 09:32:37 +0900
committerMark Brown <broonie@kernel.org>2019-01-21 18:13:04 +0000
commit65462e445f78cb2f9378443be7ba8b7e07300694 (patch)
treec95cb8401964ee5d7a550f64044773bf85ff4758 /sound/soc/soc-core.c
parent910fdcabedd2354d161b1beab6ad7dc7e859651d (diff)
ASoC: soc-core: add new snd_soc_flush_all_delayed_work()
soc-core is calling flush_delayed_work() many times for same purpose. Same code in many places makes code un-understandable. This patch adds new snd_soc_flush_all_delayed_work() for it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/soc-core.c')
-rw-r--r--sound/soc/soc-core.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 2c63921675d5..eeb794d8a262 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -425,6 +425,14 @@ struct snd_soc_pcm_runtime *snd_soc_get_pcm_runtime(struct snd_soc_card *card,
}
EXPORT_SYMBOL_GPL(snd_soc_get_pcm_runtime);
+static void snd_soc_flush_all_delayed_work(struct snd_soc_card *card)
+{
+ struct snd_soc_pcm_runtime *rtd;
+
+ for_each_card_rtds(card, rtd)
+ flush_delayed_work(&rtd->delayed_work);
+}
+
static void codec2codec_close_delayed_work(struct work_struct *work)
{
/*
@@ -494,8 +502,7 @@ int snd_soc_suspend(struct device *dev)
}
/* close any waiting streams */
- for_each_card_rtds(card, rtd)
- flush_delayed_work(&rtd->delayed_work);
+ snd_soc_flush_all_delayed_work(card);
for_each_card_rtds(card, rtd) {
@@ -2228,11 +2235,8 @@ static int soc_probe(struct platform_device *pdev)
static int soc_cleanup_card_resources(struct snd_soc_card *card)
{
- struct snd_soc_pcm_runtime *rtd;
-
/* make sure any delayed work runs */
- for_each_card_rtds(card, rtd)
- flush_delayed_work(&rtd->delayed_work);
+ snd_soc_flush_all_delayed_work(card);
/* free the ALSA card at first; this syncs with pending operations */
snd_card_free(card->snd_card);
@@ -2275,8 +2279,7 @@ int snd_soc_poweroff(struct device *dev)
* Flush out pmdown_time work - we actually do want to run it
* now, we're shutting down so no imminent restart.
*/
- for_each_card_rtds(card, rtd)
- flush_delayed_work(&rtd->delayed_work);
+ snd_soc_flush_all_delayed_work(card);
snd_soc_dapm_shutdown(card);