Lines Matching +full:input +full:- +full:value

1 // SPDX-License-Identifier: GPL-2.0-only
3 // Copyright(c) 2021-2022 Intel Corporation
22 return to_avs_dev(w->dapm->component->dev); in avs_get_kcontrol_adev()
31 spin_lock(&adev->path_list_lock); in avs_get_volume_module()
32 list_for_each_entry(path, &adev->path_list, node) { in avs_get_volume_module()
33 list_for_each_entry(ppl, &path->ppl_list, node) { in avs_get_volume_module()
34 list_for_each_entry(mod, &ppl->mod_list, node) { in avs_get_volume_module()
35 guid_t *type = &mod->template->cfg_ext->type; in avs_get_volume_module()
39 mod->template->ctl_id == id) { in avs_get_volume_module()
40 spin_unlock(&adev->path_list_lock); in avs_get_volume_module()
46 spin_unlock(&adev->path_list_lock); in avs_get_volume_module()
53 struct soc_mixer_control *mc = (struct soc_mixer_control *)kctl->private_value; in avs_control_volume_get()
54 struct avs_control_data *ctl_data = mc->dobj.private; in avs_control_volume_get()
64 guard(mutex)(&adev->path_mutex); in avs_control_volume_get()
66 active_module = avs_get_volume_module(adev, ctl_data->id); in avs_control_volume_get()
68 ret = avs_ipc_peakvol_get_volume(adev, active_module->module_id, in avs_control_volume_get()
69 active_module->instance_id, &dspvols, in avs_control_volume_get()
77 ctl_data->values[i] = dspvols[i].target_volume; in avs_control_volume_get()
81 memcpy(uctl->value.integer.value, ctl_data->values, sizeof(ctl_data->values)); in avs_control_volume_get()
91 long *input; in avs_control_volume_put() local
94 mc = (struct soc_mixer_control *)kctl->private_value; in avs_control_volume_put()
95 ctl_data = mc->dobj.private; in avs_control_volume_put()
97 input = uctl->value.integer.value; in avs_control_volume_put()
100 /* mc->num_channels can be 0. */ in avs_control_volume_put()
102 if (input[i] < mc->min || input[i] > mc->max) in avs_control_volume_put()
103 return -EINVAL; in avs_control_volume_put()
104 } while (++i < mc->num_channels); in avs_control_volume_put()
106 if (!memcmp(ctl_data->values, input, sizeof(ctl_data->values))) in avs_control_volume_put()
110 guard(mutex)(&adev->path_mutex); in avs_control_volume_put()
112 active_module = avs_get_volume_module(adev, ctl_data->id); in avs_control_volume_put()
114 ret = avs_peakvol_set_volume(adev, active_module, mc, input); in avs_control_volume_put()
119 memcpy(ctl_data->values, input, sizeof(ctl_data->values)); in avs_control_volume_put()
125 struct soc_mixer_control *mc = (struct soc_mixer_control *)kctl->private_value; in avs_control_volume_info()
127 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; in avs_control_volume_info()
128 uinfo->count = max_t(u32, 1, mc->num_channels); in avs_control_volume_info()
129 uinfo->value.integer.min = 0; in avs_control_volume_info()
130 uinfo->value.integer.max = mc->max; in avs_control_volume_info()
136 struct soc_mixer_control *mc = (struct soc_mixer_control *)kctl->private_value; in avs_control_mute_get()
137 struct avs_control_data *ctl_data = mc->dobj.private; in avs_control_mute_get()
147 guard(mutex)(&adev->path_mutex); in avs_control_mute_get()
149 active_module = avs_get_volume_module(adev, ctl_data->id); in avs_control_mute_get()
151 ret = avs_ipc_peakvol_get_mute(adev, active_module->module_id, in avs_control_mute_get()
152 active_module->instance_id, &dspmutes, in avs_control_mute_get()
160 ctl_data->values[i] = !dspmutes[i].mute; in avs_control_mute_get()
164 memcpy(uctl->value.integer.value, ctl_data->values, sizeof(ctl_data->values)); in avs_control_mute_get()
174 long *input; in avs_control_mute_put() local
177 mc = (struct soc_mixer_control *)kctl->private_value; in avs_control_mute_put()
178 ctl_data = mc->dobj.private; in avs_control_mute_put()
180 input = uctl->value.integer.value; in avs_control_mute_put()
183 /* mc->num_channels can be 0. */ in avs_control_mute_put()
185 if (input[i] < mc->min || input[i] > mc->max) in avs_control_mute_put()
186 return -EINVAL; in avs_control_mute_put()
187 } while (++i < mc->num_channels); in avs_control_mute_put()
189 if (!memcmp(ctl_data->values, input, sizeof(ctl_data->values))) in avs_control_mute_put()
193 guard(mutex)(&adev->path_mutex); in avs_control_mute_put()
195 active_module = avs_get_volume_module(adev, ctl_data->id); in avs_control_mute_put()
197 ret = avs_peakvol_set_mute(adev, active_module, mc, input); in avs_control_mute_put()
202 memcpy(ctl_data->values, input, sizeof(ctl_data->values)); in avs_control_mute_put()
208 struct soc_mixer_control *mc = (struct soc_mixer_control *)kctl->private_value; in avs_control_mute_info()
210 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; in avs_control_mute_info()
211 uinfo->count = max_t(u32, 1, mc->num_channels); in avs_control_mute_info()
212 uinfo->value.integer.min = 0; in avs_control_mute_info()
213 uinfo->value.integer.max = mc->max; in avs_control_mute_info()