aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVinod Koul <vinod.koul@intel.com>2015-02-11 23:29:53 -0500
committerMark Brown <broonie@kernel.org>2015-02-23 10:43:59 -0500
commit48c7699fb2c799d084ce490bceea14fe04ad12a1 (patch)
tree7f4a88691a11bf24990544cd01f918fea9481221
parent369a9f5f397fe3258ab937ec7a9c2229d0b1a015 (diff)
ASoC: core: allow pcms to be registered as nonatomic
ALSA core with commit 257f8cce5d40 - "ALSA: pcm: Allow nonatomic trigger operations" allows trigger ops to implemented as nonatomic. For ASoC, we can specify this in dailinks and is updated while snd_pcm is created Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Cc: Takashi Iwai <tiwai@suse.de> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--include/sound/soc.h3
-rw-r--r--sound/soc/soc-pcm.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 0d1ade195628..76bc944dcb5c 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -954,6 +954,9 @@ struct snd_soc_dai_link {
954 unsigned int symmetric_channels:1; 954 unsigned int symmetric_channels:1;
955 unsigned int symmetric_samplebits:1; 955 unsigned int symmetric_samplebits:1;
956 956
957 /* Mark this pcm with non atomic ops */
958 bool nonatomic;
959
957 /* Do not create a PCM for this DAI link (Backend link) */ 960 /* Do not create a PCM for this DAI link (Backend link) */
958 unsigned int no_pcm:1; 961 unsigned int no_pcm:1;
959 962
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index 6b0136e7cb88..6e3781e88f9a 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -2511,6 +2511,7 @@ int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num)
2511 /* DAPM dai link stream work */ 2511 /* DAPM dai link stream work */
2512 INIT_DELAYED_WORK(&rtd->delayed_work, close_delayed_work); 2512 INIT_DELAYED_WORK(&rtd->delayed_work, close_delayed_work);
2513 2513
2514 pcm->nonatomic = rtd->dai_link->nonatomic;
2514 rtd->pcm = pcm; 2515 rtd->pcm = pcm;
2515 pcm->private_data = rtd; 2516 pcm->private_data = rtd;
2516 2517