Lines Matching refs:mconfig
387 struct skl_module_cfg *mconfig = w->priv;
393 if (mconfig->formats_config[SKL_PARAM_SET].caps_size > 0 &&
394 mconfig->formats_config[SKL_PARAM_SET].set_params == SKL_PARAM_SET) {
395 sp_cfg = &mconfig->formats_config[SKL_PARAM_SET];
398 sp_cfg->param_id, mconfig);
412 bc->param_id, mconfig);
433 struct skl_module_cfg *mconfig = w->priv;
445 mconfig->formats_config[SKL_PARAM_INIT].caps =
447 mconfig->formats_config[SKL_PARAM_INIT].caps_size =
481 struct skl_module_cfg *mconfig;
488 mconfig = w->priv;
491 if (mconfig->id.module_id < 0) {
494 (guid_t *)mconfig->guid);
498 cfg_idx = mconfig->pipe->cur_config_idx;
499 mconfig->fmt_idx = mconfig->mod_cfg[cfg_idx].fmt_idx;
500 mconfig->res_idx = mconfig->mod_cfg[cfg_idx].res_idx;
502 if (mconfig->module->loadable && skl->dsp->fw_ops.load_mod) {
504 mconfig->id.module_id, mconfig->guid);
510 ret = skl_tplg_module_prepare(skl, pipe, w, mconfig);
522 uuid_mod = (guid_t *)mconfig->guid;
523 mconfig->id.pvt_id = skl_get_pvt_id(skl, uuid_mod,
524 mconfig->id.instance_id);
525 if (mconfig->id.pvt_id < 0)
529 ret = skl_dsp_get_core(skl->dsp, mconfig->core_id);
532 mconfig->core_id, ret);
536 ret = skl_init_module(skl, mconfig);
538 skl_put_pvt_id(skl, uuid_mod, &mconfig->id.pvt_id);
549 skl_dsp_put_core(skl->dsp, mconfig->core_id);
558 struct skl_module_cfg *mconfig;
562 mconfig = w_module->w->priv;
563 uuid_mod = (guid_t *)mconfig->guid;
565 if (mconfig->module->loadable && skl->dsp->fw_ops.unload_mod) {
567 mconfig->id.module_id);
571 skl_put_pvt_id(skl, uuid_mod, &mconfig->id.pvt_id);
573 ret = skl_dsp_put_core(skl->dsp, mconfig->core_id);
577 mconfig->core_id, ret);
599 skl_tplg_get_pipe_config(struct skl_dev *skl, struct skl_module_cfg *mconfig)
601 struct skl_pipe *pipe = mconfig->pipe;
657 struct skl_module_cfg *mconfig = w->priv;
659 struct skl_pipe *s_pipe = mconfig->pipe;
663 ret = skl_tplg_get_pipe_config(skl, mconfig);
671 ret = skl_create_pipeline(skl, mconfig->pipe);
749 struct skl_module_cfg *mconfig = w->priv;
770 if (mconfig->formats_config[SKL_PARAM_BIND].caps_size > 0 &&
771 mconfig->formats_config[SKL_PARAM_BIND].set_params ==
773 sp_cfg = &mconfig->formats_config[SKL_PARAM_BIND];
776 sp_cfg->param_id, mconfig);
793 mconfig);
796 bc->max, bc->param_id, mconfig);
867 struct skl_module_cfg *mconfig = w->priv;
875 if (mconfig->m_type != SKL_MODULE_TYPE_KPB)
1177 struct skl_module_cfg *mconfig = w->priv;
1180 struct skl_pipe *s_pipe = mconfig->pipe;
1227 skl_delete_pipe(skl, mconfig->pipe);
1394 struct skl_module_cfg *mconfig = w->priv;
1399 bc->size, bc->param_id, mconfig);
1426 struct skl_module_cfg *mconfig = w->priv;
1443 ac->param_id, mconfig);
1453 struct skl_module_cfg *mconfig = w->priv;
1457 if (mconfig->dmic_ch_type == ch_type)
1459 mconfig->dmic_ch_combo_index;
1466 static int skl_fill_mic_sel_params(struct skl_module_cfg *mconfig,
1470 &mconfig->formats_config[SKL_PARAM_INIT];
1492 struct skl_module_cfg *mconfig = w->priv;
1499 mconfig->dmic_ch_type = ch_type;
1500 mconfig->dmic_ch_combo_index = ucontrol->value.enumerated.item[0];
1503 if (mconfig->dmic_ch_combo_index == 0)
1507 index = mconfig->dmic_ch_combo_index - 1;
1511 if (mconfig->dmic_ch_combo_index > ARRAY_SIZE(mic_mono_list))
1518 if (mconfig->dmic_ch_combo_index > ARRAY_SIZE(mic_stereo_list))
1525 if (mconfig->dmic_ch_combo_index > ARRAY_SIZE(mic_trio_list))
1532 if (mconfig->dmic_ch_combo_index > ARRAY_SIZE(mic_quatro_list))
1552 return skl_fill_mic_sel_params(mconfig, &mic_cfg, w->dapm->dev);
1599 struct skl_module_cfg *mconfig,
1605 u8 cfg_idx = mconfig->pipe->cur_config_idx;
1607 res = &mconfig->module->resources[mconfig->res_idx];
1608 skl_tplg_fill_dma_id(mconfig, params);
1609 mconfig->fmt_idx = mconfig->mod_cfg[cfg_idx].fmt_idx;
1610 mconfig->res_idx = mconfig->mod_cfg[cfg_idx].res_idx;
1616 format = &mconfig->module->formats[mconfig->fmt_idx].inputs[0].fmt;
1618 format = &mconfig->module->formats[mconfig->fmt_idx].outputs[0].fmt;
1702 struct skl_module_cfg *mconfig = NULL;
1709 mconfig = p->source->priv;
1710 return mconfig;
1712 mconfig = skl_get_mconfig_pb_cpr(dai, p->source);
1713 if (mconfig)
1714 return mconfig;
1717 return mconfig;
1724 struct skl_module_cfg *mconfig = NULL;
1731 mconfig = p->sink->priv;
1732 return mconfig;
1734 mconfig = skl_get_mconfig_cap_cpr(dai, p->sink);
1735 if (mconfig)
1736 return mconfig;
1739 return mconfig;
1746 struct skl_module_cfg *mconfig;
1749 mconfig = skl_get_mconfig_pb_cpr(dai, w);
1751 mconfig = skl_get_mconfig_cap_cpr(dai, w);
1753 return mconfig;
1793 struct skl_module_cfg *mconfig,
1797 struct skl_pipe *pipe = mconfig->pipe;
1801 int link_type = skl_tplg_be_link_type(mconfig->dev_type);
1802 u8 dev_type = skl_tplg_be_dev_type(mconfig->dev_type);
1805 skl_tplg_fill_dma_id(mconfig, params);
1811 ret = skl_tplg_get_pipe_config(skl, mconfig);
1823 mconfig->vbus_id, link_type,
1828 mconfig->formats_config[SKL_PARAM_INIT].caps_size = cfg->size;
1829 mconfig->formats_config[SKL_PARAM_INIT].caps = (u32 *)&cfg->caps;
1832 mconfig->vbus_id, link_type, params->stream,
2033 struct skl_module_cfg *mconfig, struct skl_dev *skl,
2042 mconfig->pipe = ppl->pipe;
2066 mconfig->pipe = pipe;
2067 mconfig->pipe->state = SKL_PIPE_INVALID;
2122 struct skl_module_cfg *mconfig,
2131 m_pin = mconfig->m_in_pin;
2135 m_pin = mconfig->m_out_pin;
2341 struct skl_dev *skl, struct skl_module_cfg *mconfig)
2349 int res_idx = mconfig->res_idx;
2350 int fmt_idx = mconfig->fmt_idx;
2358 res = &mconfig->module->resources[res_idx];
2359 iface = &mconfig->module->formats[fmt_idx];
2367 mconfig->module->max_input_pins = tkn_elem->value;
2371 mconfig->module->max_output_pins = tkn_elem->value;
2375 if (!mconfig->m_in_pin)
2376 mconfig->m_in_pin =
2378 sizeof(*mconfig->m_in_pin),
2380 if (!mconfig->m_in_pin)
2383 skl_tplg_fill_pin_dynamic_val(mconfig->m_in_pin, MAX_IN_QUEUE,
2388 if (!mconfig->m_out_pin)
2389 mconfig->m_out_pin =
2391 sizeof(*mconfig->m_in_pin),
2393 if (!mconfig->m_out_pin)
2396 skl_tplg_fill_pin_dynamic_val(mconfig->m_out_pin, MAX_OUT_QUEUE,
2401 mconfig->time_slot = tkn_elem->value;
2405 mconfig->core_id = tkn_elem->value;
2409 mconfig->m_type = tkn_elem->value;
2413 mconfig->dev_type = tkn_elem->value;
2417 mconfig->hw_conn_type = tkn_elem->value;
2421 mconfig->id.instance_id =
2436 mconfig->vbus_id = tkn_elem->value;
2440 mconfig->params_fixup = tkn_elem->value;
2444 mconfig->converter = tkn_elem->value;
2448 mconfig->d0i3_caps = tkn_elem->value;
2453 mconfig, skl, tkn_elem);
2476 ret = skl_tplg_fill_pipe_tkn(dev, mconfig->pipe,
2488 if (mconfig->pipe->nr_cfgs) {
2489 ret = skl_tplg_fill_pipe_cfg(dev, mconfig->pipe,
2498 mconfig->mod_cfg[conf_idx].res_idx = tkn_elem->value;
2502 mconfig->mod_cfg[conf_idx].fmt_idx = tkn_elem->value;
2537 mconfig, tkn_elem, dir,
2548 mconfig->fmt_cfg_idx = tkn_elem->value;
2552 mconfig->formats_config[mconfig->fmt_cfg_idx].caps_size =
2558 mconfig->formats_config[mconfig->fmt_cfg_idx].set_params =
2563 mconfig->formats_config[mconfig->fmt_cfg_idx].param_id =
2568 mconfig->domain =
2574 mconfig->dma_buffer_size = tkn_elem->value;
2599 struct skl_module_cfg *mconfig, int block_size)
2622 ret = skl_tplg_get_uuid(dev, (guid_t *)mconfig->guid,
2627 mconfig);
2645 skl, mconfig);
2694 struct skl_module_cfg *mconfig, struct skl_dev *skl,
2703 mconfig->pipe = ppl->pipe;
2731 mconfig->pipe = pipe;
2772 struct skl_module_cfg *mconfig)
2777 int idx = mconfig->fmt_cfg_idx;
2781 ret = guid_parse(dfw->uuid, (guid_t *)mconfig->guid);
2784 mconfig->id.module_id = -1;
2785 mconfig->id.instance_id = dfw->instance_id;
2786 mconfig->module->resources[0].cpc = dfw->max_mcps / 1000;
2787 mconfig->module->resources[0].ibs = dfw->ibs;
2788 mconfig->module->resources[0].obs = dfw->obs;
2789 mconfig->core_id = dfw->core_id;
2790 mconfig->module->max_input_pins = dfw->max_in_queue;
2791 mconfig->module->max_output_pins = dfw->max_out_queue;
2792 mconfig->module->loadable = dfw->is_loadable;
2793 skl_tplg_fill_fmt_v4(mconfig->module->formats[0].inputs, dfw->in_fmt,
2795 skl_tplg_fill_fmt_v4(mconfig->module->formats[0].outputs, dfw->out_fmt,
2798 mconfig->params_fixup = dfw->params_fixup;
2799 mconfig->converter = dfw->converter;
2800 mconfig->m_type = dfw->module_type;
2801 mconfig->vbus_id = dfw->vbus_id;
2802 mconfig->module->resources[0].is_pages = dfw->mem_pages;
2804 ret = skl_tplg_add_pipe_v4(dev, mconfig, skl, &dfw->pipe);
2808 mconfig->dev_type = dfw->dev_type;
2809 mconfig->hw_conn_type = dfw->hw_conn_type;
2810 mconfig->time_slot = dfw->time_slot;
2811 mconfig->formats_config[idx].caps_size = dfw->caps.caps_size;
2813 mconfig->m_in_pin = devm_kcalloc(dev,
2814 MAX_IN_QUEUE, sizeof(*mconfig->m_in_pin),
2816 if (!mconfig->m_in_pin)
2819 mconfig->m_out_pin = devm_kcalloc(dev,
2820 MAX_OUT_QUEUE, sizeof(*mconfig->m_out_pin),
2822 if (!mconfig->m_out_pin)
2825 skl_fill_module_pin_info_v4(dfw->in_pin, mconfig->m_in_pin,
2827 mconfig->module->max_input_pins);
2828 skl_fill_module_pin_info_v4(dfw->out_pin, mconfig->m_out_pin,
2830 mconfig->module->max_output_pins);
2832 if (mconfig->formats_config[idx].caps_size) {
2833 mconfig->formats_config[idx].set_params = dfw->caps.set_params;
2834 mconfig->formats_config[idx].param_id = dfw->caps.param_id;
2835 mconfig->formats_config[idx].caps =
2836 devm_kzalloc(dev, mconfig->formats_config[idx].caps_size,
2838 if (!mconfig->formats_config[idx].caps)
2840 memcpy(mconfig->formats_config[idx].caps, dfw->caps.caps,
2848 struct skl_module_cfg *mconfig)
2850 int idx = mconfig->fmt_cfg_idx;
2852 if (mconfig->formats_config[idx].caps_size > 0) {
2853 mconfig->formats_config[idx].caps =
2854 devm_kzalloc(dev, mconfig->formats_config[idx].caps_size,
2856 if (!mconfig->formats_config[idx].caps)
2858 memcpy(mconfig->formats_config[idx].caps, data,
2859 mconfig->formats_config[idx].caps_size);
2862 return mconfig->formats_config[idx].caps_size;
2873 struct skl_module_cfg *mconfig)
2885 return skl_tplg_get_pvt_data_v4(tplg_w, skl, dev, mconfig);
2921 skl, mconfig, block_size);
2923 ret = skl_tplg_get_caps_data(dev, data, mconfig);
2940 struct skl_module_cfg *mconfig;
2945 mconfig = w->priv;
2946 pipe = mconfig->pipe;
2947 for (i = 0; i < mconfig->module->max_input_pins; i++) {
2948 mconfig->m_in_pin[i].in_use = false;
2949 mconfig->m_in_pin[i].pin_state = SKL_PIN_UNBIND;
2951 for (i = 0; i < mconfig->module->max_output_pins; i++) {
2952 mconfig->m_out_pin[i].in_use = false;
2953 mconfig->m_out_pin[i].pin_state = SKL_PIN_UNBIND;
2956 mconfig->m_state = SKL_MODULE_UNINIT;
2995 struct skl_module_cfg *mconfig;
3000 mconfig = devm_kzalloc(bus->dev, sizeof(*mconfig), GFP_KERNEL);
3002 if (!mconfig)
3006 mconfig->module = devm_kzalloc(bus->dev,
3007 sizeof(*mconfig->module), GFP_KERNEL);
3008 if (!mconfig->module)
3012 w->priv = mconfig;
3018 mconfig->id.module_id = -1;
3021 mconfig->fmt_cfg_idx = SKL_PARAM_INIT;
3024 ret = skl_tplg_get_pvt_data(tplg_w, skl, bus->dev, mconfig);
3028 skl_debug_init_module(skl->debugfs, w, mconfig);
3689 struct skl_module_cfg *mconfig;
3694 mconfig = w->priv;
3696 if (mconfig->dev_type == SKL_DEVICE_HDAHOST)
3698 else if (mconfig->dev_type != SKL_DEVICE_NONE)