Lines Matching full:scomp
396 static void sof_dbg_comp_config(struct snd_soc_component *scomp, struct sof_ipc_comp_config *config) in sof_dbg_comp_config() argument
398 dev_dbg(scomp->dev, " config: periods snk %d src %d fmt %d\n", in sof_dbg_comp_config()
405 struct snd_soc_component *scomp = swidget->scomp; in sof_ipc3_widget_setup_comp_host() local
425 ret = sof_update_ipc_object(scomp, host, SOF_PCM_TOKENS, swidget->tuples, in sof_ipc3_widget_setup_comp_host()
431 ret = sof_update_ipc_object(scomp, &host->config, SOF_COMP_TOKENS, swidget->tuples, in sof_ipc3_widget_setup_comp_host()
436 dev_dbg(scomp->dev, "loaded host %s\n", swidget->widget->name); in sof_ipc3_widget_setup_comp_host()
437 sof_dbg_comp_config(scomp, &host->config); in sof_ipc3_widget_setup_comp_host()
454 struct snd_soc_component *scomp = swidget->scomp; in sof_ipc3_widget_setup_comp_tone() local
470 ret = sof_update_ipc_object(scomp, &tone->config, SOF_COMP_TOKENS, swidget->tuples, in sof_ipc3_widget_setup_comp_tone()
478 dev_dbg(scomp->dev, "tone %s: frequency %d amplitude %d\n", in sof_ipc3_widget_setup_comp_tone()
480 sof_dbg_comp_config(scomp, &tone->config); in sof_ipc3_widget_setup_comp_tone()
487 struct snd_soc_component *scomp = swidget->scomp; in sof_ipc3_widget_setup_comp_mixer() local
503 ret = sof_update_ipc_object(scomp, &mixer->config, SOF_COMP_TOKENS, in sof_ipc3_widget_setup_comp_mixer()
513 dev_dbg(scomp->dev, "loaded mixer %s\n", swidget->widget->name); in sof_ipc3_widget_setup_comp_mixer()
514 sof_dbg_comp_config(scomp, &mixer->config); in sof_ipc3_widget_setup_comp_mixer()
521 struct snd_soc_component *scomp = swidget->scomp; in sof_ipc3_widget_setup_comp_pipeline() local
540 comp_swidget = snd_sof_find_swidget(scomp, swidget->widget->sname); in sof_ipc3_widget_setup_comp_pipeline()
542 dev_err(scomp->dev, "scheduler %s refers to non existent widget %s\n", in sof_ipc3_widget_setup_comp_pipeline()
551 ret = sof_update_ipc_object(scomp, pipeline, SOF_SCHED_TOKENS, swidget->tuples, in sof_ipc3_widget_setup_comp_pipeline()
557 ret = sof_update_ipc_object(scomp, swidget, SOF_PIPELINE_TOKENS, swidget->tuples, in sof_ipc3_widget_setup_comp_pipeline()
569 dev_dbg(scomp->dev, "pipeline %s: period %d pri %d mips %d core %d frames %d dynamic %d\n", in sof_ipc3_widget_setup_comp_pipeline()
588 struct snd_soc_component *scomp = swidget->scomp; in sof_ipc3_widget_setup_comp_buffer() local
607 ret = sof_update_ipc_object(scomp, buffer, SOF_BUFFER_TOKENS, swidget->tuples, in sof_ipc3_widget_setup_comp_buffer()
615 dev_dbg(scomp->dev, "buffer %s: size %d caps 0x%x\n", in sof_ipc3_widget_setup_comp_buffer()
623 struct snd_soc_component *scomp = swidget->scomp; in sof_ipc3_widget_setup_comp_src() local
639 ret = sof_update_ipc_object(scomp, src, SOF_SRC_TOKENS, swidget->tuples, in sof_ipc3_widget_setup_comp_src()
645 ret = sof_update_ipc_object(scomp, &src->config, SOF_COMP_TOKENS, in sof_ipc3_widget_setup_comp_src()
650 dev_dbg(scomp->dev, "src %s: source rate %d sink rate %d\n", in sof_ipc3_widget_setup_comp_src()
652 sof_dbg_comp_config(scomp, &src->config); in sof_ipc3_widget_setup_comp_src()
664 struct snd_soc_component *scomp = swidget->scomp; in sof_ipc3_widget_setup_comp_asrc() local
680 ret = sof_update_ipc_object(scomp, asrc, SOF_ASRC_TOKENS, swidget->tuples, in sof_ipc3_widget_setup_comp_asrc()
686 ret = sof_update_ipc_object(scomp, &asrc->config, SOF_COMP_TOKENS, in sof_ipc3_widget_setup_comp_asrc()
691 dev_dbg(scomp->dev, "asrc %s: source rate %d sink rate %d asynch %d operation %d\n", in sof_ipc3_widget_setup_comp_asrc()
695 sof_dbg_comp_config(scomp, &asrc->config); in sof_ipc3_widget_setup_comp_asrc()
710 struct snd_soc_component *scomp = swidget->scomp; in sof_ipc3_widget_setup_comp_mux() local
726 ret = sof_update_ipc_object(scomp, &mux->config, SOF_COMP_TOKENS, in sof_ipc3_widget_setup_comp_mux()
734 dev_dbg(scomp->dev, "loaded mux %s\n", swidget->widget->name); in sof_ipc3_widget_setup_comp_mux()
735 sof_dbg_comp_config(scomp, &mux->config); in sof_ipc3_widget_setup_comp_mux()
746 struct snd_soc_component *scomp = swidget->scomp; in sof_ipc3_widget_setup_comp_pga() local
747 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_ipc3_widget_setup_comp_pga()
765 ret = sof_update_ipc_object(scomp, volume, SOF_VOLUME_TOKENS, swidget->tuples, in sof_ipc3_widget_setup_comp_pga()
771 ret = sof_update_ipc_object(scomp, &volume->config, SOF_COMP_TOKENS, in sof_ipc3_widget_setup_comp_pga()
777 dev_dbg(scomp->dev, "loaded PGA %s\n", swidget->widget->name); in sof_ipc3_widget_setup_comp_pga()
778 sof_dbg_comp_config(scomp, &volume->config); in sof_ipc3_widget_setup_comp_pga()
800 static int sof_get_control_data(struct snd_soc_component *scomp, in sof_get_control_data() argument
830 dev_err(scomp->dev, "Unknown kcontrol type %u in widget %s\n", in sof_get_control_data()
836 dev_err(scomp->dev, "No scontrol for widget %s\n", widget->name); in sof_get_control_data()
882 static int sof_process_load(struct snd_soc_component *scomp, in sof_process_load() argument
901 ret = sof_get_control_data(scomp, widget, wdata, &ipc_data_size); in sof_process_load()
927 ret = sof_update_ipc_object(scomp, &process->config, SOF_COMP_TOKENS, in sof_process_load()
933 dev_dbg(scomp->dev, "loaded process %s\n", swidget->widget->name); in sof_process_load()
934 sof_dbg_comp_config(scomp, &process->config); in sof_process_load()
984 struct snd_soc_component *scomp = swidget->scomp; in sof_widget_update_ipc_comp_process() local
992 ret = sof_update_ipc_object(scomp, &config, SOF_PROCESS_TOKENS, swidget->tuples, in sof_widget_update_ipc_comp_process()
998 return sof_process_load(scomp, swidget, find_process_comp_type(config.type)); in sof_widget_update_ipc_comp_process()
1001 static int sof_link_hda_load(struct snd_soc_component *scomp, struct snd_sof_dai_link *slink, in sof_link_hda_load() argument
1013 ret = sof_update_ipc_object(scomp, &config->hda, SOF_HDA_TOKENS, slink->tuples, in sof_link_hda_load()
1018 dev_dbg(scomp->dev, "HDA config rate %d channels %d\n", in sof_link_hda_load()
1066 static int sof_link_sai_load(struct snd_soc_component *scomp, struct snd_sof_dai_link *slink, in sof_link_sai_load() argument
1082 ret = sof_update_ipc_object(scomp, &config->sai, SOF_SAI_TOKENS, slink->tuples, in sof_link_sai_load()
1097 dev_info(scomp->dev, in sof_link_sai_load()
1104 dev_err(scomp->dev, "Invalid channel count for SAI%d\n", config->dai_index); in sof_link_sai_load()
1117 static int sof_link_esai_load(struct snd_soc_component *scomp, struct snd_sof_dai_link *slink, in sof_link_esai_load() argument
1133 ret = sof_update_ipc_object(scomp, &config->esai, SOF_ESAI_TOKENS, slink->tuples, in sof_link_esai_load()
1147 dev_info(scomp->dev, in sof_link_esai_load()
1154 dev_err(scomp->dev, "Invalid channel count for ESAI%d\n", config->dai_index); in sof_link_esai_load()
1167 static int sof_link_micfil_load(struct snd_soc_component *scomp, struct snd_sof_dai_link *slink, in sof_link_micfil_load() argument
1181 ret = sof_update_ipc_object(scomp, &config->micfil, SOF_MICFIL_TOKENS, slink->tuples, in sof_link_micfil_load()
1186 dev_info(scomp->dev, "MICFIL PDM config dai_index %d channel %d rate %d\n", in sof_link_micfil_load()
1198 static int sof_link_acp_dmic_load(struct snd_soc_component *scomp, struct snd_sof_dai_link *slink, in sof_link_acp_dmic_load() argument
1212 ret = sof_update_ipc_object(scomp, &config->acpdmic, SOF_ACPDMIC_TOKENS, slink->tuples, in sof_link_acp_dmic_load()
1217 dev_info(scomp->dev, "ACP_DMIC config ACP%d channel %d rate %d\n", in sof_link_acp_dmic_load()
1230 static int sof_link_acp_bt_load(struct snd_soc_component *scomp, struct snd_sof_dai_link *slink, in sof_link_acp_bt_load() argument
1245 ret = sof_update_ipc_object(scomp, &config->acpbt, SOF_ACPI2S_TOKENS, slink->tuples, in sof_link_acp_bt_load()
1250 dev_info(scomp->dev, "ACP_BT config ACP%d channel %d rate %d tdm_mode %d\n", in sof_link_acp_bt_load()
1263 static int sof_link_acp_sp_load(struct snd_soc_component *scomp, struct snd_sof_dai_link *slink, in sof_link_acp_sp_load() argument
1278 ret = sof_update_ipc_object(scomp, &config->acpsp, SOF_ACPI2S_TOKENS, slink->tuples, in sof_link_acp_sp_load()
1284 dev_info(scomp->dev, "ACP_SP config ACP%d channel %d rate %d tdm_mode %d\n", in sof_link_acp_sp_load()
1297 static int sof_link_acp_hs_load(struct snd_soc_component *scomp, struct snd_sof_dai_link *slink, in sof_link_acp_hs_load() argument
1312 ret = sof_update_ipc_object(scomp, &config->acphs, SOF_ACPI2S_TOKENS, slink->tuples, in sof_link_acp_hs_load()
1317 dev_info(scomp->dev, "ACP_HS config ACP%d channel %d rate %d tdm_mode %d\n", in sof_link_acp_hs_load()
1330 static int sof_link_acp_sdw_load(struct snd_soc_component *scomp, struct snd_sof_dai_link *slink, in sof_link_acp_sdw_load() argument
1338 ret = sof_update_ipc_object(scomp, &config->acp_sdw, SOF_ACP_SDW_TOKENS, slink->tuples, in sof_link_acp_sdw_load()
1345 dev_dbg(scomp->dev, "ACP SDW config rate %d channels %d\n", in sof_link_acp_sdw_load()
1358 static int sof_link_afe_load(struct snd_soc_component *scomp, struct snd_sof_dai_link *slink, in sof_link_afe_load() argument
1368 ret = sof_update_ipc_object(scomp, &config->afe, SOF_AFE_TOKENS, slink->tuples, in sof_link_afe_load()
1373 dev_dbg(scomp->dev, "AFE config rate %d channels %d format:%d\n", in sof_link_afe_load()
1387 static int sof_link_ssp_load(struct snd_soc_component *scomp, struct snd_sof_dai_link *slink, in sof_link_ssp_load() argument
1390 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_link_ssp_load()
1400 ret = sof_update_ipc_object(scomp, &config->ssp, SOF_SSP_TOKENS, slink->tuples, in sof_link_ssp_load()
1416 dev_dbg(scomp->dev, "tplg: overriding topology mclk_id %d by quirk %d\n", in sof_link_ssp_load()
1431 …dev_dbg(scomp->dev, "tplg: config SSP%d fmt %#x mclk %d bclk %d fclk %d width (%d)%d slots %d mclk… in sof_link_ssp_load()
1440 dev_err(scomp->dev, "Invalid fsync rate for SSP%d\n", config[i].dai_index); in sof_link_ssp_load()
1445 dev_err(scomp->dev, "Invalid channel count for SSP%d\n", in sof_link_ssp_load()
1460 static int sof_link_dmic_load(struct snd_soc_component *scomp, struct snd_sof_dai_link *slink, in sof_link_dmic_load() argument
1463 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_link_dmic_load()
1474 ret = sof_update_ipc_object(scomp, &config->dmic, SOF_DMIC_TOKENS, slink->tuples, in sof_link_dmic_load()
1480 ret = sof_update_ipc_object(scomp, &config->dmic.pdm[0], SOF_DMIC_PDM_TOKENS, in sof_link_dmic_load()
1491 dev_dbg(scomp->dev, "tplg: config DMIC%d driver version %d\n", in sof_link_dmic_load()
1493 dev_dbg(scomp->dev, "pdmclk_min %d pdm_clkmax %d duty_min %d\n", in sof_link_dmic_load()
1496 dev_dbg(scomp->dev, "duty_max %d fifo_fs %d num_pdms active %d\n", in sof_link_dmic_load()
1499 dev_dbg(scomp->dev, "fifo word length %d\n", config->dmic.fifo_bits); in sof_link_dmic_load()
1502 dev_dbg(scomp->dev, "pdm %d mic a %d mic b %d\n", in sof_link_dmic_load()
1506 dev_dbg(scomp->dev, "pdm %d polarity a %d polarity b %d\n", in sof_link_dmic_load()
1510 dev_dbg(scomp->dev, "pdm %d clk_edge %d skew %d\n", in sof_link_dmic_load()
1532 static int sof_link_alh_load(struct snd_soc_component *scomp, struct snd_sof_dai_link *slink, in sof_link_alh_load() argument
1540 ret = sof_update_ipc_object(scomp, &config->alh, SOF_ALH_TOKENS, slink->tuples, in sof_link_alh_load()
1560 struct snd_soc_component *scomp = swidget->scomp; in sof_ipc3_widget_setup_comp_dai() local
1561 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_ipc3_widget_setup_comp_dai()
1588 ret = sof_update_ipc_object(scomp, comp_dai, SOF_DAI_TOKENS, swidget->tuples, in sof_ipc3_widget_setup_comp_dai()
1594 ret = sof_update_ipc_object(scomp, &comp_dai->config, SOF_COMP_TOKENS, in sof_ipc3_widget_setup_comp_dai()
1612 dev_dbg(scomp->dev, "dai %s: type %d index %d\n", in sof_ipc3_widget_setup_comp_dai()
1614 sof_dbg_comp_config(scomp, &comp_dai->config); in sof_ipc3_widget_setup_comp_dai()
1632 ret = sof_update_ipc_object(scomp, &common_config, SOF_DAI_LINK_TOKENS, in sof_ipc3_widget_setup_comp_dai()
1647 ret = sof_link_ssp_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1650 ret = sof_link_dmic_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1653 ret = sof_link_hda_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1656 ret = sof_link_alh_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1659 ret = sof_link_sai_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1662 ret = sof_link_esai_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1665 ret = sof_link_micfil_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1668 ret = sof_link_acp_bt_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1672 ret = sof_link_acp_sp_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1676 ret = sof_link_acp_hs_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1679 ret = sof_link_acp_dmic_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1682 ret = sof_link_afe_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1685 ret = sof_link_acp_sdw_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1691 dev_err(scomp->dev, "failed to load config for dai %s\n", dai->name); in sof_ipc3_widget_setup_comp_dai()
1905 struct snd_soc_component *scomp = swidget->scomp; in sof_ipc3_keyword_detect_pcm_params() local
1906 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_ipc3_keyword_detect_pcm_params()
1913 spcm = snd_sof_find_spcm_name(scomp, swidget->widget->sname); in sof_ipc3_keyword_detect_pcm_params()
1915 dev_err(scomp->dev, "Cannot find PCM for %s\n", swidget->widget->name); in sof_ipc3_keyword_detect_pcm_params()
1952 dev_err(scomp->dev, "%s: PCM params failed for %s\n", __func__, in sof_ipc3_keyword_detect_pcm_params()
1961 struct snd_soc_component *scomp = swidget->scomp; in sof_ipc3_keyword_detect_trigger() local
1962 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); in sof_ipc3_keyword_detect_trigger()
1974 dev_err(scomp->dev, "%s: Failed to trigger %s\n", __func__, swidget->widget->name); in sof_ipc3_keyword_detect_trigger()
1983 struct snd_soc_component *scomp; in sof_ipc3_keyword_dapm_event() local
1991 scomp = swidget->scomp; in sof_ipc3_keyword_dapm_event()
1993 dev_dbg(scomp->dev, "received event %d for widget %s\n", in sof_ipc3_keyword_dapm_event()
1997 spcm = snd_sof_find_spcm_name(scomp, swidget->widget->sname); in sof_ipc3_keyword_dapm_event()
1999 dev_err(scomp->dev, "%s: Cannot find PCM for %s\n", __func__, in sof_ipc3_keyword_dapm_event()
2008 dev_dbg(scomp->dev, "PRE_PMU event ignored, KWD pipeline is already RUNNING\n"); in sof_ipc3_keyword_dapm_event()
2015 dev_err(scomp->dev, "%s: Failed to set pcm params for widget %s\n", in sof_ipc3_keyword_dapm_event()
2023 dev_err(scomp->dev, "%s: Failed to trigger widget %s\n", __func__, in sof_ipc3_keyword_dapm_event()
2028 dev_dbg(scomp->dev, in sof_ipc3_keyword_dapm_event()
2036 dev_err(scomp->dev, "%s: Failed to trigger widget %s\n", __func__, in sof_ipc3_keyword_dapm_event()
2042 dev_err(scomp->dev, "%s: Failed to free PCM for widget %s\n", __func__, in sof_ipc3_keyword_dapm_event()
2057 static int sof_ipc3_widget_bind_event(struct snd_soc_component *scomp, in sof_ipc3_widget_bind_event() argument
2080 dev_err(scomp->dev, "Invalid event type %d for widget %s\n", event_type, in sof_ipc3_widget_bind_event()
2544 static int sof_ipc3_parse_manifest(struct snd_soc_component *scomp, int index, in sof_ipc3_parse_manifest() argument
2552 dev_dbg(scomp->dev, "No topology ABI info\n"); in sof_ipc3_parse_manifest()
2557 dev_err(scomp->dev, "%s: Invalid topology ABI size: %u\n", in sof_ipc3_parse_manifest()
2562 dev_info(scomp->dev, in sof_ipc3_parse_manifest()
2570 dev_err(scomp->dev, "%s: Incompatible topology ABI version\n", __func__); in sof_ipc3_parse_manifest()
2576 dev_err(scomp->dev, "%s: Topology ABI is more recent than kernel\n", __func__); in sof_ipc3_parse_manifest()