Lines Matching refs:ipc4_copier
344 struct sof_ipc4_copier *ipc4_copier; in sof_ipc4_widget_setup_pcm() local
348 ipc4_copier = kzalloc(sizeof(*ipc4_copier), GFP_KERNEL); in sof_ipc4_widget_setup_pcm()
349 if (!ipc4_copier) in sof_ipc4_widget_setup_pcm()
352 swidget->private = ipc4_copier; in sof_ipc4_widget_setup_pcm()
353 available_fmt = &ipc4_copier->available_fmt; in sof_ipc4_widget_setup_pcm()
394 ipc4_copier->data.gtw_cfg.node_id = SOF_IPC4_NODE_TYPE(node_type); in sof_ipc4_widget_setup_pcm()
395 ipc4_copier->gtw_attr = kzalloc(sizeof(*ipc4_copier->gtw_attr), GFP_KERNEL); in sof_ipc4_widget_setup_pcm()
396 if (!ipc4_copier->gtw_attr) { in sof_ipc4_widget_setup_pcm()
401 ipc4_copier->copier_config = (uint32_t *)ipc4_copier->gtw_attr; in sof_ipc4_widget_setup_pcm()
402 ipc4_copier->data.gtw_cfg.config_length = in sof_ipc4_widget_setup_pcm()
406 ret = sof_ipc4_widget_setup_msg(swidget, &ipc4_copier->msg); in sof_ipc4_widget_setup_pcm()
413 kfree(ipc4_copier->gtw_attr); in sof_ipc4_widget_setup_pcm()
419 kfree(ipc4_copier); in sof_ipc4_widget_setup_pcm()
426 struct sof_ipc4_copier *ipc4_copier = swidget->private; in sof_ipc4_widget_free_comp_pcm() local
429 if (!ipc4_copier) in sof_ipc4_widget_free_comp_pcm()
432 available_fmt = &ipc4_copier->available_fmt; in sof_ipc4_widget_free_comp_pcm()
436 kfree(ipc4_copier->gtw_attr); in sof_ipc4_widget_free_comp_pcm()
437 kfree(ipc4_copier); in sof_ipc4_widget_free_comp_pcm()
446 struct sof_ipc4_copier *ipc4_copier; in sof_ipc4_widget_setup_comp_dai() local
450 ipc4_copier = kzalloc(sizeof(*ipc4_copier), GFP_KERNEL); in sof_ipc4_widget_setup_comp_dai()
451 if (!ipc4_copier) in sof_ipc4_widget_setup_comp_dai()
454 available_fmt = &ipc4_copier->available_fmt; in sof_ipc4_widget_setup_comp_dai()
491 ret = sof_update_ipc_object(scomp, ipc4_copier, in sof_ipc4_widget_setup_comp_dai()
500 node_type, ipc4_copier->dai_type, ipc4_copier->dai_index); in sof_ipc4_widget_setup_comp_dai()
502 ipc4_copier->data.gtw_cfg.node_id = SOF_IPC4_NODE_TYPE(node_type); in sof_ipc4_widget_setup_comp_dai()
504 switch (ipc4_copier->dai_type) { in sof_ipc4_widget_setup_comp_dai()
525 ipc4_copier->copier_config = (uint32_t *)blob; in sof_ipc4_widget_setup_comp_dai()
526 ipc4_copier->data.gtw_cfg.config_length = sizeof(*blob) >> 2; in sof_ipc4_widget_setup_comp_dai()
531 ipc4_copier->data.gtw_cfg.node_id |= in sof_ipc4_widget_setup_comp_dai()
532 SOF_IPC4_NODE_INDEX_INTEL_SSP(ipc4_copier->dai_index); in sof_ipc4_widget_setup_comp_dai()
536 ipc4_copier->data.gtw_cfg.node_id |= in sof_ipc4_widget_setup_comp_dai()
537 SOF_IPC4_NODE_INDEX_INTEL_DMIC(ipc4_copier->dai_index); in sof_ipc4_widget_setup_comp_dai()
540 ipc4_copier->gtw_attr = kzalloc(sizeof(*ipc4_copier->gtw_attr), GFP_KERNEL); in sof_ipc4_widget_setup_comp_dai()
541 if (!ipc4_copier->gtw_attr) { in sof_ipc4_widget_setup_comp_dai()
546 ipc4_copier->copier_config = (uint32_t *)ipc4_copier->gtw_attr; in sof_ipc4_widget_setup_comp_dai()
547 ipc4_copier->data.gtw_cfg.config_length = in sof_ipc4_widget_setup_comp_dai()
553 dai->private = ipc4_copier; in sof_ipc4_widget_setup_comp_dai()
556 ret = sof_ipc4_widget_setup_msg(swidget, &ipc4_copier->msg); in sof_ipc4_widget_setup_comp_dai()
563 kfree(ipc4_copier->copier_config); in sof_ipc4_widget_setup_comp_dai()
569 kfree(ipc4_copier); in sof_ipc4_widget_setup_comp_dai()
579 struct sof_ipc4_copier *ipc4_copier; in sof_ipc4_widget_free_comp_dai() local
590 ipc4_copier = dai->private; in sof_ipc4_widget_free_comp_dai()
591 available_fmt = &ipc4_copier->available_fmt; in sof_ipc4_widget_free_comp_dai()
596 if (ipc4_copier->dai_type != SOF_DAI_INTEL_SSP && in sof_ipc4_widget_free_comp_dai()
597 ipc4_copier->dai_type != SOF_DAI_INTEL_DMIC) in sof_ipc4_widget_free_comp_dai()
598 kfree(ipc4_copier->copier_config); in sof_ipc4_widget_free_comp_dai()
957 struct sof_ipc4_copier *ipc4_copier = NULL; in sof_ipc4_unprepare_copier_module() local
967 ipc4_copier = swidget->private; in sof_ipc4_unprepare_copier_module()
971 ipc4_copier = dai->private; in sof_ipc4_unprepare_copier_module()
972 if (ipc4_copier->dai_type == SOF_DAI_INTEL_ALH) { in sof_ipc4_unprepare_copier_module()
976 blob = (struct sof_ipc4_alh_configuration_blob *)ipc4_copier->copier_config; in sof_ipc4_unprepare_copier_module()
978 group_id = SOF_IPC4_NODE_INDEX(ipc4_copier->data.gtw_cfg.node_id) - in sof_ipc4_unprepare_copier_module()
985 if (ipc4_copier) { in sof_ipc4_unprepare_copier_module()
986 kfree(ipc4_copier->ipc_config_data); in sof_ipc4_unprepare_copier_module()
987 ipc4_copier->ipc_config_data = NULL; in sof_ipc4_unprepare_copier_module()
988 ipc4_copier->ipc_config_size = 0; in sof_ipc4_unprepare_copier_module()
1109 struct sof_ipc4_copier *ipc4_copier; in sof_ipc4_prepare_copier_module() local
1131 ipc4_copier = (struct sof_ipc4_copier *)swidget->private; in sof_ipc4_prepare_copier_module()
1132 gtw_attr = ipc4_copier->gtw_attr; in sof_ipc4_prepare_copier_module()
1133 copier_data = &ipc4_copier->data; in sof_ipc4_prepare_copier_module()
1134 available_fmt = &ipc4_copier->available_fmt; in sof_ipc4_prepare_copier_module()
1162 ipc4_copier = (struct sof_ipc4_copier *)dai->private; in sof_ipc4_prepare_copier_module()
1163 copier_data = &ipc4_copier->data; in sof_ipc4_prepare_copier_module()
1164 available_fmt = &ipc4_copier->available_fmt; in sof_ipc4_prepare_copier_module()
1183 ret = snd_sof_get_nhlt_endpoint_data(sdev, dai, fe_params, ipc4_copier->dai_index, in sof_ipc4_prepare_copier_module()
1184 ipc4_copier->dai_type, dir, in sof_ipc4_prepare_copier_module()
1185 &ipc4_copier->copier_config, in sof_ipc4_prepare_copier_module()
1213 if (ipc4_copier->dai_type == SOF_DAI_INTEL_ALH) { in sof_ipc4_prepare_copier_module()
1222 blob = (struct sof_ipc4_alh_configuration_blob *)ipc4_copier->copier_config; in sof_ipc4_prepare_copier_module()
1293 data = &ipc4_copier->copier_config; in sof_ipc4_prepare_copier_module()
1294 ipc_config_size = &ipc4_copier->ipc_config_size; in sof_ipc4_prepare_copier_module()
1295 ipc_config_data = &ipc4_copier->ipc_config_data; in sof_ipc4_prepare_copier_module()
1469 struct sof_ipc4_copier *ipc4_copier = swidget->private; in sof_ipc4_widget_setup() local
1471 ipc_size = ipc4_copier->ipc_config_size; in sof_ipc4_widget_setup()
1472 ipc_data = ipc4_copier->ipc_config_data; in sof_ipc4_widget_setup()
1474 msg = &ipc4_copier->msg; in sof_ipc4_widget_setup()
1481 struct sof_ipc4_copier *ipc4_copier = dai->private; in sof_ipc4_widget_setup() local
1483 ipc_size = ipc4_copier->ipc_config_size; in sof_ipc4_widget_setup()
1484 ipc_data = ipc4_copier->ipc_config_data; in sof_ipc4_widget_setup()
1486 msg = &ipc4_copier->msg; in sof_ipc4_widget_setup()
1673 struct sof_ipc4_copier *ipc4_copier; in sof_ipc4_dai_config() local
1681 ipc4_copier = (struct sof_ipc4_copier *)dai->private; in sof_ipc4_dai_config()
1682 copier_data = &ipc4_copier->data; in sof_ipc4_dai_config()
1687 switch (ipc4_copier->dai_type) { in sof_ipc4_dai_config()
1689 gtw_attr = ipc4_copier->gtw_attr; in sof_ipc4_dai_config()
1702 ipc4_copier->dai_type); in sof_ipc4_dai_config()
1772 struct sof_ipc4_copier *ipc4_copier = dai->private; in sof_ipc4_dai_get_clk() local
1779 if (!ipc4_copier) in sof_ipc4_dai_get_clk()
1807 switch (ipc4_copier->dai_type) { in sof_ipc4_dai_get_clk()
1820 dev_err(sdev->dev, "DAI type %d not supported yet!\n", ipc4_copier->dai_type); in sof_ipc4_dai_get_clk()