Lines Matching refs:scontrol
261 static int set_up_volume_table(struct snd_sof_control *scontrol, in set_up_volume_table() argument
264 struct snd_soc_component *scomp = scontrol->scomp; in set_up_volume_table()
269 return tplg_ops->control->set_up_volume_table(scontrol, tlv, size); in set_up_volume_table()
762 struct snd_sof_control *scontrol, in sof_control_load_volume() argument
786 scontrol->comp_id = sdev->next_comp_id; in sof_control_load_volume()
787 scontrol->min_volume_step = le32_to_cpu(mc->min); in sof_control_load_volume()
788 scontrol->max_volume_step = le32_to_cpu(mc->max); in sof_control_load_volume()
789 scontrol->num_channels = le32_to_cpu(mc->num_channels); in sof_control_load_volume()
791 scontrol->max = le32_to_cpu(mc->max); in sof_control_load_volume()
802 ret = set_up_volume_table(scontrol, tlv, le32_to_cpu(mc->max) + 1); in sof_control_load_volume()
810 ret = sof_parse_tokens(scomp, &scontrol->led_ctl, led_tokens, in sof_control_load_volume()
819 if (scontrol->led_ctl.use_led) { in sof_control_load_volume()
820 mask = scontrol->led_ctl.direction ? SNDRV_CTL_ELEM_ACCESS_MIC_LED : in sof_control_load_volume()
822 scontrol->access &= ~SNDRV_CTL_ELEM_ACCESS_LED_MASK; in sof_control_load_volume()
823 scontrol->access |= mask; in sof_control_load_volume()
830 scontrol->comp_id, scontrol->num_channels); in sof_control_load_volume()
836 kfree(scontrol->volume_table); in sof_control_load_volume()
842 struct snd_sof_control *scontrol, in sof_control_load_enum() argument
854 scontrol->comp_id = sdev->next_comp_id; in sof_control_load_enum()
855 scontrol->num_channels = le32_to_cpu(ec->num_channels); in sof_control_load_enum()
858 scontrol->comp_id, scontrol->num_channels, scontrol->comp_id); in sof_control_load_enum()
864 struct snd_sof_control *scontrol, in sof_control_load_bytes() argument
874 scontrol->max_size = sbe->max; in sof_control_load_bytes()
875 scontrol->comp_id = sdev->next_comp_id; in sof_control_load_bytes()
877 dev_dbg(scomp->dev, "tplg: load kcontrol index %d\n", scontrol->comp_id); in sof_control_load_bytes()
881 scontrol->priv = kmemdup(control->priv.data, priv_size, GFP_KERNEL); in sof_control_load_bytes()
882 if (!scontrol->priv) in sof_control_load_bytes()
885 scontrol->priv_size = priv_size; in sof_control_load_bytes()
901 struct snd_sof_control *scontrol; in sof_control_load() local
907 scontrol = kzalloc(sizeof(*scontrol), GFP_KERNEL); in sof_control_load()
908 if (!scontrol) in sof_control_load()
911 scontrol->name = kstrdup(hdr->name, GFP_KERNEL); in sof_control_load()
912 if (!scontrol->name) { in sof_control_load()
913 kfree(scontrol); in sof_control_load()
917 scontrol->scomp = scomp; in sof_control_load()
918 scontrol->access = kc->access; in sof_control_load()
919 scontrol->info_type = le32_to_cpu(hdr->ops.info); in sof_control_load()
920 scontrol->index = kc->index; in sof_control_load()
928 ret = sof_control_load_volume(scomp, scontrol, kc, hdr); in sof_control_load()
933 ret = sof_control_load_bytes(scomp, scontrol, kc, hdr); in sof_control_load()
939 ret = sof_control_load_enum(scomp, scontrol, kc, hdr); in sof_control_load()
951 kfree(scontrol->name); in sof_control_load()
952 kfree(scontrol); in sof_control_load()
957 kfree(scontrol->name); in sof_control_load()
958 kfree(scontrol); in sof_control_load()
962 scontrol->led_ctl.led_value = -1; in sof_control_load()
964 dobj->private = scontrol; in sof_control_load()
965 list_add(&scontrol->list, &sdev->kcontrol_list); in sof_control_load()
974 struct snd_sof_control *scontrol = dobj->private; in sof_control_unload() local
977 dev_dbg(scomp->dev, "tplg: unload control name : %s\n", scontrol->name); in sof_control_unload()
980 ret = ipc_tplg_ops->control_free(sdev, scontrol); in sof_control_unload()
982 dev_err(scomp->dev, "failed to free control: %s\n", scontrol->name); in sof_control_unload()
986 kfree(scontrol->ipc_control_data); in sof_control_unload()
987 kfree(scontrol->priv); in sof_control_unload()
988 kfree(scontrol->name); in sof_control_unload()
989 list_del(&scontrol->list); in sof_control_unload()
990 kfree(scontrol); in sof_control_unload()
1414 struct snd_sof_control *scontrol; in sof_widget_unload() local
1447 scontrol = sm->dobj.private; in sof_widget_unload()
1449 kfree(scontrol->volume_table); in sof_widget_unload()
1453 scontrol = se->dobj.private; in sof_widget_unload()
1457 scontrol = sbe->dobj.private; in sof_widget_unload()
1463 kfree(scontrol->ipc_control_data); in sof_widget_unload()
1464 list_del(&scontrol->list); in sof_widget_unload()
1465 kfree(scontrol->name); in sof_widget_unload()
1466 kfree(scontrol); in sof_widget_unload()
1907 struct snd_sof_control *scontrol; in sof_set_pipe_widget() local
1911 list_for_each_entry(scontrol, &sdev->kcontrol_list, list) in sof_set_pipe_widget()
1912 if (scontrol->comp_id == swidget->comp_id && in sof_set_pipe_widget()
1913 (scontrol->access & SNDRV_CTL_ELEM_ACCESS_VOLATILE)) { in sof_set_pipe_widget()
1935 struct snd_sof_control *scontrol; in sof_complete() local
1940 list_for_each_entry(scontrol, &sdev->kcontrol_list, list) { in sof_complete()
1941 ret = ipc_tplg_ops->control_setup(sdev, scontrol); in sof_complete()
1944 scontrol->name); in sof_complete()