Lines Matching refs:pipe
348 struct skl_pipe_params *params = m_cfg->pipe->p_params; in skl_tplg_update_module_params()
349 int p_conn_type = m_cfg->pipe->conn_type; in skl_tplg_update_module_params()
453 static int skl_tplg_module_prepare(struct skl_dev *skl, struct skl_pipe *pipe, in skl_tplg_module_prepare() argument
458 return skl_pcm_host_dma_prepare(skl->dev, pipe->p_params); in skl_tplg_module_prepare()
461 return skl_pcm_link_dma_prepare(skl->dev, pipe->p_params); in skl_tplg_module_prepare()
473 skl_tplg_init_pipe_modules(struct skl_dev *skl, struct skl_pipe *pipe) in skl_tplg_init_pipe_modules() argument
481 list_for_each_entry(w_module, &pipe->w_list, node) { in skl_tplg_init_pipe_modules()
494 cfg_idx = mconfig->pipe->cur_config_idx; in skl_tplg_init_pipe_modules()
506 ret = skl_tplg_module_prepare(skl, pipe, w, mconfig); in skl_tplg_init_pipe_modules()
550 struct skl_pipe *pipe) in skl_tplg_unload_pipe_modules() argument
556 list_for_each_entry(w_module, &pipe->w_list, node) { in skl_tplg_unload_pipe_modules()
581 static bool skl_tplg_is_multi_fmt(struct skl_dev *skl, struct skl_pipe *pipe) in skl_tplg_is_multi_fmt() argument
587 if (pipe->nr_cfgs <= 1) in skl_tplg_is_multi_fmt()
590 if (pipe->conn_type != SKL_PIPE_CONN_TYPE_FE) in skl_tplg_is_multi_fmt()
593 for (i = 0; i < pipe->nr_cfgs - 1; i++) { in skl_tplg_is_multi_fmt()
594 if (pipe->direction == SNDRV_PCM_STREAM_PLAYBACK) { in skl_tplg_is_multi_fmt()
595 cur_fmt = &pipe->configs[i].out_fmt; in skl_tplg_is_multi_fmt()
596 next_fmt = &pipe->configs[i + 1].out_fmt; in skl_tplg_is_multi_fmt()
598 cur_fmt = &pipe->configs[i].in_fmt; in skl_tplg_is_multi_fmt()
599 next_fmt = &pipe->configs[i + 1].in_fmt; in skl_tplg_is_multi_fmt()
623 struct skl_pipe *pipe = mconfig->pipe; in skl_tplg_get_pipe_config() local
624 struct skl_pipe_params *params = pipe->p_params; in skl_tplg_get_pipe_config()
625 struct skl_path_config *pconfig = &pipe->configs[0]; in skl_tplg_get_pipe_config()
630 if (pipe->nr_cfgs == 0) { in skl_tplg_get_pipe_config()
631 pipe->cur_config_idx = 0; in skl_tplg_get_pipe_config()
635 if (skl_tplg_is_multi_fmt(skl, pipe)) { in skl_tplg_get_pipe_config()
636 pipe->cur_config_idx = pipe->pipe_config_idx; in skl_tplg_get_pipe_config()
637 pipe->memory_pages = pconfig->mem_pages; in skl_tplg_get_pipe_config()
639 pipe->cur_config_idx); in skl_tplg_get_pipe_config()
643 if (pipe->conn_type == SKL_PIPE_CONN_TYPE_NONE || pipe->nr_cfgs == 1) { in skl_tplg_get_pipe_config()
645 pipe->ppl_id); in skl_tplg_get_pipe_config()
646 pipe->cur_config_idx = 0; in skl_tplg_get_pipe_config()
647 pipe->memory_pages = pconfig->mem_pages; in skl_tplg_get_pipe_config()
652 if ((pipe->conn_type == SKL_PIPE_CONN_TYPE_FE && in skl_tplg_get_pipe_config()
653 pipe->direction == SNDRV_PCM_STREAM_PLAYBACK) || in skl_tplg_get_pipe_config()
654 (pipe->conn_type == SKL_PIPE_CONN_TYPE_BE && in skl_tplg_get_pipe_config()
655 pipe->direction == SNDRV_PCM_STREAM_CAPTURE)) in skl_tplg_get_pipe_config()
658 for (i = 0; i < pipe->nr_cfgs; i++) { in skl_tplg_get_pipe_config()
659 pconfig = &pipe->configs[i]; in skl_tplg_get_pipe_config()
667 pipe->cur_config_idx = i; in skl_tplg_get_pipe_config()
668 pipe->memory_pages = pconfig->mem_pages; in skl_tplg_get_pipe_config()
676 params->ch, params->s_freq, params->s_fmt, pipe->ppl_id); in skl_tplg_get_pipe_config()
693 struct skl_pipe *s_pipe = mconfig->pipe; in skl_tplg_mixer_dapm_pre_pmu_event()
705 ret = skl_create_pipeline(skl, mconfig->pipe); in skl_tplg_mixer_dapm_pre_pmu_event()
1032 if (sink_mconfig->pipe->state != SKL_PIPE_STARTED) { in skl_tplg_bind_sinks()
1033 if (sink_mconfig->pipe->conn_type != in skl_tplg_bind_sinks()
1036 sink_mconfig->pipe); in skl_tplg_bind_sinks()
1077 if (src_mconfig->pipe->conn_type != SKL_PIPE_CONN_TYPE_FE) in skl_tplg_pga_dapm_pre_pmu_event()
1078 return skl_run_pipe(skl, src_mconfig->pipe); in skl_tplg_pga_dapm_pre_pmu_event()
1149 if (src_mconfig->pipe->state != SKL_PIPE_STARTED) in skl_tplg_mixer_dapm_post_pmu_event()
1162 if (sink_mconfig->pipe->conn_type != SKL_PIPE_CONN_TYPE_FE) in skl_tplg_mixer_dapm_post_pmu_event()
1163 ret = skl_run_pipe(skl, sink_mconfig->pipe); in skl_tplg_mixer_dapm_post_pmu_event()
1184 ret = skl_stop_pipe(skl, sink_mconfig->pipe); in skl_tplg_mixer_dapm_pre_pmd_event()
1214 struct skl_pipe *s_pipe = mconfig->pipe; in skl_tplg_mixer_dapm_post_pmd_event()
1261 skl_delete_pipe(skl, mconfig->pipe); in skl_tplg_mixer_dapm_post_pmd_event()
1285 ret = skl_stop_pipe(skl, src_mconfig->pipe); in skl_tplg_pga_dapm_post_pmd_event()
1368 struct skl_pipe *pipe = NULL; in skl_tplg_multi_config_set_get() local
1381 if (ppl->pipe->ppl_id == *pipe_id) { in skl_tplg_multi_config_set_get()
1382 pipe = ppl->pipe; in skl_tplg_multi_config_set_get()
1386 if (!pipe) in skl_tplg_multi_config_set_get()
1390 pipe->pipe_config_idx = ucontrol->value.enumerated.item[0]; in skl_tplg_multi_config_set_get()
1392 ucontrol->value.enumerated.item[0] = pipe->pipe_config_idx; in skl_tplg_multi_config_set_get()
1597 struct skl_pipe *pipe = mcfg->pipe; in skl_tplg_fill_dma_id() local
1599 if (pipe->passthru) { in skl_tplg_fill_dma_id()
1602 pipe->p_params->link_dma_id = params->link_dma_id; in skl_tplg_fill_dma_id()
1603 pipe->p_params->link_index = params->link_index; in skl_tplg_fill_dma_id()
1604 pipe->p_params->link_bps = params->link_bps; in skl_tplg_fill_dma_id()
1608 pipe->p_params->host_dma_id = params->host_dma_id; in skl_tplg_fill_dma_id()
1609 pipe->p_params->host_bps = params->host_bps; in skl_tplg_fill_dma_id()
1615 pipe->p_params->s_fmt = params->s_fmt; in skl_tplg_fill_dma_id()
1616 pipe->p_params->ch = params->ch; in skl_tplg_fill_dma_id()
1617 pipe->p_params->s_freq = params->s_freq; in skl_tplg_fill_dma_id()
1618 pipe->p_params->stream = params->stream; in skl_tplg_fill_dma_id()
1619 pipe->p_params->format = params->format; in skl_tplg_fill_dma_id()
1622 memcpy(pipe->p_params, params, sizeof(*params)); in skl_tplg_fill_dma_id()
1639 u8 cfg_idx = mconfig->pipe->cur_config_idx; in skl_tplg_update_pipe_params()
1835 struct skl_pipe *pipe = mconfig->pipe; in skl_tplg_be_fill_pipe_params() local
1846 if (pipe->direction == SNDRV_PCM_STREAM_PLAYBACK) in skl_tplg_be_fill_pipe_params()
1847 pipe_fmt = &pipe->configs[pipe->pipe_config_idx].out_fmt; in skl_tplg_be_fill_pipe_params()
1849 pipe_fmt = &pipe->configs[pipe->pipe_config_idx].in_fmt; in skl_tplg_be_fill_pipe_params()
1854 pipe_fmt->freq, pipe->direction, in skl_tplg_be_fill_pipe_params()
1974 struct skl_pipe *pipe, u32 tkn, in skl_tplg_fill_pipe_cfg() argument
1982 fmt = &pipe->configs[conf_idx].in_fmt; in skl_tplg_fill_pipe_cfg()
1986 fmt = &pipe->configs[conf_idx].out_fmt; in skl_tplg_fill_pipe_cfg()
1994 config = &pipe->configs[conf_idx]; in skl_tplg_fill_pipe_cfg()
2022 struct skl_pipe *pipe, u32 tkn, in skl_tplg_fill_pipe_tkn() argument
2028 pipe->conn_type = tkn_val; in skl_tplg_fill_pipe_tkn()
2032 pipe->pipe_priority = tkn_val; in skl_tplg_fill_pipe_tkn()
2036 pipe->memory_pages = tkn_val; in skl_tplg_fill_pipe_tkn()
2040 pipe->lp_mode = tkn_val; in skl_tplg_fill_pipe_tkn()
2044 pipe->direction = tkn_val; in skl_tplg_fill_pipe_tkn()
2048 pipe->nr_cfgs = tkn_val; in skl_tplg_fill_pipe_tkn()
2068 struct skl_pipe *pipe; in skl_tplg_add_pipe() local
2072 if (ppl->pipe->ppl_id == tkn_elem->value) { in skl_tplg_add_pipe()
2073 mconfig->pipe = ppl->pipe; in skl_tplg_add_pipe()
2082 pipe = devm_kzalloc(dev, sizeof(*pipe), GFP_KERNEL); in skl_tplg_add_pipe()
2083 if (!pipe) in skl_tplg_add_pipe()
2090 pipe->p_params = params; in skl_tplg_add_pipe()
2091 pipe->ppl_id = tkn_elem->value; in skl_tplg_add_pipe()
2092 INIT_LIST_HEAD(&pipe->w_list); in skl_tplg_add_pipe()
2094 ppl->pipe = pipe; in skl_tplg_add_pipe()
2097 mconfig->pipe = pipe; in skl_tplg_add_pipe()
2098 mconfig->pipe->state = SKL_PIPE_INVALID; in skl_tplg_add_pipe()
2507 ret = skl_tplg_fill_pipe_tkn(dev, mconfig->pipe, in skl_tplg_get_token()
2519 if (mconfig->pipe->nr_cfgs) { in skl_tplg_get_token()
2520 ret = skl_tplg_fill_pipe_cfg(dev, mconfig->pipe, in skl_tplg_get_token()
2729 struct skl_pipe *pipe; in skl_tplg_add_pipe_v4() local
2733 if (ppl->pipe->ppl_id == dfw_pipe->pipe_id) { in skl_tplg_add_pipe_v4()
2734 mconfig->pipe = ppl->pipe; in skl_tplg_add_pipe_v4()
2743 pipe = devm_kzalloc(dev, sizeof(*pipe), GFP_KERNEL); in skl_tplg_add_pipe_v4()
2744 if (!pipe) in skl_tplg_add_pipe_v4()
2751 pipe->ppl_id = dfw_pipe->pipe_id; in skl_tplg_add_pipe_v4()
2752 pipe->memory_pages = dfw_pipe->memory_pages; in skl_tplg_add_pipe_v4()
2753 pipe->pipe_priority = dfw_pipe->pipe_priority; in skl_tplg_add_pipe_v4()
2754 pipe->conn_type = dfw_pipe->conn_type; in skl_tplg_add_pipe_v4()
2755 pipe->state = SKL_PIPE_INVALID; in skl_tplg_add_pipe_v4()
2756 pipe->p_params = params; in skl_tplg_add_pipe_v4()
2757 INIT_LIST_HEAD(&pipe->w_list); in skl_tplg_add_pipe_v4()
2759 ppl->pipe = pipe; in skl_tplg_add_pipe_v4()
2762 mconfig->pipe = pipe; in skl_tplg_add_pipe_v4()
2835 ret = skl_tplg_add_pipe_v4(dev, mconfig, skl, &dfw->pipe); in skl_tplg_get_pvt_data_v4()
2975 struct skl_pipe *pipe; in skl_clear_pin_config() local
2980 pipe = mconfig->pipe; in skl_clear_pin_config()
2989 pipe->state = SKL_PIPE_INVALID; in skl_clear_pin_config()
3700 struct skl_pipe *pipe; in skl_tplg_create_pipe_widget_list() local
3705 pipe = mcfg->pipe; in skl_tplg_create_pipe_widget_list()
3713 list_add_tail(&p_module->node, &pipe->w_list); in skl_tplg_create_pipe_widget_list()
3720 static void skl_tplg_set_pipe_type(struct skl_dev *skl, struct skl_pipe *pipe) in skl_tplg_set_pipe_type() argument
3727 list_for_each_entry(w_module, &pipe->w_list, node) { in skl_tplg_set_pipe_type()
3738 pipe->passthru = true; in skl_tplg_set_pipe_type()
3740 pipe->passthru = false; in skl_tplg_set_pipe_type()
3792 skl_tplg_set_pipe_type(skl, ppl->pipe); in skl_tplg_init()