Lines Matching refs:pipe
121 if (skl->resource.mem + mconfig->pipe->memory_pages > in skl_is_pipe_mem_avail()
144 skl->resource.mem += mconfig->pipe->memory_pages; in skl_tplg_alloc_pipe_mem()
203 skl->resource.mem -= mconfig->pipe->memory_pages; in skl_tplg_free_pipe_mem()
443 struct skl_pipe_params *params = m_cfg->pipe->p_params; in skl_tplg_update_module_params()
444 int p_conn_type = m_cfg->pipe->conn_type; in skl_tplg_update_module_params()
546 static int skl_tplg_module_prepare(struct skl_sst *ctx, struct skl_pipe *pipe, in skl_tplg_module_prepare() argument
551 return skl_pcm_host_dma_prepare(ctx->dev, pipe->p_params); in skl_tplg_module_prepare()
554 return skl_pcm_link_dma_prepare(ctx->dev, pipe->p_params); in skl_tplg_module_prepare()
566 skl_tplg_init_pipe_modules(struct skl *skl, struct skl_pipe *pipe) in skl_tplg_init_pipe_modules() argument
575 list_for_each_entry(w_module, &pipe->w_list, node) { in skl_tplg_init_pipe_modules()
588 cfg_idx = mconfig->pipe->cur_config_idx; in skl_tplg_init_pipe_modules()
606 ret = skl_tplg_module_prepare(ctx, pipe, w, mconfig); in skl_tplg_init_pipe_modules()
650 struct skl_pipe *pipe) in skl_tplg_unload_pipe_modules() argument
656 list_for_each_entry(w_module, &pipe->w_list, node) { in skl_tplg_unload_pipe_modules()
693 struct skl_pipe *pipe = mconfig->pipe; in skl_tplg_get_pipe_config() local
694 struct skl_pipe_params *params = pipe->p_params; in skl_tplg_get_pipe_config()
695 struct skl_path_config *pconfig = &pipe->configs[0]; in skl_tplg_get_pipe_config()
700 if (pipe->nr_cfgs == 0) { in skl_tplg_get_pipe_config()
701 pipe->cur_config_idx = 0; in skl_tplg_get_pipe_config()
705 if (pipe->conn_type == SKL_PIPE_CONN_TYPE_NONE) { in skl_tplg_get_pipe_config()
707 pipe->cur_config_idx = 0; in skl_tplg_get_pipe_config()
708 pipe->memory_pages = pconfig->mem_pages; in skl_tplg_get_pipe_config()
713 if ((pipe->conn_type == SKL_PIPE_CONN_TYPE_FE && in skl_tplg_get_pipe_config()
714 pipe->direction == SNDRV_PCM_STREAM_PLAYBACK) || in skl_tplg_get_pipe_config()
715 (pipe->conn_type == SKL_PIPE_CONN_TYPE_BE && in skl_tplg_get_pipe_config()
716 pipe->direction == SNDRV_PCM_STREAM_CAPTURE)) in skl_tplg_get_pipe_config()
719 for (i = 0; i < pipe->nr_cfgs; i++) { in skl_tplg_get_pipe_config()
720 pconfig = &pipe->configs[i]; in skl_tplg_get_pipe_config()
728 pipe->cur_config_idx = i; in skl_tplg_get_pipe_config()
729 pipe->memory_pages = pconfig->mem_pages; in skl_tplg_get_pipe_config()
737 params->ch, params->s_freq, params->s_fmt, pipe->ppl_id); in skl_tplg_get_pipe_config()
755 struct skl_pipe *s_pipe = mconfig->pipe; in skl_tplg_mixer_dapm_pre_pmu_event()
775 ret = skl_create_pipeline(ctx, mconfig->pipe); in skl_tplg_mixer_dapm_pre_pmu_event()
1023 if (sink_mconfig->pipe->state != SKL_PIPE_STARTED) { in skl_tplg_bind_sinks()
1024 if (sink_mconfig->pipe->conn_type != in skl_tplg_bind_sinks()
1027 sink_mconfig->pipe); in skl_tplg_bind_sinks()
1069 if (src_mconfig->pipe->conn_type != SKL_PIPE_CONN_TYPE_FE) in skl_tplg_pga_dapm_pre_pmu_event()
1070 return skl_run_pipe(ctx, src_mconfig->pipe); in skl_tplg_pga_dapm_pre_pmu_event()
1143 if (src_mconfig->pipe->state != SKL_PIPE_STARTED) in skl_tplg_mixer_dapm_post_pmu_event()
1156 if (sink_mconfig->pipe->conn_type != SKL_PIPE_CONN_TYPE_FE) in skl_tplg_mixer_dapm_post_pmu_event()
1157 ret = skl_run_pipe(ctx, sink_mconfig->pipe); in skl_tplg_mixer_dapm_post_pmu_event()
1179 ret = skl_stop_pipe(ctx, sink_mconfig->pipe); in skl_tplg_mixer_dapm_pre_pmd_event()
1212 struct skl_pipe *s_pipe = mconfig->pipe; in skl_tplg_mixer_dapm_post_pmd_event()
1264 skl_delete_pipe(ctx, mconfig->pipe); in skl_tplg_mixer_dapm_post_pmd_event()
1290 ret = skl_stop_pipe(ctx, src_mconfig->pipe); in skl_tplg_pga_dapm_post_pmd_event()
1549 struct skl_pipe *pipe = mcfg->pipe; in skl_tplg_fill_dma_id() local
1551 if (pipe->passthru) { in skl_tplg_fill_dma_id()
1554 pipe->p_params->link_dma_id = params->link_dma_id; in skl_tplg_fill_dma_id()
1555 pipe->p_params->link_index = params->link_index; in skl_tplg_fill_dma_id()
1556 pipe->p_params->link_bps = params->link_bps; in skl_tplg_fill_dma_id()
1560 pipe->p_params->host_dma_id = params->host_dma_id; in skl_tplg_fill_dma_id()
1561 pipe->p_params->host_bps = params->host_bps; in skl_tplg_fill_dma_id()
1567 pipe->p_params->s_fmt = params->s_fmt; in skl_tplg_fill_dma_id()
1568 pipe->p_params->ch = params->ch; in skl_tplg_fill_dma_id()
1569 pipe->p_params->s_freq = params->s_freq; in skl_tplg_fill_dma_id()
1570 pipe->p_params->stream = params->stream; in skl_tplg_fill_dma_id()
1571 pipe->p_params->format = params->format; in skl_tplg_fill_dma_id()
1574 memcpy(pipe->p_params, params, sizeof(*params)); in skl_tplg_fill_dma_id()
1591 u8 cfg_idx = mconfig->pipe->cur_config_idx; in skl_tplg_update_pipe_params()
1910 struct skl_pipe *pipe, u32 tkn, in skl_tplg_fill_pipe_cfg() argument
1918 fmt = &pipe->configs[conf_idx].in_fmt; in skl_tplg_fill_pipe_cfg()
1922 fmt = &pipe->configs[conf_idx].out_fmt; in skl_tplg_fill_pipe_cfg()
1930 config = &pipe->configs[conf_idx]; in skl_tplg_fill_pipe_cfg()
1958 struct skl_pipe *pipe, u32 tkn, in skl_tplg_fill_pipe_tkn() argument
1964 pipe->conn_type = tkn_val; in skl_tplg_fill_pipe_tkn()
1968 pipe->pipe_priority = tkn_val; in skl_tplg_fill_pipe_tkn()
1972 pipe->memory_pages = tkn_val; in skl_tplg_fill_pipe_tkn()
1976 pipe->lp_mode = tkn_val; in skl_tplg_fill_pipe_tkn()
1980 pipe->direction = tkn_val; in skl_tplg_fill_pipe_tkn()
1984 pipe->nr_cfgs = tkn_val; in skl_tplg_fill_pipe_tkn()
2004 struct skl_pipe *pipe; in skl_tplg_add_pipe() local
2008 if (ppl->pipe->ppl_id == tkn_elem->value) { in skl_tplg_add_pipe()
2009 mconfig->pipe = ppl->pipe; in skl_tplg_add_pipe()
2018 pipe = devm_kzalloc(dev, sizeof(*pipe), GFP_KERNEL); in skl_tplg_add_pipe()
2019 if (!pipe) in skl_tplg_add_pipe()
2026 pipe->p_params = params; in skl_tplg_add_pipe()
2027 pipe->ppl_id = tkn_elem->value; in skl_tplg_add_pipe()
2028 INIT_LIST_HEAD(&pipe->w_list); in skl_tplg_add_pipe()
2030 ppl->pipe = pipe; in skl_tplg_add_pipe()
2033 mconfig->pipe = pipe; in skl_tplg_add_pipe()
2034 mconfig->pipe->state = SKL_PIPE_INVALID; in skl_tplg_add_pipe()
2433 ret = skl_tplg_fill_pipe_tkn(dev, mconfig->pipe, in skl_tplg_get_token()
2445 if (mconfig->pipe->nr_cfgs) { in skl_tplg_get_token()
2446 ret = skl_tplg_fill_pipe_cfg(dev, mconfig->pipe, in skl_tplg_get_token()
2701 struct skl_pipe *pipe; in skl_clear_pin_config() local
2706 pipe = mconfig->pipe; in skl_clear_pin_config()
2715 pipe->state = SKL_PIPE_INVALID; in skl_clear_pin_config()
3348 struct skl_pipe *pipe; in skl_tplg_create_pipe_widget_list() local
3353 pipe = mcfg->pipe; in skl_tplg_create_pipe_widget_list()
3361 list_add_tail(&p_module->node, &pipe->w_list); in skl_tplg_create_pipe_widget_list()
3368 static void skl_tplg_set_pipe_type(struct skl *skl, struct skl_pipe *pipe) in skl_tplg_set_pipe_type() argument
3375 list_for_each_entry(w_module, &pipe->w_list, node) { in skl_tplg_set_pipe_type()
3386 pipe->passthru = true; in skl_tplg_set_pipe_type()
3388 pipe->passthru = false; in skl_tplg_set_pipe_type()
3439 skl_tplg_set_pipe_type(skl, ppl->pipe); in skl_tplg_init()