Commit a6db22a6 authored by Peter Ujfalusi's avatar Peter Ujfalusi Committed by Mark Brown

ASoC: SOF: Mark snd_sof_dsp_ops.ipc_pcm_params() callback optional

AMD is only implementing an empty function to pass the required test and
it is going to be deprecated in favor of the IPC agnostic
set_stream_data_offset() callback.
Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: default avatarRander Wang <rander.wang@intel.com>
Reviewed-by: default avatarDaniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20220310042720.976809-6-ranjani.sridharan@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 757ce810
...@@ -361,8 +361,7 @@ int snd_sof_device_probe(struct device *dev, struct snd_sof_pdata *plat_data) ...@@ -361,8 +361,7 @@ int snd_sof_device_probe(struct device *dev, struct snd_sof_pdata *plat_data)
if (!sof_ops(sdev) || !sof_ops(sdev)->probe || !sof_ops(sdev)->run || if (!sof_ops(sdev) || !sof_ops(sdev)->probe || !sof_ops(sdev)->run ||
!sof_ops(sdev)->block_read || !sof_ops(sdev)->block_write || !sof_ops(sdev)->block_read || !sof_ops(sdev)->block_write ||
!sof_ops(sdev)->send_msg || !sof_ops(sdev)->load_firmware || !sof_ops(sdev)->send_msg || !sof_ops(sdev)->load_firmware ||
!sof_ops(sdev)->ipc_msg_data || !sof_ops(sdev)->ipc_pcm_params || !sof_ops(sdev)->ipc_msg_data || !sof_ops(sdev)->fw_ready) {
!sof_ops(sdev)->fw_ready) {
dev_err(dev, "error: missing mandatory ops\n"); dev_err(dev, "error: missing mandatory ops\n");
return -EINVAL; return -EINVAL;
} }
......
...@@ -473,7 +473,10 @@ snd_sof_ipc_pcm_params(struct snd_sof_dev *sdev, ...@@ -473,7 +473,10 @@ snd_sof_ipc_pcm_params(struct snd_sof_dev *sdev,
struct snd_pcm_substream *substream, struct snd_pcm_substream *substream,
const struct sof_ipc_pcm_params_reply *reply) const struct sof_ipc_pcm_params_reply *reply)
{ {
if (sof_ops(sdev) && sof_ops(sdev)->ipc_pcm_params)
return sof_ops(sdev)->ipc_pcm_params(sdev, substream, reply); return sof_ops(sdev)->ipc_pcm_params(sdev, substream, reply);
return 0;
} }
/* host side configuration of the stream's data offset in stream mailbox area */ /* host side configuration of the stream's data offset in stream mailbox area */
......
...@@ -224,7 +224,7 @@ struct snd_sof_dsp_ops { ...@@ -224,7 +224,7 @@ struct snd_sof_dsp_ops {
/* host configure DSP HW parameters */ /* host configure DSP HW parameters */
int (*ipc_pcm_params)(struct snd_sof_dev *sdev, int (*ipc_pcm_params)(struct snd_sof_dev *sdev,
struct snd_pcm_substream *substream, struct snd_pcm_substream *substream,
const struct sof_ipc_pcm_params_reply *reply); /* mandatory */ const struct sof_ipc_pcm_params_reply *reply); /* optional */
/* host side configuration of the stream's data offset in stream mailbox area */ /* host side configuration of the stream's data offset in stream mailbox area */
int (*set_stream_data_offset)(struct snd_sof_dev *sdev, int (*set_stream_data_offset)(struct snd_sof_dev *sdev,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment