From: Jyri Sarha jyri.sarha@intel.com
Add sof_client_ipc4_find_module() for calling sof_ipc4_find_module_by_uuid() in sof client code.
Signed-off-by: Jyri Sarha jyri.sarha@intel.com Reviewed-by: Péter Ujfalusi peter.ujfalusi@linux.intel.com Reviewed-by: Kai Vehmanen kai.vehmanen@linux.intel.com Reviewed-by: Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com Reviewed-by: Ranjani Sridharan ranjani.sridharan@linux.intel.com Signed-off-by: Péter Ujfalusi peter.ujfalusi@linux.intel.com --- sound/soc/sof/sof-client.c | 15 +++++++++++++++ sound/soc/sof/sof-client.h | 4 ++++ 2 files changed, 19 insertions(+)
diff --git a/sound/soc/sof/sof-client.c b/sound/soc/sof/sof-client.c index 158d2114af45..9017f0864cdd 100644 --- a/sound/soc/sof/sof-client.c +++ b/sound/soc/sof/sof-client.c @@ -16,6 +16,7 @@ #include "ops.h" #include "sof-client.h" #include "sof-priv.h" +#include "ipc4-priv.h"
/** * struct sof_ipc_event_entry - IPC client event description @@ -284,6 +285,20 @@ int sof_client_ipc_set_get_data(struct sof_client_dev *cdev, void *ipc_msg, } EXPORT_SYMBOL_NS_GPL(sof_client_ipc_set_get_data, SND_SOC_SOF_CLIENT);
+#ifdef CONFIG_SND_SOC_SOF_INTEL_IPC4 +struct sof_ipc4_fw_module *sof_client_ipc4_find_module(struct sof_client_dev *c, const guid_t *uuid) +{ + struct snd_sof_dev *sdev = c->sdev; + + if (sdev->pdata->ipc_type == SOF_INTEL_IPC4) + return sof_ipc4_find_module_by_uuid(sdev, uuid); + dev_err(sdev->dev, "Only supported with IPC4\n"); + + return NULL; +} +EXPORT_SYMBOL_NS_GPL(sof_client_ipc4_find_module, SND_SOC_SOF_CLIENT); +#endif + int sof_suspend_clients(struct snd_sof_dev *sdev, pm_message_t state) { struct auxiliary_driver *adrv; diff --git a/sound/soc/sof/sof-client.h b/sound/soc/sof/sof-client.h index 136edc3744aa..2589714eaa91 100644 --- a/sound/soc/sof/sof-client.h +++ b/sound/soc/sof/sof-client.h @@ -13,6 +13,8 @@ struct sof_ipc_cmd_hdr; struct snd_sof_dev; struct dentry;
+struct sof_ipc4_fw_module; + /** * struct sof_client_dev - SOF client device * @auxdev: auxiliary device @@ -40,6 +42,8 @@ int sof_client_ipc_tx_message(struct sof_client_dev *cdev, void *ipc_msg, int sof_client_ipc_set_get_data(struct sof_client_dev *cdev, void *ipc_msg, bool set);
+struct sof_ipc4_fw_module *sof_client_ipc4_find_module(struct sof_client_dev *c, const guid_t *u); + struct dentry *sof_client_get_debugfs_root(struct sof_client_dev *cdev); struct device *sof_client_get_dma_dev(struct sof_client_dev *cdev); const struct sof_ipc_fw_version *sof_client_get_fw_version(struct sof_client_dev *cdev);