Lines Matching refs:scontrol
350 static int set_up_volume_table(struct snd_sof_control *scontrol, in set_up_volume_table() argument
356 scontrol->volume_table = kcalloc(size, sizeof(u32), GFP_KERNEL); in set_up_volume_table()
357 if (!scontrol->volume_table) in set_up_volume_table()
362 scontrol->volume_table[j] = vol_compute_gain(j, tlv); in set_up_volume_table()
1026 struct snd_sof_control *scontrol, in sof_control_load_volume() argument
1045 scontrol->size = struct_size(scontrol->control_data, chanv, in sof_control_load_volume()
1047 scontrol->control_data = kzalloc(scontrol->size, GFP_KERNEL); in sof_control_load_volume()
1048 if (!scontrol->control_data) { in sof_control_load_volume()
1053 scontrol->comp_id = sdev->next_comp_id; in sof_control_load_volume()
1054 scontrol->min_volume_step = le32_to_cpu(mc->min); in sof_control_load_volume()
1055 scontrol->max_volume_step = le32_to_cpu(mc->max); in sof_control_load_volume()
1056 scontrol->num_channels = le32_to_cpu(mc->num_channels); in sof_control_load_volume()
1060 scontrol->cmd = SOF_CTRL_CMD_SWITCH; in sof_control_load_volume()
1064 scontrol->cmd = SOF_CTRL_CMD_VOLUME; in sof_control_load_volume()
1074 ret = set_up_volume_table(scontrol, tlv, le32_to_cpu(mc->max) + 1); in sof_control_load_volume()
1081 cdata = scontrol->control_data; in sof_control_load_volume()
1082 for (i = 0; i < scontrol->num_channels; i++) { in sof_control_load_volume()
1089 ret = sof_parse_tokens(scomp, &scontrol->led_ctl, led_tokens, in sof_control_load_volume()
1099 scontrol->comp_id, scontrol->num_channels); in sof_control_load_volume()
1105 kfree(scontrol->volume_table); in sof_control_load_volume()
1107 kfree(scontrol->control_data); in sof_control_load_volume()
1113 struct snd_sof_control *scontrol, in sof_control_load_enum() argument
1126 scontrol->size = struct_size(scontrol->control_data, chanv, in sof_control_load_enum()
1128 scontrol->control_data = kzalloc(scontrol->size, GFP_KERNEL); in sof_control_load_enum()
1129 if (!scontrol->control_data) in sof_control_load_enum()
1132 scontrol->comp_id = sdev->next_comp_id; in sof_control_load_enum()
1133 scontrol->num_channels = le32_to_cpu(ec->num_channels); in sof_control_load_enum()
1135 scontrol->cmd = SOF_CTRL_CMD_ENUM; in sof_control_load_enum()
1138 scontrol->comp_id, scontrol->num_channels, scontrol->comp_id); in sof_control_load_enum()
1144 struct snd_sof_control *scontrol, in sof_control_load_bytes() argument
1171 scontrol->size = sizeof(struct sof_ipc_ctrl_data) + priv_size; in sof_control_load_bytes()
1173 scontrol->control_data = kzalloc(max_size, GFP_KERNEL); in sof_control_load_bytes()
1174 cdata = scontrol->control_data; in sof_control_load_bytes()
1175 if (!scontrol->control_data) { in sof_control_load_bytes()
1180 scontrol->comp_id = sdev->next_comp_id; in sof_control_load_bytes()
1181 scontrol->cmd = SOF_CTRL_CMD_BINARY; in sof_control_load_bytes()
1184 scontrol->comp_id, scontrol->num_channels); in sof_control_load_bytes()
1216 kfree(scontrol->control_data); in sof_control_load_bytes()
1231 struct snd_sof_control *scontrol; in sof_control_load() local
1237 scontrol = kzalloc(sizeof(*scontrol), GFP_KERNEL); in sof_control_load()
1238 if (!scontrol) in sof_control_load()
1241 scontrol->scomp = scomp; in sof_control_load()
1249 ret = sof_control_load_volume(scomp, scontrol, kc, hdr); in sof_control_load()
1254 ret = sof_control_load_bytes(scomp, scontrol, kc, hdr); in sof_control_load()
1260 ret = sof_control_load_enum(scomp, scontrol, kc, hdr); in sof_control_load()
1272 kfree(scontrol); in sof_control_load()
1277 kfree(scontrol); in sof_control_load()
1281 scontrol->led_ctl.led_value = -1; in sof_control_load()
1283 dobj->private = scontrol; in sof_control_load()
1284 list_add(&scontrol->list, &sdev->kcontrol_list); in sof_control_load()
1293 struct snd_sof_control *scontrol = dobj->private; in sof_control_unload() local
1299 fcomp.id = scontrol->comp_id; in sof_control_unload()
1301 kfree(scontrol->control_data); in sof_control_unload()
1302 list_del(&scontrol->list); in sof_control_unload()
1303 kfree(scontrol); in sof_control_unload()
1878 struct snd_sof_control *scontrol; in sof_widget_load_pga() local
1921 list_for_each_entry(scontrol, &sdev->kcontrol_list, list) { in sof_widget_load_pga()
1922 if (scontrol->comp_id == swidget->comp_id && in sof_widget_load_pga()
1923 scontrol->volume_table) { in sof_widget_load_pga()
1924 min_step = scontrol->min_volume_step; in sof_widget_load_pga()
1925 max_step = scontrol->max_volume_step; in sof_widget_load_pga()
1926 volume->min_value = scontrol->volume_table[min_step]; in sof_widget_load_pga()
1927 volume->max_value = scontrol->volume_table[max_step]; in sof_widget_load_pga()
1928 volume->channels = scontrol->num_channels; in sof_widget_load_pga()
2387 struct snd_sof_control *scontrol; in sof_widget_ready() local
2466 list_for_each_entry(scontrol, &sdev->kcontrol_list, list) { in sof_widget_ready()
2467 if (scontrol->comp_id == swidget->comp_id) { in sof_widget_ready()
2468 scontrol->readback_offset = reply.offset; in sof_widget_ready()
2563 struct snd_sof_control *scontrol; in sof_widget_unload() local
2619 scontrol = sm->dobj.private; in sof_widget_unload()
2621 kfree(scontrol->volume_table); in sof_widget_unload()
2625 scontrol = se->dobj.private; in sof_widget_unload()
2629 scontrol = sbe->dobj.private; in sof_widget_unload()
2635 kfree(scontrol->control_data); in sof_widget_unload()
2636 list_del(&scontrol->list); in sof_widget_unload()
2637 kfree(scontrol); in sof_widget_unload()
3545 struct snd_sof_control *scontrol = NULL; in snd_sof_cache_kcontrol_val() local
3549 list_for_each_entry(scontrol, &sdev->kcontrol_list, list) { in snd_sof_cache_kcontrol_val()
3552 switch (scontrol->cmd) { in snd_sof_cache_kcontrol_val()
3566 scontrol->cmd); in snd_sof_cache_kcontrol_val()
3569 ret = snd_sof_ipc_set_get_comp_data(scontrol, in snd_sof_cache_kcontrol_val()
3571 scontrol->cmd, in snd_sof_cache_kcontrol_val()
3576 scontrol->comp_id); in snd_sof_cache_kcontrol_val()