aboutsummaryrefslogtreecommitdiffstats
path: root/include/sound
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@nokia.com>2010-03-03 08:08:07 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-03-03 12:08:41 -0500
commit258020d0882e89c1462800a70eb414b8a4fec78c (patch)
treef2c9966e8d53db3c2fbf027407d45e2fd1b7f38d /include/sound
parent377b6f62effcb91c53cd7ff8709a94d72d23b6ae (diff)
ASoC: core: Add delay operation to snd_soc_dai_ops
The delay callback can be used by the core to query the delay on the dai caused by FIFO or delay in the platform side. In case if both CPU and CODEC dai has FIFO the delay reported by each will be added to form the full delay on the chain. If none of the dai has FIFO, than the delay will be kept as zero. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'include/sound')
-rw-r--r--include/sound/soc-dai.h6
-rw-r--r--include/sound/soc.h7
2 files changed, 13 insertions, 0 deletions
diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h
index 20de0bcaa137..6cf76a41501e 100644
--- a/include/sound/soc-dai.h
+++ b/include/sound/soc-dai.h
@@ -182,6 +182,12 @@ struct snd_soc_dai_ops {
182 struct snd_soc_dai *); 182 struct snd_soc_dai *);
183 int (*trigger)(struct snd_pcm_substream *, int, 183 int (*trigger)(struct snd_pcm_substream *, int,
184 struct snd_soc_dai *); 184 struct snd_soc_dai *);
185 /*
186 * For hardware based FIFO caused delay reporting.
187 * Optional.
188 */
189 snd_pcm_sframes_t (*delay)(struct snd_pcm_substream *,
190 struct snd_soc_dai *);
185}; 191};
186 192
187/* 193/*
diff --git a/include/sound/soc.h b/include/sound/soc.h
index f792c1881b0a..dbfec16015de 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -470,6 +470,13 @@ struct snd_soc_platform {
470 struct snd_pcm *); 470 struct snd_pcm *);
471 void (*pcm_free)(struct snd_pcm *); 471 void (*pcm_free)(struct snd_pcm *);
472 472
473 /*
474 * For platform caused delay reporting.
475 * Optional.
476 */
477 snd_pcm_sframes_t (*delay)(struct snd_pcm_substream *,
478 struct snd_soc_dai *);
479
473 /* platform stream ops */ 480 /* platform stream ops */
474 struct snd_pcm_ops *pcm_ops; 481 struct snd_pcm_ops *pcm_ops;
475}; 482};