OSDN Git Service

ASoC: SOF: Intel: hda-ipc: Add hda_set_stream_data_offset()
authorPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Thu, 10 Mar 2022 04:27:17 +0000 (20:27 -0800)
committerMark Brown <broonie@kernel.org>
Fri, 11 Mar 2022 13:41:06 +0000 (13:41 +0000)
Add implementation for the generic set_stream_data_offset() callback to be
used by HDA platforms.

Convert the hda_ipc_pcm_params() to a wrapper for the new function.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20220310042720.976809-8-ranjani.sridharan@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/intel/hda-ipc.c
sound/soc/sof/intel/hda.h

index a8c4521..317c3ab 100644 (file)
@@ -267,14 +267,12 @@ int hda_ipc_msg_data(struct snd_sof_dev *sdev,
        return 0;
 }
 
-int hda_ipc_pcm_params(struct snd_sof_dev *sdev,
-                      struct snd_pcm_substream *substream,
-                      const struct sof_ipc_pcm_params_reply *reply)
+int hda_set_stream_data_offset(struct snd_sof_dev *sdev,
+                              struct snd_pcm_substream *substream,
+                              size_t posn_offset)
 {
        struct hdac_stream *hstream = substream->runtime->private_data;
        struct sof_intel_hda_stream *hda_stream;
-       /* validate offset */
-       size_t posn_offset = reply->posn_offset;
 
        hda_stream = container_of(hstream, struct sof_intel_hda_stream,
                                  hext_stream.hstream);
@@ -291,3 +289,10 @@ int hda_ipc_pcm_params(struct snd_sof_dev *sdev,
 
        return 0;
 }
+
+int hda_ipc_pcm_params(struct snd_sof_dev *sdev,
+                      struct snd_pcm_substream *substream,
+                      const struct sof_ipc_pcm_params_reply *reply)
+{
+       return hda_set_stream_data_offset(sdev, substream, reply->posn_offset);
+}
index 46641d3..1e0a6d7 100644 (file)
@@ -569,6 +569,9 @@ int hda_ipc_msg_data(struct snd_sof_dev *sdev,
 int hda_ipc_pcm_params(struct snd_sof_dev *sdev,
                       struct snd_pcm_substream *substream,
                       const struct sof_ipc_pcm_params_reply *reply);
+int hda_set_stream_data_offset(struct snd_sof_dev *sdev,
+                              struct snd_pcm_substream *substream,
+                              size_t posn_offset);
 
 /*
  * DSP IPC Operations.