Lines Matching refs:scontrol

746 	struct snd_sof_control *scontrol;
777 list_for_each_entry(scontrol, &sdev->kcontrol_list, list) {
778 if (scontrol->comp_id == swidget->comp_id &&
779 scontrol->volume_table) {
780 min_step = scontrol->min_volume_step;
781 max_step = scontrol->max_volume_step;
782 volume->min_value = scontrol->volume_table[min_step];
783 volume->max_value = scontrol->volume_table[max_step];
784 volume->channels = scontrol->num_channels;
833 dev_err(scomp->dev, "No scontrol for widget %s\n", widget->name);
1743 static int sof_ipc3_control_load_bytes(struct snd_sof_dev *sdev, struct snd_sof_control *scontrol)
1749 if (scontrol->max_size < (sizeof(*cdata) + sizeof(struct sof_abi_hdr))) {
1751 __func__, scontrol->max_size);
1755 if (scontrol->priv_size > scontrol->max_size - sizeof(*cdata)) {
1758 scontrol->priv_size, scontrol->max_size - sizeof(*cdata));
1762 scontrol->ipc_control_data = kzalloc(scontrol->max_size, GFP_KERNEL);
1763 if (!scontrol->ipc_control_data)
1766 scontrol->size = sizeof(struct sof_ipc_ctrl_data) + scontrol->priv_size;
1768 cdata = scontrol->ipc_control_data;
1770 cdata->index = scontrol->index;
1772 if (scontrol->priv_size > 0) {
1773 memcpy(cdata->data, scontrol->priv, scontrol->priv_size);
1774 kfree(scontrol->priv);
1775 scontrol->priv = NULL;
1791 if (priv_size_check != scontrol->priv_size) {
1793 priv_size_check, scontrol->priv_size);
1801 kfree(scontrol->ipc_control_data);
1802 scontrol->ipc_control_data = NULL;
1806 static int sof_ipc3_control_load_volume(struct snd_sof_dev *sdev, struct snd_sof_control *scontrol)
1812 scontrol->size = struct_size(cdata, chanv, scontrol->num_channels);
1814 scontrol->ipc_control_data = kzalloc(scontrol->size, GFP_KERNEL);
1815 if (!scontrol->ipc_control_data)
1818 cdata = scontrol->ipc_control_data;
1819 cdata->index = scontrol->index;
1822 if (scontrol->max == 1) {
1830 for (i = 0; i < scontrol->num_channels; i++) {
1838 static int sof_ipc3_control_load_enum(struct snd_sof_dev *sdev, struct snd_sof_control *scontrol)
1843 scontrol->size = struct_size(cdata, chanv, scontrol->num_channels);
1845 scontrol->ipc_control_data = kzalloc(scontrol->size, GFP_KERNEL);
1846 if (!scontrol->ipc_control_data)
1849 cdata = scontrol->ipc_control_data;
1850 cdata->index = scontrol->index;
1856 static int sof_ipc3_control_setup(struct snd_sof_dev *sdev, struct snd_sof_control *scontrol)
1858 switch (scontrol->info_type) {
1862 return sof_ipc3_control_load_volume(sdev, scontrol);
1864 return sof_ipc3_control_load_bytes(sdev, scontrol);
1867 return sof_ipc3_control_load_enum(sdev, scontrol);
1875 static int sof_ipc3_control_free(struct snd_sof_dev *sdev, struct snd_sof_control *scontrol)
1881 fcomp.id = scontrol->comp_id;