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