aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/pci/hda/hda_codec.c82
-rw-r--r--sound/pci/hda/hda_local.h23
2 files changed, 0 insertions, 105 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 6580a367023e..db86b446743c 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -4844,88 +4844,6 @@ EXPORT_SYMBOL_GPL(snd_hda_check_amp_list_power);
4844#endif 4844#endif
4845 4845
4846/* 4846/*
4847 * Channel mode helper
4848 */
4849
4850/**
4851 * snd_hda_ch_mode_info - Info callback helper for the channel mode enum
4852 * @codec: the HDA codec
4853 * @uinfo: pointer to get/store the data
4854 * @chmode: channel mode array
4855 * @num_chmodes: channel mode array size
4856 */
4857int snd_hda_ch_mode_info(struct hda_codec *codec,
4858 struct snd_ctl_elem_info *uinfo,
4859 const struct hda_channel_mode *chmode,
4860 int num_chmodes)
4861{
4862 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
4863 uinfo->count = 1;
4864 uinfo->value.enumerated.items = num_chmodes;
4865 if (uinfo->value.enumerated.item >= num_chmodes)
4866 uinfo->value.enumerated.item = num_chmodes - 1;
4867 sprintf(uinfo->value.enumerated.name, "%dch",
4868 chmode[uinfo->value.enumerated.item].channels);
4869 return 0;
4870}
4871EXPORT_SYMBOL_GPL(snd_hda_ch_mode_info);
4872
4873/**
4874 * snd_hda_ch_mode_get - Get callback helper for the channel mode enum
4875 * @codec: the HDA codec
4876 * @ucontrol: pointer to get/store the data
4877 * @chmode: channel mode array
4878 * @num_chmodes: channel mode array size
4879 * @max_channels: max number of channels
4880 */
4881int snd_hda_ch_mode_get(struct hda_codec *codec,
4882 struct snd_ctl_elem_value *ucontrol,
4883 const struct hda_channel_mode *chmode,
4884 int num_chmodes,
4885 int max_channels)
4886{
4887 int i;
4888
4889 for (i = 0; i < num_chmodes; i++) {
4890 if (max_channels == chmode[i].channels) {
4891 ucontrol->value.enumerated.item[0] = i;
4892 break;
4893 }
4894 }
4895 return 0;
4896}
4897EXPORT_SYMBOL_GPL(snd_hda_ch_mode_get);
4898
4899/**
4900 * snd_hda_ch_mode_put - Put callback helper for the channel mode enum
4901 * @codec: the HDA codec
4902 * @ucontrol: pointer to get/store the data
4903 * @chmode: channel mode array
4904 * @num_chmodes: channel mode array size
4905 * @max_channelsp: pointer to store the max channels
4906 */
4907int snd_hda_ch_mode_put(struct hda_codec *codec,
4908 struct snd_ctl_elem_value *ucontrol,
4909 const struct hda_channel_mode *chmode,
4910 int num_chmodes,
4911 int *max_channelsp)
4912{
4913 unsigned int mode;
4914
4915 mode = ucontrol->value.enumerated.item[0];
4916 if (mode >= num_chmodes)
4917 return -EINVAL;
4918 if (*max_channelsp == chmode[mode].channels)
4919 return 0;
4920 /* change the current channel setting */
4921 *max_channelsp = chmode[mode].channels;
4922 if (chmode[mode].sequence)
4923 snd_hda_sequence_write_cache(codec, chmode[mode].sequence);
4924 return 1;
4925}
4926EXPORT_SYMBOL_GPL(snd_hda_ch_mode_put);
4927
4928/*
4929 * input MUX helper 4847 * input MUX helper
4930 */ 4848 */
4931 4849
diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h
index 2f7d9646a41d..8588813163e3 100644
--- a/sound/pci/hda/hda_local.h
+++ b/sound/pci/hda/hda_local.h
@@ -273,29 +273,6 @@ int snd_hda_add_imux_item(struct hda_codec *codec,
273 int index, int *type_index_ret); 273 int index, int *type_index_ret);
274 274
275/* 275/*
276 * Channel mode helper
277 */
278struct hda_channel_mode {
279 int channels;
280 const struct hda_verb *sequence;
281};
282
283int snd_hda_ch_mode_info(struct hda_codec *codec,
284 struct snd_ctl_elem_info *uinfo,
285 const struct hda_channel_mode *chmode,
286 int num_chmodes);
287int snd_hda_ch_mode_get(struct hda_codec *codec,
288 struct snd_ctl_elem_value *ucontrol,
289 const struct hda_channel_mode *chmode,
290 int num_chmodes,
291 int max_channels);
292int snd_hda_ch_mode_put(struct hda_codec *codec,
293 struct snd_ctl_elem_value *ucontrol,
294 const struct hda_channel_mode *chmode,
295 int num_chmodes,
296 int *max_channelsp);
297
298/*
299 * Multi-channel / digital-out PCM helper 276 * Multi-channel / digital-out PCM helper
300 */ 277 */
301 278