OSDN Git Service

ASoC: SOF: compress: Set compress data offset
authorDaniel Baluta <daniel.baluta@nxp.com>
Tue, 17 Jan 2023 12:25:33 +0000 (14:25 +0200)
committerMark Brown <broonie@kernel.org>
Tue, 17 Jan 2023 13:37:54 +0000 (13:37 +0000)
Because now snd_sof_set_stream_data_offset has compress
support we use it to set posn_offset for compress stream.

Reviewed-by: Paul Olaru <paul.olaru@nxp.com>
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Link: https://lore.kernel.org/r/20230117122533.201708-5-daniel.baluta@oss.nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/compress.c

index 8e1a9ba..8d205eb 100644 (file)
@@ -10,6 +10,7 @@
 #include "sof-audio.h"
 #include "sof-priv.h"
 #include "sof-utils.h"
+#include "ops.h"
 
 static void sof_set_transferred_bytes(struct sof_compr_stream *sstream,
                                      u64 host_pos, u64 buffer_size)
@@ -237,6 +238,14 @@ static int sof_compr_set_params(struct snd_soc_component *component,
                goto out;
        }
 
+       ret = snd_sof_set_stream_data_offset(sdev, &spcm->stream[cstream->direction],
+                                            ipc_params_reply.posn_offset);
+       if (ret < 0) {
+               dev_err(component->dev, "Invalid stream data offset for Compr %d\n",
+                       spcm->pcm.pcm_id);
+               goto out;
+       }
+
        sstream->sampling_rate = params->codec.sample_rate;
        sstream->channels = params->codec.ch_out;
        sstream->sample_container_bytes = pcm->params.sample_container_bytes;