summaryrefslogtreecommitdiff
path: root/sound/soc/intel/skylake/skl-topology.c
diff options
context:
space:
mode:
authorJeeja KP <jeeja.kp@intel.com>2015-10-22 20:52:42 +0300
committerMark Brown <broonie@kernel.org>2015-10-23 19:31:34 +0300
commit6abca1d71b62090821240ee2a4507c94ddd144e9 (patch)
tree5cc989b512ef945f10cc913508faff91b7795544 /sound/soc/intel/skylake/skl-topology.c
parentbfa764accdea017b1c557f43fa5f2c77a0dc3b15 (diff)
downloadlinux-6abca1d71b62090821240ee2a4507c94ddd144e9.tar.xz
ASoC: Intel: Skylake: Add support to topology for module static pin
Some module pin connection are static and defined by the topology. This patch adds support for static pin definitions in topology widget private data Signed-off-by: Jeeja KP <jeeja.kp@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/intel/skylake/skl-topology.c')
-rw-r--r--sound/soc/intel/skylake/skl-topology.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/sound/soc/intel/skylake/skl-topology.c b/sound/soc/intel/skylake/skl-topology.c
index 68e1b00ce7ed..a7854c8fc523 100644
--- a/sound/soc/intel/skylake/skl-topology.c
+++ b/sound/soc/intel/skylake/skl-topology.c
@@ -1034,18 +1034,17 @@ static const struct snd_soc_tplg_widget_events skl_tplg_widget_ops[] = {
* The topology binary passes the pin info for a module so initialize the pin
* info passed into module instance
*/
-static void skl_fill_module_pin_info(struct device *dev,
- struct skl_module_pin *m_pin,
- int max_pin)
+static void skl_fill_module_pin_info(struct skl_dfw_module_pin *dfw_pin,
+ struct skl_module_pin *m_pin,
+ bool is_dynamic, int max_pin)
{
int i;
for (i = 0; i < max_pin; i++) {
- m_pin[i].id.module_id = 0;
- m_pin[i].id.instance_id = 0;
+ m_pin[i].id.module_id = dfw_pin[i].module_id;
+ m_pin[i].id.instance_id = dfw_pin[i].instance_id;
m_pin[i].in_use = false;
- m_pin[i].is_dynamic = true;
- m_pin[i].pin_index = i;
+ m_pin[i].is_dynamic = is_dynamic;
}
}
@@ -1164,17 +1163,20 @@ static int skl_tplg_widget_load(struct snd_soc_component *cmpnt,
if (!mconfig->m_in_pin)
return -ENOMEM;
- mconfig->m_out_pin = devm_kzalloc(bus->dev,
- (mconfig->max_in_queue) *
- sizeof(*mconfig->m_out_pin),
- GFP_KERNEL);
+ mconfig->m_out_pin = devm_kzalloc(bus->dev, (mconfig->max_out_queue) *
+ sizeof(*mconfig->m_out_pin),
+ GFP_KERNEL);
if (!mconfig->m_out_pin)
return -ENOMEM;
- skl_fill_module_pin_info(bus->dev, mconfig->m_in_pin,
- mconfig->max_in_queue);
- skl_fill_module_pin_info(bus->dev, mconfig->m_out_pin,
- mconfig->max_out_queue);
+ skl_fill_module_pin_info(dfw_config->in_pin, mconfig->m_in_pin,
+ dfw_config->is_dynamic_in_pin,
+ mconfig->max_in_queue);
+
+ skl_fill_module_pin_info(dfw_config->out_pin, mconfig->m_out_pin,
+ dfw_config->is_dynamic_out_pin,
+ mconfig->max_out_queue);
+
if (mconfig->formats_config.caps_size == 0)
goto bind_event;