Lines Matching refs:mconfig

383 	struct skl_module_cfg *mconfig = w->priv;
389 if (mconfig->formats_config.caps_size > 0 &&
390 mconfig->formats_config.set_params == SKL_PARAM_SET) {
391 sp_cfg = &mconfig->formats_config;
394 sp_cfg->param_id, mconfig);
408 bc->param_id, mconfig);
429 struct skl_module_cfg *mconfig = w->priv;
441 mconfig->formats_config.caps = (u32 *)bc->params;
442 mconfig->formats_config.caps_size = bc->size;
475 struct skl_module_cfg *mconfig;
482 mconfig = w->priv;
485 if (mconfig->id.module_id < 0) {
488 (guid_t *)mconfig->guid);
492 cfg_idx = mconfig->pipe->cur_config_idx;
493 mconfig->fmt_idx = mconfig->mod_cfg[cfg_idx].fmt_idx;
494 mconfig->res_idx = mconfig->mod_cfg[cfg_idx].res_idx;
496 if (mconfig->module->loadable && skl->dsp->fw_ops.load_mod) {
498 mconfig->id.module_id, mconfig->guid);
502 mconfig->m_state = SKL_MODULE_LOADED;
506 ret = skl_tplg_module_prepare(skl, pipe, w, mconfig);
518 uuid_mod = (guid_t *)mconfig->guid;
519 mconfig->id.pvt_id = skl_get_pvt_id(skl, uuid_mod,
520 mconfig->id.instance_id);
521 if (mconfig->id.pvt_id < 0)
525 ret = skl_dsp_get_core(skl->dsp, mconfig->core_id);
528 mconfig->core_id, ret);
532 ret = skl_init_module(skl, mconfig);
534 skl_put_pvt_id(skl, uuid_mod, &mconfig->id.pvt_id);
545 skl_dsp_put_core(skl->dsp, mconfig->core_id);
554 struct skl_module_cfg *mconfig;
558 mconfig = w_module->w->priv;
559 uuid_mod = (guid_t *)mconfig->guid;
561 if (mconfig->module->loadable && skl->dsp->fw_ops.unload_mod &&
562 mconfig->m_state > SKL_MODULE_UNINIT) {
564 mconfig->id.module_id);
568 skl_put_pvt_id(skl, uuid_mod, &mconfig->id.pvt_id);
570 ret = skl_dsp_put_core(skl->dsp, mconfig->core_id);
574 mconfig->core_id, ret);
622 skl_tplg_get_pipe_config(struct skl_dev *skl, struct skl_module_cfg *mconfig)
624 struct skl_pipe *pipe = mconfig->pipe;
691 struct skl_module_cfg *mconfig = w->priv;
693 struct skl_pipe *s_pipe = mconfig->pipe;
697 ret = skl_tplg_get_pipe_config(skl, mconfig);
705 ret = skl_create_pipeline(skl, mconfig->pipe);
783 struct skl_module_cfg *mconfig = w->priv;
804 if (mconfig->formats_config.caps_size > 0 &&
805 mconfig->formats_config.set_params == SKL_PARAM_BIND) {
806 sp_cfg = &mconfig->formats_config;
809 sp_cfg->param_id, mconfig);
826 mconfig);
829 bc->max, bc->param_id, mconfig);
900 struct skl_module_cfg *mconfig = w->priv;
908 if (mconfig->m_type != SKL_MODULE_TYPE_KPB)
1210 struct skl_module_cfg *mconfig = w->priv;
1213 struct skl_pipe *s_pipe = mconfig->pipe;
1260 skl_delete_pipe(skl, mconfig->pipe);
1427 struct skl_module_cfg *mconfig = w->priv;
1432 bc->size, bc->param_id, mconfig);
1459 struct skl_module_cfg *mconfig = w->priv;
1476 ac->param_id, mconfig);
1486 struct skl_module_cfg *mconfig = w->priv;
1490 if (mconfig->dmic_ch_type == ch_type)
1492 mconfig->dmic_ch_combo_index;
1499 static int skl_fill_mic_sel_params(struct skl_module_cfg *mconfig,
1502 struct skl_specific_cfg *sp_cfg = &mconfig->formats_config;
1524 struct skl_module_cfg *mconfig = w->priv;
1531 mconfig->dmic_ch_type = ch_type;
1532 mconfig->dmic_ch_combo_index = ucontrol->value.enumerated.item[0];
1535 if (mconfig->dmic_ch_combo_index == 0)
1539 index = mconfig->dmic_ch_combo_index - 1;
1543 if (mconfig->dmic_ch_combo_index > ARRAY_SIZE(mic_mono_list))
1550 if (mconfig->dmic_ch_combo_index > ARRAY_SIZE(mic_stereo_list))
1557 if (mconfig->dmic_ch_combo_index > ARRAY_SIZE(mic_trio_list))
1564 if (mconfig->dmic_ch_combo_index > ARRAY_SIZE(mic_quatro_list))
1584 return skl_fill_mic_sel_params(mconfig, &mic_cfg, w->dapm->dev);
1631 struct skl_module_cfg *mconfig,
1637 u8 cfg_idx = mconfig->pipe->cur_config_idx;
1639 res = &mconfig->module->resources[mconfig->res_idx];
1640 skl_tplg_fill_dma_id(mconfig, params);
1641 mconfig->fmt_idx = mconfig->mod_cfg[cfg_idx].fmt_idx;
1642 mconfig->res_idx = mconfig->mod_cfg[cfg_idx].res_idx;
1648 format = &mconfig->module->formats[mconfig->fmt_idx].inputs[0].fmt;
1650 format = &mconfig->module->formats[mconfig->fmt_idx].outputs[0].fmt;
1736 struct skl_module_cfg *mconfig = NULL;
1743 mconfig = p->source->priv;
1744 return mconfig;
1746 mconfig = skl_get_mconfig_pb_cpr(dai, p->source);
1747 if (mconfig)
1748 return mconfig;
1751 return mconfig;
1758 struct skl_module_cfg *mconfig = NULL;
1765 mconfig = p->sink->priv;
1766 return mconfig;
1768 mconfig = skl_get_mconfig_cap_cpr(dai, p->sink);
1769 if (mconfig)
1770 return mconfig;
1773 return mconfig;
1780 struct skl_module_cfg *mconfig;
1784 mconfig = skl_get_mconfig_pb_cpr(dai, w);
1787 mconfig = skl_get_mconfig_cap_cpr(dai, w);
1789 return mconfig;
1829 struct skl_module_cfg *mconfig,
1834 int link_type = skl_tplg_be_link_type(mconfig->dev_type);
1835 u8 dev_type = skl_tplg_be_dev_type(mconfig->dev_type);
1837 skl_tplg_fill_dma_id(mconfig, params);
1843 cfg = skl_get_ep_blob(skl, mconfig->vbus_id, link_type,
1848 mconfig->formats_config.caps_size = cfg->size;
1849 mconfig->formats_config.caps = (u32 *) &cfg->caps;
1852 mconfig->vbus_id, link_type,
2057 struct skl_module_cfg *mconfig, struct skl_dev *skl,
2066 mconfig->pipe = ppl->pipe;
2090 mconfig->pipe = pipe;
2091 mconfig->pipe->state = SKL_PIPE_INVALID;
2146 struct skl_module_cfg *mconfig,
2155 m_pin = mconfig->m_in_pin;
2159 m_pin = mconfig->m_out_pin;
2365 struct skl_dev *skl, struct skl_module_cfg *mconfig)
2373 int res_idx = mconfig->res_idx;
2374 int fmt_idx = mconfig->fmt_idx;
2382 res = &mconfig->module->resources[res_idx];
2383 iface = &mconfig->module->formats[fmt_idx];
2391 mconfig->module->max_input_pins = tkn_elem->value;
2395 mconfig->module->max_output_pins = tkn_elem->value;
2399 if (!mconfig->m_in_pin)
2400 mconfig->m_in_pin =
2402 sizeof(*mconfig->m_in_pin),
2404 if (!mconfig->m_in_pin)
2407 skl_tplg_fill_pin_dynamic_val(mconfig->m_in_pin, MAX_IN_QUEUE,
2412 if (!mconfig->m_out_pin)
2413 mconfig->m_out_pin =
2415 sizeof(*mconfig->m_in_pin),
2417 if (!mconfig->m_out_pin)
2420 skl_tplg_fill_pin_dynamic_val(mconfig->m_out_pin, MAX_OUT_QUEUE,
2425 mconfig->time_slot = tkn_elem->value;
2429 mconfig->core_id = tkn_elem->value;
2433 mconfig->m_type = tkn_elem->value;
2437 mconfig->dev_type = tkn_elem->value;
2441 mconfig->hw_conn_type = tkn_elem->value;
2445 mconfig->id.instance_id =
2460 mconfig->vbus_id = tkn_elem->value;
2464 mconfig->params_fixup = tkn_elem->value;
2468 mconfig->converter = tkn_elem->value;
2472 mconfig->d0i3_caps = tkn_elem->value;
2477 mconfig, skl, tkn_elem);
2500 ret = skl_tplg_fill_pipe_tkn(dev, mconfig->pipe,
2512 if (mconfig->pipe->nr_cfgs) {
2513 ret = skl_tplg_fill_pipe_cfg(dev, mconfig->pipe,
2522 mconfig->mod_cfg[conf_idx].res_idx = tkn_elem->value;
2526 mconfig->mod_cfg[conf_idx].fmt_idx = tkn_elem->value;
2561 mconfig, tkn_elem, dir,
2569 mconfig->formats_config.caps_size =
2575 mconfig->formats_config.set_params =
2580 mconfig->formats_config.param_id =
2585 mconfig->domain =
2591 mconfig->dma_buffer_size = tkn_elem->value;
2616 struct skl_module_cfg *mconfig, int block_size)
2639 ret = skl_tplg_get_uuid(dev, (guid_t *)mconfig->guid,
2644 mconfig);
2662 skl, mconfig);
2711 struct skl_module_cfg *mconfig, struct skl_dev *skl,
2720 mconfig->pipe = ppl->pipe;
2748 mconfig->pipe = pipe;
2789 struct skl_module_cfg *mconfig)
2797 ret = guid_parse(dfw->uuid, (guid_t *)mconfig->guid);
2800 mconfig->id.module_id = -1;
2801 mconfig->id.instance_id = dfw->instance_id;
2802 mconfig->module->resources[0].cpc = dfw->max_mcps / 1000;
2803 mconfig->module->resources[0].ibs = dfw->ibs;
2804 mconfig->module->resources[0].obs = dfw->obs;
2805 mconfig->core_id = dfw->core_id;
2806 mconfig->module->max_input_pins = dfw->max_in_queue;
2807 mconfig->module->max_output_pins = dfw->max_out_queue;
2808 mconfig->module->loadable = dfw->is_loadable;
2809 skl_tplg_fill_fmt_v4(mconfig->module->formats[0].inputs, dfw->in_fmt,
2811 skl_tplg_fill_fmt_v4(mconfig->module->formats[0].outputs, dfw->out_fmt,
2814 mconfig->params_fixup = dfw->params_fixup;
2815 mconfig->converter = dfw->converter;
2816 mconfig->m_type = dfw->module_type;
2817 mconfig->vbus_id = dfw->vbus_id;
2818 mconfig->module->resources[0].is_pages = dfw->mem_pages;
2820 ret = skl_tplg_add_pipe_v4(dev, mconfig, skl, &dfw->pipe);
2824 mconfig->dev_type = dfw->dev_type;
2825 mconfig->hw_conn_type = dfw->hw_conn_type;
2826 mconfig->time_slot = dfw->time_slot;
2827 mconfig->formats_config.caps_size = dfw->caps.caps_size;
2829 mconfig->m_in_pin = devm_kcalloc(dev,
2830 MAX_IN_QUEUE, sizeof(*mconfig->m_in_pin),
2832 if (!mconfig->m_in_pin)
2835 mconfig->m_out_pin = devm_kcalloc(dev,
2836 MAX_OUT_QUEUE, sizeof(*mconfig->m_out_pin),
2838 if (!mconfig->m_out_pin)
2841 skl_fill_module_pin_info_v4(dfw->in_pin, mconfig->m_in_pin,
2843 mconfig->module->max_input_pins);
2844 skl_fill_module_pin_info_v4(dfw->out_pin, mconfig->m_out_pin,
2846 mconfig->module->max_output_pins);
2848 if (mconfig->formats_config.caps_size) {
2849 mconfig->formats_config.set_params = dfw->caps.set_params;
2850 mconfig->formats_config.param_id = dfw->caps.param_id;
2851 mconfig->formats_config.caps =
2852 devm_kzalloc(dev, mconfig->formats_config.caps_size,
2854 if (!mconfig->formats_config.caps)
2856 memcpy(mconfig->formats_config.caps, dfw->caps.caps,
2871 struct skl_module_cfg *mconfig)
2883 return skl_tplg_get_pvt_data_v4(tplg_w, skl, dev, mconfig);
2922 skl, mconfig, block_size);
2929 if (mconfig->formats_config.caps_size > 0)
2930 memcpy(mconfig->formats_config.caps, data,
2931 mconfig->formats_config.caps_size);
2933 ret = mconfig->formats_config.caps_size;
2945 struct skl_module_cfg *mconfig;
2950 mconfig = w->priv;
2951 pipe = mconfig->pipe;
2952 for (i = 0; i < mconfig->module->max_input_pins; i++) {
2953 mconfig->m_in_pin[i].in_use = false;
2954 mconfig->m_in_pin[i].pin_state = SKL_PIN_UNBIND;
2956 for (i = 0; i < mconfig->module->max_output_pins; i++) {
2957 mconfig->m_out_pin[i].in_use = false;
2958 mconfig->m_out_pin[i].pin_state = SKL_PIN_UNBIND;
2961 mconfig->m_state = SKL_MODULE_UNINIT;
3000 struct skl_module_cfg *mconfig;
3005 mconfig = devm_kzalloc(bus->dev, sizeof(*mconfig), GFP_KERNEL);
3007 if (!mconfig)
3011 mconfig->module = devm_kzalloc(bus->dev,
3012 sizeof(*mconfig->module), GFP_KERNEL);
3013 if (!mconfig->module)
3017 w->priv = mconfig;
3023 mconfig->id.module_id = -1;
3026 ret = skl_tplg_get_pvt_data(tplg_w, skl, bus->dev, mconfig);
3030 skl_debug_init_module(skl->debugfs, w, mconfig);
3687 struct skl_module_cfg *mconfig;
3692 mconfig = w->priv;
3694 if (mconfig->dev_type == SKL_DEVICE_HDAHOST)
3696 else if (mconfig->dev_type != SKL_DEVICE_NONE)