Lines Matching refs:scontrol
721 struct snd_sof_control *scontrol; in sof_ipc3_widget_setup_comp_pga() local
752 list_for_each_entry(scontrol, &sdev->kcontrol_list, list) { in sof_ipc3_widget_setup_comp_pga()
753 if (scontrol->comp_id == swidget->comp_id && in sof_ipc3_widget_setup_comp_pga()
754 scontrol->volume_table) { in sof_ipc3_widget_setup_comp_pga()
755 min_step = scontrol->min_volume_step; in sof_ipc3_widget_setup_comp_pga()
756 max_step = scontrol->max_volume_step; in sof_ipc3_widget_setup_comp_pga()
757 volume->min_value = scontrol->volume_table[min_step]; in sof_ipc3_widget_setup_comp_pga()
758 volume->max_value = scontrol->volume_table[max_step]; in sof_ipc3_widget_setup_comp_pga()
759 volume->channels = scontrol->num_channels; in sof_ipc3_widget_setup_comp_pga()
1650 static int sof_ipc3_control_load_bytes(struct snd_sof_dev *sdev, struct snd_sof_control *scontrol) in sof_ipc3_control_load_bytes() argument
1656 if (scontrol->max_size < (sizeof(*cdata) + sizeof(struct sof_abi_hdr))) { in sof_ipc3_control_load_bytes()
1658 __func__, scontrol->max_size); in sof_ipc3_control_load_bytes()
1662 if (scontrol->priv_size > scontrol->max_size - sizeof(*cdata)) { in sof_ipc3_control_load_bytes()
1665 scontrol->priv_size, scontrol->max_size - sizeof(*cdata)); in sof_ipc3_control_load_bytes()
1669 scontrol->ipc_control_data = kzalloc(scontrol->max_size, GFP_KERNEL); in sof_ipc3_control_load_bytes()
1670 if (!scontrol->ipc_control_data) in sof_ipc3_control_load_bytes()
1673 scontrol->size = sizeof(struct sof_ipc_ctrl_data) + scontrol->priv_size; in sof_ipc3_control_load_bytes()
1675 cdata = scontrol->ipc_control_data; in sof_ipc3_control_load_bytes()
1677 cdata->index = scontrol->index; in sof_ipc3_control_load_bytes()
1679 if (scontrol->priv_size > 0) { in sof_ipc3_control_load_bytes()
1680 memcpy(cdata->data, scontrol->priv, scontrol->priv_size); in sof_ipc3_control_load_bytes()
1681 kfree(scontrol->priv); in sof_ipc3_control_load_bytes()
1682 scontrol->priv = NULL; in sof_ipc3_control_load_bytes()
1698 if (priv_size_check != scontrol->priv_size) { in sof_ipc3_control_load_bytes()
1700 priv_size_check, scontrol->priv_size); in sof_ipc3_control_load_bytes()
1708 kfree(scontrol->ipc_control_data); in sof_ipc3_control_load_bytes()
1709 scontrol->ipc_control_data = NULL; in sof_ipc3_control_load_bytes()
1713 static int sof_ipc3_control_load_volume(struct snd_sof_dev *sdev, struct snd_sof_control *scontrol) in sof_ipc3_control_load_volume() argument
1719 scontrol->size = struct_size(cdata, chanv, scontrol->num_channels); in sof_ipc3_control_load_volume()
1721 scontrol->ipc_control_data = kzalloc(scontrol->size, GFP_KERNEL); in sof_ipc3_control_load_volume()
1722 if (!scontrol->ipc_control_data) in sof_ipc3_control_load_volume()
1725 cdata = scontrol->ipc_control_data; in sof_ipc3_control_load_volume()
1726 cdata->index = scontrol->index; in sof_ipc3_control_load_volume()
1729 if (scontrol->max == 1) { in sof_ipc3_control_load_volume()
1737 for (i = 0; i < scontrol->num_channels; i++) { in sof_ipc3_control_load_volume()
1745 static int sof_ipc3_control_load_enum(struct snd_sof_dev *sdev, struct snd_sof_control *scontrol) in sof_ipc3_control_load_enum() argument
1750 scontrol->size = struct_size(cdata, chanv, scontrol->num_channels); in sof_ipc3_control_load_enum()
1752 scontrol->ipc_control_data = kzalloc(scontrol->size, GFP_KERNEL); in sof_ipc3_control_load_enum()
1753 if (!scontrol->ipc_control_data) in sof_ipc3_control_load_enum()
1756 cdata = scontrol->ipc_control_data; in sof_ipc3_control_load_enum()
1757 cdata->index = scontrol->index; in sof_ipc3_control_load_enum()
1763 static int sof_ipc3_control_setup(struct snd_sof_dev *sdev, struct snd_sof_control *scontrol) in sof_ipc3_control_setup() argument
1765 switch (scontrol->info_type) { in sof_ipc3_control_setup()
1769 return sof_ipc3_control_load_volume(sdev, scontrol); in sof_ipc3_control_setup()
1771 return sof_ipc3_control_load_bytes(sdev, scontrol); in sof_ipc3_control_setup()
1774 return sof_ipc3_control_load_enum(sdev, scontrol); in sof_ipc3_control_setup()
1782 static int sof_ipc3_control_free(struct snd_sof_dev *sdev, struct snd_sof_control *scontrol) in sof_ipc3_control_free() argument
1788 fcomp.id = scontrol->comp_id; in sof_ipc3_control_free()