Lines Matching refs:ipc4_copier

392 	struct sof_ipc4_copier *ipc4_copier;
396 ipc4_copier = kzalloc(sizeof(*ipc4_copier), GFP_KERNEL);
397 if (!ipc4_copier)
400 swidget->private = ipc4_copier;
401 available_fmt = &ipc4_copier->available_fmt;
406 &ipc4_copier->data.base_config);
429 ipc4_copier->gtw_attr = kzalloc(sizeof(*ipc4_copier->gtw_attr), GFP_KERNEL);
430 if (!ipc4_copier->gtw_attr) {
435 ipc4_copier->copier_config = (uint32_t *)ipc4_copier->gtw_attr;
436 ipc4_copier->data.gtw_cfg.config_length =
442 ipc4_copier->data.gtw_cfg.node_id = SOF_IPC4_NODE_TYPE(node_type);
445 ipc4_copier->data.gtw_cfg.node_id = SOF_IPC4_INVALID_NODE_ID;
446 ipc4_copier->ipc_config_size = 0;
455 ret = sof_ipc4_widget_setup_msg(swidget, &ipc4_copier->msg);
462 kfree(ipc4_copier->gtw_attr);
466 kfree(ipc4_copier);
473 struct sof_ipc4_copier *ipc4_copier = swidget->private;
476 if (!ipc4_copier)
479 available_fmt = &ipc4_copier->available_fmt;
481 kfree(ipc4_copier->gtw_attr);
482 kfree(ipc4_copier);
491 struct sof_ipc4_copier *ipc4_copier;
497 ipc4_copier = kzalloc(sizeof(*ipc4_copier), GFP_KERNEL);
498 if (!ipc4_copier)
501 available_fmt = &ipc4_copier->available_fmt;
506 &ipc4_copier->data.base_config);
518 ret = sof_update_ipc_object(scomp, ipc4_copier,
527 node_type, ipc4_copier->dai_type, ipc4_copier->dai_index);
529 ipc4_copier->data.gtw_cfg.node_id = SOF_IPC4_NODE_TYPE(node_type);
533 if (pipeline->use_chain_dma && ipc4_copier->dai_type != SOF_DAI_INTEL_HDA) {
536 ipc4_copier->dai_type, SOF_DAI_INTEL_HDA);
541 switch (ipc4_copier->dai_type) {
557 * It is fine to call kfree(ipc4_copier->copier_config) since
558 * ipc4_copier->copier_config is null.
578 ipc4_copier->copier_config = (uint32_t *)blob;
579 ipc4_copier->data.gtw_cfg.config_length = sizeof(*blob) >> 2;
584 ipc4_copier->data.gtw_cfg.node_id |=
585 SOF_IPC4_NODE_INDEX_INTEL_SSP(ipc4_copier->dai_index);
589 ipc4_copier->data.gtw_cfg.node_id |=
590 SOF_IPC4_NODE_INDEX_INTEL_DMIC(ipc4_copier->dai_index);
593 ipc4_copier->gtw_attr = kzalloc(sizeof(*ipc4_copier->gtw_attr), GFP_KERNEL);
594 if (!ipc4_copier->gtw_attr) {
599 ipc4_copier->copier_config = (uint32_t *)ipc4_copier->gtw_attr;
600 ipc4_copier->data.gtw_cfg.config_length =
606 dai->private = ipc4_copier;
609 ret = sof_ipc4_widget_setup_msg(swidget, &ipc4_copier->msg);
616 kfree(ipc4_copier->copier_config);
620 kfree(ipc4_copier);
630 struct sof_ipc4_copier *ipc4_copier;
641 ipc4_copier = dai->private;
642 available_fmt = &ipc4_copier->available_fmt;
645 if (ipc4_copier->dai_type != SOF_DAI_INTEL_SSP &&
646 ipc4_copier->dai_type != SOF_DAI_INTEL_DMIC)
647 kfree(ipc4_copier->copier_config);
1228 struct sof_ipc4_copier *ipc4_copier = NULL;
1242 ipc4_copier = swidget->private;
1246 ipc4_copier = dai->private;
1253 if (ipc4_copier->dai_type == SOF_DAI_INTEL_ALH) {
1254 struct sof_ipc4_copier_data *copier_data = &ipc4_copier->data;
1258 blob = (struct sof_ipc4_alh_configuration_blob *)ipc4_copier->copier_config;
1260 group_id = SOF_IPC4_NODE_INDEX(ipc4_copier->data.gtw_cfg.node_id) -
1270 if (ipc4_copier) {
1271 kfree(ipc4_copier->ipc_config_data);
1272 ipc4_copier->ipc_config_data = NULL;
1273 ipc4_copier->ipc_config_size = 0;
1419 struct sof_ipc4_copier *ipc4_copier;
1452 ipc4_copier = (struct sof_ipc4_copier *)swidget->private;
1453 gtw_attr = ipc4_copier->gtw_attr;
1454 copier_data = &ipc4_copier->data;
1455 available_fmt = &ipc4_copier->available_fmt;
1518 ipc4_copier = (struct sof_ipc4_copier *)dai->private;
1519 copier_data = &ipc4_copier->data;
1520 available_fmt = &ipc4_copier->available_fmt;
1533 ret = snd_sof_get_nhlt_endpoint_data(sdev, dai, fe_params, ipc4_copier->dai_index,
1534 ipc4_copier->dai_type, dir,
1535 &ipc4_copier->copier_config,
1544 ipc4_copier = (struct sof_ipc4_copier *)swidget->private;
1545 copier_data = &ipc4_copier->data;
1546 available_fmt = &ipc4_copier->available_fmt;
1646 if (ipc4_copier->dai_type == SOF_DAI_INTEL_ALH) {
1658 blob = (struct sof_ipc4_alh_configuration_blob *)ipc4_copier->copier_config;
1753 data = &ipc4_copier->copier_config;
1754 ipc_config_size = &ipc4_copier->ipc_config_size;
1755 ipc_config_data = &ipc4_copier->ipc_config_data;
1761 if (ipc4_copier->dma_config_tlv.type == SOF_IPC4_GTW_DMA_CONFIG_ID &&
1762 ipc4_copier->dma_config_tlv.length) {
1763 dma_config_tlv_size = sizeof(ipc4_copier->dma_config_tlv) +
1764 ipc4_copier->dma_config_tlv.dma_config.dma_priv_config_size;
1767 if (dma_config_tlv_size != ipc4_copier->dma_config_tlv.length +
1770 dma_config_tlv_size, ipc4_copier->dma_config_tlv.length);
1801 &ipc4_copier->dma_config_tlv, dma_config_tlv_size);
2248 struct sof_ipc4_copier *ipc4_copier = swidget->private;
2254 ipc_size = ipc4_copier->ipc_config_size;
2255 ipc_data = ipc4_copier->ipc_config_data;
2257 msg = &ipc4_copier->msg;
2264 struct sof_ipc4_copier *ipc4_copier = dai->private;
2270 ipc_size = ipc4_copier->ipc_config_size;
2271 ipc_data = ipc4_copier->ipc_config_data;
2273 msg = &ipc4_copier->msg;
2710 struct sof_ipc4_copier *ipc4_copier;
2718 ipc4_copier = (struct sof_ipc4_copier *)dai->private;
2719 copier_data = &ipc4_copier->data;
2724 switch (ipc4_copier->dai_type) {
2731 gtw_attr = ipc4_copier->gtw_attr;
2751 ipc4_copier->dai_type);
2821 struct sof_ipc4_copier *ipc4_copier = dai->private;
2828 if (!ipc4_copier)
2856 switch (ipc4_copier->dai_type) {
2869 dev_err(sdev->dev, "DAI type %d not supported yet!\n", ipc4_copier->dai_type);