summaryrefslogtreecommitdiff
path: root/sound/soc/codecs/rt5677-spi.h
diff options
context:
space:
mode:
authorBen Zhang <benzh@chromium.org>2019-10-18 13:04:38 -0700
committerMark Brown <broonie@kernel.org>2019-10-22 17:55:16 +0100
commita0e0d135427cf699fe2dee77da0924e0b47f3170 (patch)
tree1f45a46e942304e18a7ad11fd5490b570c76c8c3 /sound/soc/codecs/rt5677-spi.h
parentb2d6ee75312649d55b41386d1d80cdbca48e3cf0 (diff)
ASoC: rt5677: Add a PCM device for streaming hotword via SPI
This patch implements a PCM interface for streaming hotword phrases over SPI. Userspace can open the PCM device at anytime. The stream is blocked when no hotword is detected. The mic audio buffer on the DSP is a ~128KByte ring buffer that holds ~4sec of audio samples recorded from the DMIC (S16_LE, mono, 16KHz). After a hotword is detected, previous 2 seconds of audio (containing the detected hotword) is streamed first, then live capture continues until userspace closes the PCM stream. When transferring, copy one period at a time then call snd_pcm_period_elapsed(). This reduces the latency of transferring the initial ~2sec of audio after hotword detect since audio samples are available for userspace earlier. Signed-off-by: Ben Zhang <benzh@chromium.org> Signed-off-by: Curtis Malainey <cujomalainey@chromium.org> Link: https://lore.kernel.org/r/20191018200449.141123-2-cujomalainey@chromium.org Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/rt5677-spi.h')
-rw-r--r--sound/soc/codecs/rt5677-spi.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sound/soc/codecs/rt5677-spi.h b/sound/soc/codecs/rt5677-spi.h
index 6ba3369dc235..3af36ec928e9 100644
--- a/sound/soc/codecs/rt5677-spi.h
+++ b/sound/soc/codecs/rt5677-spi.h
@@ -12,5 +12,6 @@
int rt5677_spi_read(u32 addr, void *rxbuf, size_t len);
int rt5677_spi_write(u32 addr, const void *txbuf, size_t len);
int rt5677_spi_write_firmware(u32 addr, const struct firmware *fw);
+void rt5677_spi_hotword_detected(void);
#endif /* __RT5677_SPI_H__ */