mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-29 22:14:41 +08:00
ASoC: SOF: ipc4-topology: Helper to find an swidget by module/instance id
The sof_ipc4_find_swidget_by_ids() can be used to find the swidget of a module instance. The lookup parameters are the module_id and the instance_id. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20231124150853.18648-2-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
fa91703dc2
commit
5980bda0a9
@ -115,6 +115,9 @@ int sof_ipc4_reload_fw_libraries(struct snd_sof_dev *sdev);
|
||||
struct sof_ipc4_fw_module *sof_ipc4_find_module_by_uuid(struct snd_sof_dev *sdev,
|
||||
const guid_t *uuid);
|
||||
|
||||
struct snd_sof_widget *sof_ipc4_find_swidget_by_ids(struct snd_sof_dev *sdev,
|
||||
u32 module_id, int instance_id);
|
||||
|
||||
struct sof_ipc4_base_module_cfg;
|
||||
void sof_ipc4_update_cpc_from_manifest(struct snd_sof_dev *sdev,
|
||||
struct sof_ipc4_fw_module *fw_module,
|
||||
|
@ -167,6 +167,26 @@ static const struct sof_token_info ipc4_token_list[SOF_TOKEN_COUNT] = {
|
||||
[SOF_SRC_TOKENS] = {"SRC tokens", src_tokens, ARRAY_SIZE(src_tokens)},
|
||||
};
|
||||
|
||||
struct snd_sof_widget *sof_ipc4_find_swidget_by_ids(struct snd_sof_dev *sdev,
|
||||
u32 module_id, int instance_id)
|
||||
{
|
||||
struct snd_sof_widget *swidget;
|
||||
|
||||
list_for_each_entry(swidget, &sdev->widget_list, list) {
|
||||
struct sof_ipc4_fw_module *fw_module = swidget->module_info;
|
||||
|
||||
/* Only active module instances have valid instance_id */
|
||||
if (!swidget->use_count)
|
||||
continue;
|
||||
|
||||
if (fw_module && fw_module->man4_module_entry.id == module_id &&
|
||||
swidget->instance_id == instance_id)
|
||||
return swidget;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void sof_ipc4_dbg_audio_format(struct device *dev, struct sof_ipc4_pin_format *pin_fmt,
|
||||
int num_formats)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user