ASoC: core: allow pcms to be registered as nonatomic
authorVinod Koul <vinod.koul@intel.com>
Thu, 12 Feb 2015 04:29:53 +0000 (09:59 +0530)
committerMark Brown <broonie@kernel.org>
Mon, 23 Feb 2015 15:43:59 +0000 (00:43 +0900)
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>
include/sound/soc.h
sound/soc/soc-pcm.c

index 0d1ade19562857c7b65157636ac37b2f0222e202..76bc944dcb5cbf55adf51d04f776a8dd1ae09cb5 100644 (file)
@@ -954,6 +954,9 @@ struct snd_soc_dai_link {
        unsigned int symmetric_channels:1;
        unsigned int symmetric_samplebits:1;
 
+       /* Mark this pcm with non atomic ops */
+       bool nonatomic;
+
        /* Do not create a PCM for this DAI link (Backend link) */
        unsigned int no_pcm:1;
 
index 6b0136e7cb88c2cebd96b12a6a85dc200f9838d3..6e3781e88f9adf52a35d79a45a785badd5d17709 100644 (file)
@@ -2511,6 +2511,7 @@ int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num)
        /* DAPM dai link stream work */
        INIT_DELAYED_WORK(&rtd->delayed_work, close_delayed_work);
 
+       pcm->nonatomic = rtd->dai_link->nonatomic;
        rtd->pcm = pcm;
        pcm->private_data = rtd;