Lines Matching refs:scontrol
375 struct snd_sof_control *scontrol; in sof_ipc4_widget_update_kcontrol_module_id() local
378 list_for_each_entry(scontrol, &sdev->kcontrol_list, list) { in sof_ipc4_widget_update_kcontrol_module_id()
379 if (scontrol->comp_id == swidget->comp_id) { in sof_ipc4_widget_update_kcontrol_module_id()
380 struct sof_ipc4_control_data *cdata = scontrol->ipc_control_data; in sof_ipc4_widget_update_kcontrol_module_id()
2084 static int sof_ipc4_control_load_volume(struct snd_sof_dev *sdev, struct snd_sof_control *scontrol) in sof_ipc4_control_load_volume() argument
2090 scontrol->size = struct_size(control_data, chanv, scontrol->num_channels); in sof_ipc4_control_load_volume()
2093 scontrol->ipc_control_data = kzalloc(scontrol->size, GFP_KERNEL); in sof_ipc4_control_load_volume()
2094 if (!scontrol->ipc_control_data) in sof_ipc4_control_load_volume()
2097 control_data = scontrol->ipc_control_data; in sof_ipc4_control_load_volume()
2098 control_data->index = scontrol->index; in sof_ipc4_control_load_volume()
2108 for (i = 0; i < scontrol->num_channels; i++) { in sof_ipc4_control_load_volume()
2116 static int sof_ipc4_control_load_bytes(struct snd_sof_dev *sdev, struct snd_sof_control *scontrol) in sof_ipc4_control_load_bytes() argument
2122 if (scontrol->max_size < (sizeof(*control_data) + sizeof(struct sof_abi_hdr))) { in sof_ipc4_control_load_bytes()
2124 scontrol->name, scontrol->max_size); in sof_ipc4_control_load_bytes()
2128 if (scontrol->priv_size > scontrol->max_size - sizeof(*control_data)) { in sof_ipc4_control_load_bytes()
2130 scontrol->name, scontrol->priv_size, in sof_ipc4_control_load_bytes()
2131 scontrol->max_size - sizeof(*control_data)); in sof_ipc4_control_load_bytes()
2135 scontrol->size = sizeof(struct sof_ipc4_control_data) + scontrol->priv_size; in sof_ipc4_control_load_bytes()
2137 scontrol->ipc_control_data = kzalloc(scontrol->max_size, GFP_KERNEL); in sof_ipc4_control_load_bytes()
2138 if (!scontrol->ipc_control_data) in sof_ipc4_control_load_bytes()
2141 control_data = scontrol->ipc_control_data; in sof_ipc4_control_load_bytes()
2142 control_data->index = scontrol->index; in sof_ipc4_control_load_bytes()
2143 if (scontrol->priv_size > 0) { in sof_ipc4_control_load_bytes()
2144 memcpy(control_data->data, scontrol->priv, scontrol->priv_size); in sof_ipc4_control_load_bytes()
2145 kfree(scontrol->priv); in sof_ipc4_control_load_bytes()
2146 scontrol->priv = NULL; in sof_ipc4_control_load_bytes()
2150 control_data->data->magic, scontrol->name); in sof_ipc4_control_load_bytes()
2158 scontrol->priv_size) { in sof_ipc4_control_load_bytes()
2160 scontrol->name, in sof_ipc4_control_load_bytes()
2162 scontrol->priv_size); in sof_ipc4_control_load_bytes()
2176 kfree(scontrol->ipc_control_data); in sof_ipc4_control_load_bytes()
2177 scontrol->ipc_control_data = NULL; in sof_ipc4_control_load_bytes()
2181 static int sof_ipc4_control_setup(struct snd_sof_dev *sdev, struct snd_sof_control *scontrol) in sof_ipc4_control_setup() argument
2183 switch (scontrol->info_type) { in sof_ipc4_control_setup()
2187 return sof_ipc4_control_load_volume(sdev, scontrol); in sof_ipc4_control_setup()
2189 return sof_ipc4_control_load_bytes(sdev, scontrol); in sof_ipc4_control_setup()