diff options
author | Vinod Koul <vinod.koul@intel.com> | 2015-02-11 23:29:53 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-02-23 10:43:59 -0500 |
commit | 48c7699fb2c799d084ce490bceea14fe04ad12a1 (patch) | |
tree | 7f4a88691a11bf24990544cd01f918fea9481221 | |
parent | 369a9f5f397fe3258ab937ec7a9c2229d0b1a015 (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.h | 3 | ||||
-rw-r--r-- | sound/soc/soc-pcm.c | 1 |
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 | ||