Lines Matching refs:config
370 static void sof_dbg_comp_config(struct snd_soc_component *scomp, struct sof_ipc_comp_config *config) in sof_dbg_comp_config() argument
373 config->periods_sink, config->periods_source, in sof_dbg_comp_config()
374 config->frame_fmt); in sof_dbg_comp_config()
391 host->config.hdr.size = sizeof(host->config); in sof_ipc3_widget_setup_comp_host()
405 ret = sof_update_ipc_object(scomp, &host->config, SOF_COMP_TOKENS, swidget->tuples, in sof_ipc3_widget_setup_comp_host()
406 swidget->num_tuples, sizeof(host->config), 1); in sof_ipc3_widget_setup_comp_host()
411 sof_dbg_comp_config(scomp, &host->config); in sof_ipc3_widget_setup_comp_host()
441 tone->config.hdr.size = sizeof(tone->config); in sof_ipc3_widget_setup_comp_tone()
444 ret = sof_update_ipc_object(scomp, &tone->config, SOF_COMP_TOKENS, swidget->tuples, in sof_ipc3_widget_setup_comp_tone()
445 swidget->num_tuples, sizeof(tone->config), 1); in sof_ipc3_widget_setup_comp_tone()
454 sof_dbg_comp_config(scomp, &tone->config); in sof_ipc3_widget_setup_comp_tone()
474 mixer->config.hdr.size = sizeof(mixer->config); in sof_ipc3_widget_setup_comp_mixer()
477 ret = sof_update_ipc_object(scomp, &mixer->config, SOF_COMP_TOKENS, in sof_ipc3_widget_setup_comp_mixer()
479 sizeof(mixer->config), 1); in sof_ipc3_widget_setup_comp_mixer()
488 sof_dbg_comp_config(scomp, &mixer->config); in sof_ipc3_widget_setup_comp_mixer()
608 src->config.hdr.size = sizeof(src->config); in sof_ipc3_widget_setup_comp_src()
617 ret = sof_update_ipc_object(scomp, &src->config, SOF_COMP_TOKENS, in sof_ipc3_widget_setup_comp_src()
618 swidget->tuples, swidget->num_tuples, sizeof(src->config), 1); in sof_ipc3_widget_setup_comp_src()
624 sof_dbg_comp_config(scomp, &src->config); in sof_ipc3_widget_setup_comp_src()
649 asrc->config.hdr.size = sizeof(asrc->config); in sof_ipc3_widget_setup_comp_asrc()
658 ret = sof_update_ipc_object(scomp, &asrc->config, SOF_COMP_TOKENS, in sof_ipc3_widget_setup_comp_asrc()
659 swidget->tuples, swidget->num_tuples, sizeof(asrc->config), 1); in sof_ipc3_widget_setup_comp_asrc()
667 sof_dbg_comp_config(scomp, &asrc->config); in sof_ipc3_widget_setup_comp_asrc()
695 mux->config.hdr.size = sizeof(mux->config); in sof_ipc3_widget_setup_comp_mux()
698 ret = sof_update_ipc_object(scomp, &mux->config, SOF_COMP_TOKENS, in sof_ipc3_widget_setup_comp_mux()
699 swidget->tuples, swidget->num_tuples, sizeof(mux->config), 1); in sof_ipc3_widget_setup_comp_mux()
707 sof_dbg_comp_config(scomp, &mux->config); in sof_ipc3_widget_setup_comp_mux()
734 volume->config.hdr.size = sizeof(volume->config); in sof_ipc3_widget_setup_comp_pga()
743 ret = sof_update_ipc_object(scomp, &volume->config, SOF_COMP_TOKENS, in sof_ipc3_widget_setup_comp_pga()
745 sizeof(volume->config), 1); in sof_ipc3_widget_setup_comp_pga()
750 sof_dbg_comp_config(scomp, &volume->config); in sof_ipc3_widget_setup_comp_pga()
896 process->config.hdr.size = sizeof(process->config); in sof_process_load()
899 ret = sof_update_ipc_object(scomp, &process->config, SOF_COMP_TOKENS, in sof_process_load()
901 sizeof(process->config), 1); in sof_process_load()
906 sof_dbg_comp_config(scomp, &process->config); in sof_process_load()
957 struct sof_ipc_comp_process config; in sof_widget_update_ipc_comp_process() local
960 memset(&config, 0, sizeof(config)); in sof_widget_update_ipc_comp_process()
961 config.comp.core = swidget->core; in sof_widget_update_ipc_comp_process()
964 ret = sof_update_ipc_object(scomp, &config, SOF_PROCESS_TOKENS, swidget->tuples, in sof_widget_update_ipc_comp_process()
965 swidget->num_tuples, sizeof(config), 1); in sof_widget_update_ipc_comp_process()
970 return sof_process_load(scomp, swidget, find_process_comp_type(config.type)); in sof_widget_update_ipc_comp_process()
974 struct sof_ipc_dai_config *config, struct snd_sof_dai *dai) in sof_link_hda_load() argument
977 u32 size = sizeof(*config); in sof_link_hda_load()
981 memset(&config->hda, 0, sizeof(config->hda)); in sof_link_hda_load()
982 config->hdr.size = size; in sof_link_hda_load()
985 ret = sof_update_ipc_object(scomp, &config->hda, SOF_HDA_TOKENS, slink->tuples, in sof_link_hda_load()
991 config->hda.rate, config->hda.channels); in sof_link_hda_load()
993 config->hda.link_dma_ch = DMA_CHAN_INVALID; in sof_link_hda_load()
997 private->dai_config = kmemdup(config, size, GFP_KERNEL); in sof_link_hda_load()
1005 struct sof_ipc_dai_config *config) in sof_dai_set_format() argument
1008 config->format &= ~SOF_DAI_FMT_CLOCK_PROVIDER_MASK; in sof_dai_set_format()
1012 config->format |= SOF_DAI_FMT_CBP_CFP; in sof_dai_set_format()
1014 config->format |= SOF_DAI_FMT_CBP_CFC; in sof_dai_set_format()
1018 config->format |= SOF_DAI_FMT_CBC_CFP; in sof_dai_set_format()
1020 config->format |= SOF_DAI_FMT_CBC_CFC; in sof_dai_set_format()
1024 config->format &= ~SOF_DAI_FMT_INV_MASK; in sof_dai_set_format()
1027 config->format |= SOF_DAI_FMT_IB_IF; in sof_dai_set_format()
1029 config->format |= SOF_DAI_FMT_IB_NF; in sof_dai_set_format()
1032 config->format |= SOF_DAI_FMT_NB_IF; in sof_dai_set_format()
1034 config->format |= SOF_DAI_FMT_NB_NF; in sof_dai_set_format()
1039 struct sof_ipc_dai_config *config, struct snd_sof_dai *dai) in sof_link_sai_load() argument
1043 u32 size = sizeof(*config); in sof_link_sai_load()
1047 sof_dai_set_format(hw_config, config); in sof_link_sai_load()
1050 memset(&config->sai, 0, sizeof(config->sai)); in sof_link_sai_load()
1051 config->hdr.size = size; in sof_link_sai_load()
1054 ret = sof_update_ipc_object(scomp, &config->sai, SOF_SAI_TOKENS, slink->tuples, in sof_link_sai_load()
1059 config->sai.mclk_rate = le32_to_cpu(hw_config->mclk_rate); in sof_link_sai_load()
1060 config->sai.bclk_rate = le32_to_cpu(hw_config->bclk_rate); in sof_link_sai_load()
1061 config->sai.fsync_rate = le32_to_cpu(hw_config->fsync_rate); in sof_link_sai_load()
1062 config->sai.mclk_direction = hw_config->mclk_direction; in sof_link_sai_load()
1064 config->sai.tdm_slots = le32_to_cpu(hw_config->tdm_slots); in sof_link_sai_load()
1065 config->sai.tdm_slot_width = le32_to_cpu(hw_config->tdm_slot_width); in sof_link_sai_load()
1066 config->sai.rx_slots = le32_to_cpu(hw_config->rx_slots); in sof_link_sai_load()
1067 config->sai.tx_slots = le32_to_cpu(hw_config->tx_slots); in sof_link_sai_load()
1071 config->dai_index, config->format, in sof_link_sai_load()
1072 config->sai.mclk_rate, config->sai.tdm_slot_width, in sof_link_sai_load()
1073 config->sai.tdm_slots, config->sai.mclk_id); in sof_link_sai_load()
1075 if (config->sai.tdm_slots < 1 || config->sai.tdm_slots > 8) { in sof_link_sai_load()
1076 dev_err(scomp->dev, "Invalid channel count for SAI%d\n", config->dai_index); in sof_link_sai_load()
1082 private->dai_config = kmemdup(config, size, GFP_KERNEL); in sof_link_sai_load()
1090 struct sof_ipc_dai_config *config, struct snd_sof_dai *dai) in sof_link_esai_load() argument
1094 u32 size = sizeof(*config); in sof_link_esai_load()
1098 sof_dai_set_format(hw_config, config); in sof_link_esai_load()
1101 memset(&config->esai, 0, sizeof(config->esai)); in sof_link_esai_load()
1102 config->hdr.size = size; in sof_link_esai_load()
1105 ret = sof_update_ipc_object(scomp, &config->esai, SOF_ESAI_TOKENS, slink->tuples, in sof_link_esai_load()
1110 config->esai.mclk_rate = le32_to_cpu(hw_config->mclk_rate); in sof_link_esai_load()
1111 config->esai.bclk_rate = le32_to_cpu(hw_config->bclk_rate); in sof_link_esai_load()
1112 config->esai.fsync_rate = le32_to_cpu(hw_config->fsync_rate); in sof_link_esai_load()
1113 config->esai.mclk_direction = hw_config->mclk_direction; in sof_link_esai_load()
1114 config->esai.tdm_slots = le32_to_cpu(hw_config->tdm_slots); in sof_link_esai_load()
1115 config->esai.tdm_slot_width = le32_to_cpu(hw_config->tdm_slot_width); in sof_link_esai_load()
1116 config->esai.rx_slots = le32_to_cpu(hw_config->rx_slots); in sof_link_esai_load()
1117 config->esai.tx_slots = le32_to_cpu(hw_config->tx_slots); in sof_link_esai_load()
1121 config->dai_index, config->format, in sof_link_esai_load()
1122 config->esai.mclk_rate, config->esai.tdm_slot_width, in sof_link_esai_load()
1123 config->esai.tdm_slots, config->esai.mclk_id); in sof_link_esai_load()
1125 if (config->esai.tdm_slots < 1 || config->esai.tdm_slots > 8) { in sof_link_esai_load()
1126 dev_err(scomp->dev, "Invalid channel count for ESAI%d\n", config->dai_index); in sof_link_esai_load()
1132 private->dai_config = kmemdup(config, size, GFP_KERNEL); in sof_link_esai_load()
1140 struct sof_ipc_dai_config *config, struct snd_sof_dai *dai) in sof_link_acp_dmic_load() argument
1144 u32 size = sizeof(*config); in sof_link_acp_dmic_load()
1148 sof_dai_set_format(hw_config, config); in sof_link_acp_dmic_load()
1150 config->hdr.size = size; in sof_link_acp_dmic_load()
1153 ret = sof_update_ipc_object(scomp, &config->acpdmic, SOF_ACPDMIC_TOKENS, slink->tuples, in sof_link_acp_dmic_load()
1159 config->dai_index, config->acpdmic.pdm_ch, in sof_link_acp_dmic_load()
1160 config->acpdmic.pdm_rate); in sof_link_acp_dmic_load()
1164 private->dai_config = kmemdup(config, size, GFP_KERNEL); in sof_link_acp_dmic_load()
1172 struct sof_ipc_dai_config *config, struct snd_sof_dai *dai) in sof_link_acp_bt_load() argument
1176 u32 size = sizeof(*config); in sof_link_acp_bt_load()
1179 sof_dai_set_format(hw_config, config); in sof_link_acp_bt_load()
1182 memset(&config->acpbt, 0, sizeof(config->acpbt)); in sof_link_acp_bt_load()
1183 config->hdr.size = size; in sof_link_acp_bt_load()
1185 config->acpbt.fsync_rate = le32_to_cpu(hw_config->fsync_rate); in sof_link_acp_bt_load()
1186 config->acpbt.tdm_slots = le32_to_cpu(hw_config->tdm_slots); in sof_link_acp_bt_load()
1189 config->dai_index, config->acpbt.tdm_slots, in sof_link_acp_bt_load()
1190 config->acpbt.fsync_rate); in sof_link_acp_bt_load()
1194 private->dai_config = kmemdup(config, size, GFP_KERNEL); in sof_link_acp_bt_load()
1202 struct sof_ipc_dai_config *config, struct snd_sof_dai *dai) in sof_link_acp_sp_load() argument
1206 u32 size = sizeof(*config); in sof_link_acp_sp_load()
1210 sof_dai_set_format(hw_config, config); in sof_link_acp_sp_load()
1213 memset(&config->acpsp, 0, sizeof(config->acpsp)); in sof_link_acp_sp_load()
1214 config->hdr.size = size; in sof_link_acp_sp_load()
1216 ret = sof_update_ipc_object(scomp, &config->acpsp, SOF_ACPI2S_TOKENS, slink->tuples, in sof_link_acp_sp_load()
1223 config->dai_index, config->acpsp.tdm_slots, in sof_link_acp_sp_load()
1224 config->acpsp.fsync_rate, config->acpsp.tdm_mode); in sof_link_acp_sp_load()
1228 private->dai_config = kmemdup(config, size, GFP_KERNEL); in sof_link_acp_sp_load()
1236 struct sof_ipc_dai_config *config, struct snd_sof_dai *dai) in sof_link_acp_hs_load() argument
1240 u32 size = sizeof(*config); in sof_link_acp_hs_load()
1244 sof_dai_set_format(hw_config, config); in sof_link_acp_hs_load()
1247 memset(&config->acphs, 0, sizeof(config->acphs)); in sof_link_acp_hs_load()
1248 config->hdr.size = size; in sof_link_acp_hs_load()
1250 ret = sof_update_ipc_object(scomp, &config->acphs, SOF_ACPI2S_TOKENS, slink->tuples, in sof_link_acp_hs_load()
1256 config->dai_index, config->acphs.tdm_slots, in sof_link_acp_hs_load()
1257 config->acphs.fsync_rate, config->acphs.tdm_mode); in sof_link_acp_hs_load()
1261 private->dai_config = kmemdup(config, size, GFP_KERNEL); in sof_link_acp_hs_load()
1269 struct sof_ipc_dai_config *config, struct snd_sof_dai *dai) in sof_link_afe_load() argument
1272 u32 size = sizeof(*config); in sof_link_afe_load()
1275 config->hdr.size = size; in sof_link_afe_load()
1278 ret = sof_update_ipc_object(scomp, &config->afe, SOF_AFE_TOKENS, slink->tuples, in sof_link_afe_load()
1284 config->afe.rate, config->afe.channels, config->afe.format); in sof_link_afe_load()
1286 config->afe.stream_id = DMA_CHAN_INVALID; in sof_link_afe_load()
1290 private->dai_config = kmemdup(config, size, GFP_KERNEL); in sof_link_afe_load()
1298 struct sof_ipc_dai_config *config, struct snd_sof_dai *dai) in sof_link_ssp_load() argument
1303 u32 size = sizeof(*config); in sof_link_ssp_load()
1310 ret = sof_update_ipc_object(scomp, &config->ssp, SOF_SSP_TOKENS, slink->tuples, in sof_link_ssp_load()
1321 sof_dai_set_format(&hw_config[i], &config[i]); in sof_link_ssp_load()
1323 config[i].hdr.size = size; in sof_link_ssp_load()
1327 config[i].ssp.mclk_id, sdev->mclk_id_quirk); in sof_link_ssp_load()
1328 config[i].ssp.mclk_id = sdev->mclk_id_quirk; in sof_link_ssp_load()
1332 config[i].ssp.mclk_rate = le32_to_cpu(hw_config[i].mclk_rate); in sof_link_ssp_load()
1333 config[i].ssp.bclk_rate = le32_to_cpu(hw_config[i].bclk_rate); in sof_link_ssp_load()
1334 config[i].ssp.fsync_rate = le32_to_cpu(hw_config[i].fsync_rate); in sof_link_ssp_load()
1335 config[i].ssp.tdm_slots = le32_to_cpu(hw_config[i].tdm_slots); in sof_link_ssp_load()
1336 config[i].ssp.tdm_slot_width = le32_to_cpu(hw_config[i].tdm_slot_width); in sof_link_ssp_load()
1337 config[i].ssp.mclk_direction = hw_config[i].mclk_direction; in sof_link_ssp_load()
1338 config[i].ssp.rx_slots = le32_to_cpu(hw_config[i].rx_slots); in sof_link_ssp_load()
1339 config[i].ssp.tx_slots = le32_to_cpu(hw_config[i].tx_slots); in sof_link_ssp_load()
1342 config[i].dai_index, config[i].format, in sof_link_ssp_load()
1343 config[i].ssp.mclk_rate, config[i].ssp.bclk_rate, in sof_link_ssp_load()
1344 config[i].ssp.fsync_rate, config[i].ssp.sample_valid_bits, in sof_link_ssp_load()
1345 config[i].ssp.tdm_slot_width, config[i].ssp.tdm_slots, in sof_link_ssp_load()
1346 config[i].ssp.mclk_id, config[i].ssp.quirks, config[i].ssp.clks_control); in sof_link_ssp_load()
1349 if (config[i].ssp.fsync_rate < 8000 || config[i].ssp.fsync_rate > 192000) { in sof_link_ssp_load()
1350 dev_err(scomp->dev, "Invalid fsync rate for SSP%d\n", config[i].dai_index); in sof_link_ssp_load()
1354 if (config[i].ssp.tdm_slots < 1 || config[i].ssp.tdm_slots > 8) { in sof_link_ssp_load()
1356 config[i].dai_index); in sof_link_ssp_load()
1363 private->dai_config = kmemdup(config, size * slink->num_hw_configs, GFP_KERNEL); in sof_link_ssp_load()
1371 struct sof_ipc_dai_config *config, struct snd_sof_dai *dai) in sof_link_dmic_load() argument
1377 size_t size = sizeof(*config); in sof_link_dmic_load()
1381 memset(&config->dmic, 0, sizeof(config->dmic)); in sof_link_dmic_load()
1384 ret = sof_update_ipc_object(scomp, &config->dmic, SOF_DMIC_TOKENS, slink->tuples, in sof_link_dmic_load()
1390 ret = sof_update_ipc_object(scomp, &config->dmic.pdm[0], SOF_DMIC_PDM_TOKENS, in sof_link_dmic_load()
1393 config->dmic.num_pdm_active); in sof_link_dmic_load()
1398 config->hdr.size = size; in sof_link_dmic_load()
1402 config->dai_index, config->dmic.driver_ipc_version); in sof_link_dmic_load()
1404 config->dmic.pdmclk_min, config->dmic.pdmclk_max, in sof_link_dmic_load()
1405 config->dmic.duty_min); in sof_link_dmic_load()
1407 config->dmic.duty_max, config->dmic.fifo_fs, in sof_link_dmic_load()
1408 config->dmic.num_pdm_active); in sof_link_dmic_load()
1409 dev_dbg(scomp->dev, "fifo word length %d\n", config->dmic.fifo_bits); in sof_link_dmic_load()
1411 for (i = 0; i < config->dmic.num_pdm_active; i++) { in sof_link_dmic_load()
1413 config->dmic.pdm[i].id, in sof_link_dmic_load()
1414 config->dmic.pdm[i].enable_mic_a, in sof_link_dmic_load()
1415 config->dmic.pdm[i].enable_mic_b); in sof_link_dmic_load()
1417 config->dmic.pdm[i].id, in sof_link_dmic_load()
1418 config->dmic.pdm[i].polarity_mic_a, in sof_link_dmic_load()
1419 config->dmic.pdm[i].polarity_mic_b); in sof_link_dmic_load()
1421 config->dmic.pdm[i].id, in sof_link_dmic_load()
1422 config->dmic.pdm[i].clk_edge, in sof_link_dmic_load()
1423 config->dmic.pdm[i].skew); in sof_link_dmic_load()
1431 config->dmic.fifo_bits_b = config->dmic.fifo_bits; in sof_link_dmic_load()
1435 private->dai_config = kmemdup(config, size, GFP_KERNEL); in sof_link_dmic_load()
1443 struct sof_ipc_dai_config *config, struct snd_sof_dai *dai) in sof_link_alh_load() argument
1446 u32 size = sizeof(*config); in sof_link_alh_load()
1450 ret = sof_update_ipc_object(scomp, &config->alh, SOF_ALH_TOKENS, slink->tuples, in sof_link_alh_load()
1456 config->hdr.size = size; in sof_link_alh_load()
1461 private->dai_config = kmemdup(config, size, GFP_KERNEL); in sof_link_alh_load()
1476 struct sof_ipc_dai_config *config; in sof_ipc3_widget_setup_comp_dai() local
1495 comp_dai->config.hdr.size = sizeof(comp_dai->config); in sof_ipc3_widget_setup_comp_dai()
1504 ret = sof_update_ipc_object(scomp, &comp_dai->config, SOF_COMP_TOKENS, in sof_ipc3_widget_setup_comp_dai()
1506 sizeof(comp_dai->config), 1); in sof_ipc3_widget_setup_comp_dai()
1512 sof_dbg_comp_config(scomp, &comp_dai->config); in sof_ipc3_widget_setup_comp_dai()
1523 config = kcalloc(slink->num_hw_configs, sizeof(*config), GFP_KERNEL); in sof_ipc3_widget_setup_comp_dai()
1524 if (!config) { in sof_ipc3_widget_setup_comp_dai()
1537 config[i].hdr.cmd = SOF_IPC_GLB_DAI_MSG | SOF_IPC_DAI_CONFIG; in sof_ipc3_widget_setup_comp_dai()
1538 config[i].format = le32_to_cpu(slink->hw_configs[i].fmt); in sof_ipc3_widget_setup_comp_dai()
1539 config[i].type = common_config.type; in sof_ipc3_widget_setup_comp_dai()
1540 config[i].dai_index = comp_dai->dai_index; in sof_ipc3_widget_setup_comp_dai()
1545 ret = sof_link_ssp_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1548 ret = sof_link_dmic_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1551 ret = sof_link_hda_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1554 ret = sof_link_alh_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1557 ret = sof_link_sai_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1560 ret = sof_link_esai_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1563 ret = sof_link_acp_bt_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1567 ret = sof_link_acp_sp_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1571 ret = sof_link_acp_hs_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1574 ret = sof_link_acp_dmic_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1577 ret = sof_link_afe_load(scomp, slink, config, dai); in sof_ipc3_widget_setup_comp_dai()
1587 kfree(config); in sof_ipc3_widget_setup_comp_dai()
1592 kfree(config); in sof_ipc3_widget_setup_comp_dai()
2046 struct sof_ipc_dai_config *config; in sof_ipc3_dai_config() local
2061 config = &private->dai_config[dai->current_config]; in sof_ipc3_dai_config()
2062 if (!config) { in sof_ipc3_dai_config()
2067 switch (config->type) { in sof_ipc3_dai_config()
2080 config->hda.link_dma_ch = data->dai_data; in sof_ipc3_dai_config()
2084 config->dai_index = data->dai_index; in sof_ipc3_dai_config()
2085 config->alh.stream_id = data->dai_data; in sof_ipc3_dai_config()
2092 config->flags = flags; in sof_ipc3_dai_config()
2096 ret = sof_ipc_tx_message(sdev->ipc, config, config->hdr.size, in sof_ipc3_dai_config()
2175 struct sof_ipc_dai_config *config; in sof_ipc3_set_up_all_pipelines() local
2183 config = private->dai_config; in sof_ipc3_set_up_all_pipelines()
2190 if (config->type == SOF_DAI_INTEL_HDA) in sof_ipc3_set_up_all_pipelines()
2191 config->hda.link_dma_ch = DMA_CHAN_INVALID; in sof_ipc3_set_up_all_pipelines()