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()
1651 static int sof_ipc3_control_load_bytes(struct snd_sof_dev *sdev, struct snd_sof_control *scontrol) in sof_ipc3_control_load_bytes() argument
1657 if (scontrol->max_size < (sizeof(*cdata) + sizeof(struct sof_abi_hdr))) { in sof_ipc3_control_load_bytes()
1659 __func__, scontrol->max_size); in sof_ipc3_control_load_bytes()
1663 if (scontrol->priv_size > scontrol->max_size - sizeof(*cdata)) { in sof_ipc3_control_load_bytes()
1666 scontrol->priv_size, scontrol->max_size - sizeof(*cdata)); in sof_ipc3_control_load_bytes()
1670 scontrol->ipc_control_data = kzalloc(scontrol->max_size, GFP_KERNEL); in sof_ipc3_control_load_bytes()
1671 if (!scontrol->ipc_control_data) in sof_ipc3_control_load_bytes()
1674 scontrol->size = sizeof(struct sof_ipc_ctrl_data) + scontrol->priv_size; in sof_ipc3_control_load_bytes()
1676 cdata = scontrol->ipc_control_data; in sof_ipc3_control_load_bytes()
1678 cdata->index = scontrol->index; in sof_ipc3_control_load_bytes()
1680 if (scontrol->priv_size > 0) { in sof_ipc3_control_load_bytes()
1681 memcpy(cdata->data, scontrol->priv, scontrol->priv_size); in sof_ipc3_control_load_bytes()
1682 kfree(scontrol->priv); in sof_ipc3_control_load_bytes()
1683 scontrol->priv = NULL; in sof_ipc3_control_load_bytes()
1699 if (priv_size_check != scontrol->priv_size) { in sof_ipc3_control_load_bytes()
1701 priv_size_check, scontrol->priv_size); in sof_ipc3_control_load_bytes()
1709 kfree(scontrol->ipc_control_data); in sof_ipc3_control_load_bytes()
1710 scontrol->ipc_control_data = NULL; in sof_ipc3_control_load_bytes()
1714 static int sof_ipc3_control_load_volume(struct snd_sof_dev *sdev, struct snd_sof_control *scontrol) in sof_ipc3_control_load_volume() argument
1720 scontrol->size = struct_size(cdata, chanv, scontrol->num_channels); in sof_ipc3_control_load_volume()
1722 scontrol->ipc_control_data = kzalloc(scontrol->size, GFP_KERNEL); in sof_ipc3_control_load_volume()
1723 if (!scontrol->ipc_control_data) in sof_ipc3_control_load_volume()
1726 cdata = scontrol->ipc_control_data; in sof_ipc3_control_load_volume()
1727 cdata->index = scontrol->index; in sof_ipc3_control_load_volume()
1730 if (scontrol->max == 1) { in sof_ipc3_control_load_volume()
1738 for (i = 0; i < scontrol->num_channels; i++) { in sof_ipc3_control_load_volume()
1746 static int sof_ipc3_control_load_enum(struct snd_sof_dev *sdev, struct snd_sof_control *scontrol) in sof_ipc3_control_load_enum() argument
1751 scontrol->size = struct_size(cdata, chanv, scontrol->num_channels); in sof_ipc3_control_load_enum()
1753 scontrol->ipc_control_data = kzalloc(scontrol->size, GFP_KERNEL); in sof_ipc3_control_load_enum()
1754 if (!scontrol->ipc_control_data) in sof_ipc3_control_load_enum()
1757 cdata = scontrol->ipc_control_data; in sof_ipc3_control_load_enum()
1758 cdata->index = scontrol->index; in sof_ipc3_control_load_enum()
1764 static int sof_ipc3_control_setup(struct snd_sof_dev *sdev, struct snd_sof_control *scontrol) in sof_ipc3_control_setup() argument
1766 switch (scontrol->info_type) { in sof_ipc3_control_setup()
1770 return sof_ipc3_control_load_volume(sdev, scontrol); in sof_ipc3_control_setup()
1772 return sof_ipc3_control_load_bytes(sdev, scontrol); in sof_ipc3_control_setup()
1775 return sof_ipc3_control_load_enum(sdev, scontrol); in sof_ipc3_control_setup()
1783 static int sof_ipc3_control_free(struct snd_sof_dev *sdev, struct snd_sof_control *scontrol) in sof_ipc3_control_free() argument
1789 fcomp.id = scontrol->comp_id; in sof_ipc3_control_free()