Lines Matching refs:scontrol
323 static int set_up_volume_table(struct snd_sof_control *scontrol, in set_up_volume_table() argument
329 scontrol->volume_table = kcalloc(size, sizeof(u32), GFP_KERNEL); in set_up_volume_table()
330 if (!scontrol->volume_table) in set_up_volume_table()
335 scontrol->volume_table[j] = vol_compute_gain(j, tlv); in set_up_volume_table()
440 struct snd_sof_control *scontrol, in sof_control_load_volume() argument
457 scontrol->size = struct_size(scontrol->control_data, chanv, in sof_control_load_volume()
459 scontrol->control_data = kzalloc(scontrol->size, GFP_KERNEL); in sof_control_load_volume()
460 if (!scontrol->control_data) in sof_control_load_volume()
463 scontrol->comp_id = sdev->next_comp_id; in sof_control_load_volume()
464 scontrol->min_volume_step = le32_to_cpu(mc->min); in sof_control_load_volume()
465 scontrol->max_volume_step = le32_to_cpu(mc->max); in sof_control_load_volume()
466 scontrol->num_channels = le32_to_cpu(mc->num_channels); in sof_control_load_volume()
470 scontrol->cmd = SOF_CTRL_CMD_SWITCH; in sof_control_load_volume()
474 scontrol->cmd = SOF_CTRL_CMD_VOLUME; in sof_control_load_volume()
483 ret = set_up_volume_table(scontrol, tlv, le32_to_cpu(mc->max) + 1); in sof_control_load_volume()
490 cdata = scontrol->control_data; in sof_control_load_volume()
491 for (i = 0; i < scontrol->num_channels; i++) { in sof_control_load_volume()
498 scontrol->comp_id, scontrol->num_channels); in sof_control_load_volume()
504 struct snd_sof_control *scontrol, in sof_control_load_enum() argument
517 scontrol->size = struct_size(scontrol->control_data, chanv, in sof_control_load_enum()
519 scontrol->control_data = kzalloc(scontrol->size, GFP_KERNEL); in sof_control_load_enum()
520 if (!scontrol->control_data) in sof_control_load_enum()
523 scontrol->comp_id = sdev->next_comp_id; in sof_control_load_enum()
524 scontrol->num_channels = le32_to_cpu(ec->num_channels); in sof_control_load_enum()
526 scontrol->cmd = SOF_CTRL_CMD_ENUM; in sof_control_load_enum()
529 scontrol->comp_id, scontrol->num_channels, scontrol->comp_id); in sof_control_load_enum()
535 struct snd_sof_control *scontrol, in sof_control_load_bytes() argument
547 scontrol->size = sizeof(struct sof_ipc_ctrl_data) + in sof_control_load_bytes()
550 if (scontrol->size > max_size) { in sof_control_load_bytes()
552 scontrol->size, max_size); in sof_control_load_bytes()
556 scontrol->control_data = kzalloc(max_size, GFP_KERNEL); in sof_control_load_bytes()
557 cdata = scontrol->control_data; in sof_control_load_bytes()
558 if (!scontrol->control_data) in sof_control_load_bytes()
561 scontrol->comp_id = sdev->next_comp_id; in sof_control_load_bytes()
562 scontrol->cmd = SOF_CTRL_CMD_BINARY; in sof_control_load_bytes()
565 scontrol->comp_id, scontrol->num_channels); in sof_control_load_bytes()
1053 struct snd_sof_control *scontrol; in sof_control_load() local
1059 scontrol = kzalloc(sizeof(*scontrol), GFP_KERNEL); in sof_control_load()
1060 if (!scontrol) in sof_control_load()
1063 scontrol->sdev = sdev; in sof_control_load()
1071 ret = sof_control_load_volume(scomp, scontrol, kc, hdr); in sof_control_load()
1076 ret = sof_control_load_bytes(scomp, scontrol, kc, hdr); in sof_control_load()
1082 ret = sof_control_load_enum(scomp, scontrol, kc, hdr); in sof_control_load()
1094 kfree(scontrol); in sof_control_load()
1098 dobj->private = scontrol; in sof_control_load()
1099 list_add(&scontrol->list, &sdev->kcontrol_list); in sof_control_load()
1108 struct snd_sof_control *scontrol = dobj->private; in sof_control_unload() local
1114 fcomp.id = scontrol->comp_id; in sof_control_unload()
1116 kfree(scontrol->control_data); in sof_control_unload()
1117 list_del(&scontrol->list); in sof_control_unload()
1118 kfree(scontrol); in sof_control_unload()
1575 struct snd_sof_control *scontrol; in sof_widget_load_pga() local
1620 list_for_each_entry(scontrol, &sdev->kcontrol_list, list) { in sof_widget_load_pga()
1621 if (scontrol->comp_id == swidget->comp_id) { in sof_widget_load_pga()
1622 min_step = scontrol->min_volume_step; in sof_widget_load_pga()
1623 max_step = scontrol->max_volume_step; in sof_widget_load_pga()
1624 volume->min_value = scontrol->volume_table[min_step]; in sof_widget_load_pga()
1625 volume->max_value = scontrol->volume_table[max_step]; in sof_widget_load_pga()
1626 volume->channels = scontrol->num_channels; in sof_widget_load_pga()
2041 struct snd_sof_control *scontrol; in sof_widget_ready() local
2088 list_for_each_entry(scontrol, &sdev->kcontrol_list, list) { in sof_widget_ready()
2089 if (scontrol->comp_id == swidget->comp_id) { in sof_widget_ready()
2090 scontrol->readback_offset = reply.offset; in sof_widget_ready()
2185 struct snd_sof_control *scontrol; in sof_widget_unload() local
2232 scontrol = sm->dobj.private; in sof_widget_unload()
2234 kfree(scontrol->volume_table); in sof_widget_unload()
2238 scontrol = se->dobj.private; in sof_widget_unload()
2242 scontrol = sbe->dobj.private; in sof_widget_unload()
2248 kfree(scontrol->control_data); in sof_widget_unload()
2249 list_del(&scontrol->list); in sof_widget_unload()
2250 kfree(scontrol); in sof_widget_unload()
3116 struct snd_sof_control *scontrol = NULL; in snd_sof_cache_kcontrol_val() local
3120 list_for_each_entry(scontrol, &sdev->kcontrol_list, list) { in snd_sof_cache_kcontrol_val()
3123 switch (scontrol->cmd) { in snd_sof_cache_kcontrol_val()
3137 scontrol->cmd); in snd_sof_cache_kcontrol_val()
3140 ret = snd_sof_ipc_set_get_comp_data(sdev->ipc, scontrol, in snd_sof_cache_kcontrol_val()
3142 scontrol->cmd, in snd_sof_cache_kcontrol_val()
3147 scontrol->comp_id); in snd_sof_cache_kcontrol_val()