forked from luck/tmp_suning_uos_patched
ASoC: Use snd_soc_info_enum_double() for SOC_ENUM_EXT controls
snd_soc_info_enum_ext() and snd_soc_info_enum_double() are almost identical. The only difference is that snd_soc_info_enum_double() is also able to handle stereo controls. Using snd_soc_info_enum double() instead of snd_soc_info_enum_ext() for the SOC_ENUM_EXT control's info callback allows us to remove snd_soc_info_enum_ext(). Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
parent
c77f872e66
commit
9a953e6f27
|
@ -234,7 +234,7 @@
|
||||||
.private_value = xdata }
|
.private_value = xdata }
|
||||||
#define SOC_ENUM_EXT(xname, xenum, xhandler_get, xhandler_put) \
|
#define SOC_ENUM_EXT(xname, xenum, xhandler_get, xhandler_put) \
|
||||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
|
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
|
||||||
.info = snd_soc_info_enum_ext, \
|
.info = snd_soc_info_enum_double, \
|
||||||
.get = xhandler_get, .put = xhandler_put, \
|
.get = xhandler_get, .put = xhandler_put, \
|
||||||
.private_value = (unsigned long)&xenum }
|
.private_value = (unsigned long)&xenum }
|
||||||
|
|
||||||
|
@ -485,8 +485,6 @@ int snd_soc_add_dai_controls(struct snd_soc_dai *dai,
|
||||||
const struct snd_kcontrol_new *controls, int num_controls);
|
const struct snd_kcontrol_new *controls, int num_controls);
|
||||||
int snd_soc_info_enum_double(struct snd_kcontrol *kcontrol,
|
int snd_soc_info_enum_double(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_ctl_elem_info *uinfo);
|
struct snd_ctl_elem_info *uinfo);
|
||||||
int snd_soc_info_enum_ext(struct snd_kcontrol *kcontrol,
|
|
||||||
struct snd_ctl_elem_info *uinfo);
|
|
||||||
int snd_soc_get_enum_double(struct snd_kcontrol *kcontrol,
|
int snd_soc_get_enum_double(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_ctl_elem_value *ucontrol);
|
struct snd_ctl_elem_value *ucontrol);
|
||||||
int snd_soc_put_enum_double(struct snd_kcontrol *kcontrol,
|
int snd_soc_put_enum_double(struct snd_kcontrol *kcontrol,
|
||||||
|
|
|
@ -2550,33 +2550,6 @@ int snd_soc_put_value_enum_double(struct snd_kcontrol *kcontrol,
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(snd_soc_put_value_enum_double);
|
EXPORT_SYMBOL_GPL(snd_soc_put_value_enum_double);
|
||||||
|
|
||||||
/**
|
|
||||||
* snd_soc_info_enum_ext - external enumerated single mixer info callback
|
|
||||||
* @kcontrol: mixer control
|
|
||||||
* @uinfo: control element information
|
|
||||||
*
|
|
||||||
* Callback to provide information about an external enumerated
|
|
||||||
* single mixer.
|
|
||||||
*
|
|
||||||
* Returns 0 for success.
|
|
||||||
*/
|
|
||||||
int snd_soc_info_enum_ext(struct snd_kcontrol *kcontrol,
|
|
||||||
struct snd_ctl_elem_info *uinfo)
|
|
||||||
{
|
|
||||||
struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
|
|
||||||
|
|
||||||
uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
|
|
||||||
uinfo->count = 1;
|
|
||||||
uinfo->value.enumerated.items = e->max;
|
|
||||||
|
|
||||||
if (uinfo->value.enumerated.item > e->max - 1)
|
|
||||||
uinfo->value.enumerated.item = e->max - 1;
|
|
||||||
strcpy(uinfo->value.enumerated.name,
|
|
||||||
e->texts[uinfo->value.enumerated.item]);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(snd_soc_info_enum_ext);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* snd_soc_info_volsw - single mixer info callback
|
* snd_soc_info_volsw - single mixer info callback
|
||||||
* @kcontrol: mixer control
|
* @kcontrol: mixer control
|
||||||
|
|
Loading…
Reference in New Issue
Block a user