Skip to content

Commit 796b64a

Browse files
morimotobroonie
authored andcommitted
ASoC: intel: sst-mfld-platform-pcm: add .delay support
Now ALSA SoC supports .delay for component. This patch uses it, and not update runtime->delay on .pointer directly / secretly. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/871r3gy25j.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent feea640 commit 796b64a

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

sound/soc/intel/atom/sst-mfld-platform-pcm.c

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -653,10 +653,21 @@ static snd_pcm_uframes_t sst_soc_pointer(struct snd_soc_component *component,
653653
dev_err(rtd->dev, "sst: error code = %d\n", ret_val);
654654
return ret_val;
655655
}
656-
substream->runtime->delay = str_info->pcm_delay;
657656
return str_info->buffer_ptr;
658657
}
659658

659+
static snd_pcm_sframes_t sst_soc_delay(struct snd_soc_component *component,
660+
struct snd_pcm_substream *substream)
661+
{
662+
struct sst_runtime_stream *stream = substream->runtime->private_data;
663+
struct pcm_stream_info *str_info = &stream->stream_info;
664+
665+
if (sst_get_stream_status(stream) == SST_PLATFORM_INIT)
666+
return 0;
667+
668+
return str_info->pcm_delay;
669+
}
670+
660671
static int sst_soc_pcm_new(struct snd_soc_component *component,
661672
struct snd_soc_pcm_runtime *rtd)
662673
{
@@ -695,6 +706,7 @@ static const struct snd_soc_component_driver sst_soc_platform_drv = {
695706
.open = sst_soc_open,
696707
.trigger = sst_soc_trigger,
697708
.pointer = sst_soc_pointer,
709+
.delay = sst_soc_delay,
698710
.compress_ops = &sst_platform_compress_ops,
699711
.pcm_construct = sst_soc_pcm_new,
700712
};

0 commit comments

Comments
 (0)