summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/sound/soc.h3
-rw-r--r--sound/soc/soc-core.c4
-rw-r--r--sound/soc/soc-pcm.c10
3 files changed, 7 insertions, 10 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 0495b4aaeb70..b14acd8228ab 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -663,6 +663,8 @@ struct snd_soc_component {
unsigned int active;
+ unsigned int ignore_pmdown_time:1; /* pmdown_time is ignored at stop */
+
struct list_head list;
struct snd_soc_dai_driver *dai_drv;
@@ -715,7 +717,6 @@ struct snd_soc_codec {
/* dapm */
struct snd_soc_dapm_context dapm;
- unsigned int ignore_pmdown_time:1; /* pmdown_time is ignored at stop */
#ifdef CONFIG_DEBUG_FS
struct dentry *debugfs_codec_root;
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 6401e97b2e68..18aecd2841a8 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -4127,6 +4127,8 @@ int snd_soc_register_component(struct device *dev,
return -ENOMEM;
}
+ cmpnt->ignore_pmdown_time = true;
+
return __snd_soc_register_component(dev, cmpnt, cmpnt_drv,
dai_drv, num_dai, true);
}
@@ -4325,7 +4327,7 @@ int snd_soc_register_codec(struct device *dev,
codec->volatile_register = codec_drv->volatile_register;
codec->readable_register = codec_drv->readable_register;
codec->writable_register = codec_drv->writable_register;
- codec->ignore_pmdown_time = codec_drv->ignore_pmdown_time;
+ codec->component.ignore_pmdown_time = codec_drv->ignore_pmdown_time;
codec->dapm.bias_level = SND_SOC_BIAS_OFF;
codec->dapm.dev = dev;
codec->dapm.codec = codec;
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index 98b46295785d..2cedf09f6d96 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -107,17 +107,11 @@ void snd_soc_runtime_deactivate(struct snd_soc_pcm_runtime *rtd, int stream)
*/
bool snd_soc_runtime_ignore_pmdown_time(struct snd_soc_pcm_runtime *rtd)
{
- bool ignore = true;
-
if (!rtd->pmdown_time || rtd->dai_link->ignore_pmdown_time)
return true;
- if (rtd->cpu_dai->codec)
- ignore &= rtd->cpu_dai->codec->ignore_pmdown_time;
-
- ignore &= rtd->codec_dai->codec->ignore_pmdown_time;
-
- return ignore;
+ return rtd->cpu_dai->component->ignore_pmdown_time &&
+ rtd->codec_dai->component->ignore_pmdown_time;
}
/**