aboutsummaryrefslogtreecommitdiffstats
path: root/include/sound
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@nokia.com>2010-03-03 15:08:07 +0200
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-03-03 17:08:41 +0000
commit258020d0882e89c1462800a70eb414b8a4fec78c (patch)
treef2c9966e8d53db3c2fbf027407d45e2fd1b7f38d /include/sound
parent377b6f62effcb91c53cd7ff8709a94d72d23b6ae (diff)
downloadkernel_samsung_tuna-258020d0882e89c1462800a70eb414b8a4fec78c.zip
kernel_samsung_tuna-258020d0882e89c1462800a70eb414b8a4fec78c.tar.gz
kernel_samsung_tuna-258020d0882e89c1462800a70eb414b8a4fec78c.tar.bz2
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 20de0bc..6cf76a4 100644
--- a/include/sound/soc-dai.h
+++ b/include/sound/soc-dai.h
@@ -182,6 +182,12 @@ struct snd_soc_dai_ops {
struct snd_soc_dai *);
int (*trigger)(struct snd_pcm_substream *, int,
struct snd_soc_dai *);
+ /*
+ * For hardware based FIFO caused delay reporting.
+ * Optional.
+ */
+ snd_pcm_sframes_t (*delay)(struct snd_pcm_substream *,
+ struct snd_soc_dai *);
};
/*
diff --git a/include/sound/soc.h b/include/sound/soc.h
index f792c18..dbfec16 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -470,6 +470,13 @@ struct snd_soc_platform {
struct snd_pcm *);
void (*pcm_free)(struct snd_pcm *);
+ /*
+ * For platform caused delay reporting.
+ * Optional.
+ */
+ snd_pcm_sframes_t (*delay)(struct snd_pcm_substream *,
+ struct snd_soc_dai *);
+
/* platform stream ops */
struct snd_pcm_ops *pcm_ops;
};