summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/soc/sof/core.c3
-rw-r--r--sound/soc/sof/ops.h5
-rw-r--r--sound/soc/sof/sof-priv.h2
3 files changed, 6 insertions, 4 deletions
diff --git a/sound/soc/sof/core.c b/sound/soc/sof/core.c
index 95a845d26f6e..9217644e2eab 100644
--- a/sound/soc/sof/core.c
+++ b/sound/soc/sof/core.c
@@ -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 ||
!sof_ops(sdev)->block_read || !sof_ops(sdev)->block_write ||
!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)->fw_ready) {
+ !sof_ops(sdev)->ipc_msg_data || !sof_ops(sdev)->fw_ready) {
dev_err(dev, "error: missing mandatory ops\n");
return -EINVAL;
}
diff --git a/sound/soc/sof/ops.h b/sound/soc/sof/ops.h
index f21d4a7ac261..aeea73efcb2f 100644
--- a/sound/soc/sof/ops.h
+++ b/sound/soc/sof/ops.h
@@ -473,7 +473,10 @@ snd_sof_ipc_pcm_params(struct snd_sof_dev *sdev,
struct snd_pcm_substream *substream,
const struct sof_ipc_pcm_params_reply *reply)
{
- return sof_ops(sdev)->ipc_pcm_params(sdev, substream, reply);
+ if (sof_ops(sdev) && sof_ops(sdev)->ipc_pcm_params)
+ 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 */
diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
index 08eba51fddd7..4b235ce74dfe 100644
--- a/sound/soc/sof/sof-priv.h
+++ b/sound/soc/sof/sof-priv.h
@@ -224,7 +224,7 @@ struct snd_sof_dsp_ops {
/* host configure DSP HW parameters */
int (*ipc_pcm_params)(struct snd_sof_dev *sdev,
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 */
int (*set_stream_data_offset)(struct snd_sof_dev *sdev,