@@ -52,19 +52,6 @@ enum snd_soc_dpcm_state {
};
/*
- * Dynamic PCM trigger ordering. Triggering flexibility is required as some
- * DSPs require triggering before/after their CPU platform and DAIs.
- *
- * i.e. some clients may want to manually order this call in their PCM
- * trigger() whilst others will just use the regular core ordering.
- */
-enum snd_soc_dpcm_trigger {
- SND_SOC_DPCM_TRIGGER_PRE = 0,
- SND_SOC_DPCM_TRIGGER_POST,
- SND_SOC_DPCM_TRIGGER_BESPOKE,
-};
-
-/*
* Dynamic PCM link
* This links together a FE and BE DAI at runtime and stores the link
* state information and the hw_params configuration.
@@ -131,6 +131,19 @@
#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2)
/*
+ * Dynamic PCM trigger ordering. Triggering flexibility is required as some
+ * DSPs require triggering before/after their CPU platform and DAIs.
+ *
+ * i.e. some clients may want to manually order this call in their PCM
+ * trigger() whilst others will just use the regular core ordering.
+ */
+enum snd_soc_dpcm_trigger {
+ SND_SOC_DPCM_TRIGGER_PRE = 0,
+ SND_SOC_DPCM_TRIGGER_POST,
+ SND_SOC_DPCM_TRIGGER_BESPOKE,
+};
+
+/*
* Block Header.
* This header precedes all object and object arrays below.
*/
@@ -440,6 +453,7 @@ struct snd_soc_tplg_pcm {
struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; /* for DAI link */
__le32 num_streams; /* number of streams */
struct snd_soc_tplg_stream_caps caps[2]; /* playback and capture for DAI */
+ __le32 trigger[2]; /* SND_SOC_DPCM_TRIGGER_ trigger flag for playback & capture */
} __attribute__((packed));
@@ -1645,6 +1645,9 @@ static int soc_tplg_link_create(struct soc_tplg *tplg,
link->dpcm_playback = pcm->playback;
link->dpcm_capture = pcm->capture;
+ link->trigger[0] = pcm->trigger[0];
+ link->trigger[1] = pcm->trigger[1];
+
/* pass control to component driver for optional further init */
ret = soc_tplg_dai_link_load(tplg, link);
if (ret < 0) {