|
|
|
@ -242,6 +242,14 @@ |
|
|
|
|
.get = xhandler_get, .put = xhandler_put, \
|
|
|
|
|
.private_value = SOC_DOUBLE_R_VALUE(reg_left, reg_right, xshift, \
|
|
|
|
|
xmax, xinvert) } |
|
|
|
|
#define SOC_SINGLE_MULTI_EXT(xname, xreg, xshift, xmax, xinvert, xcount,\ |
|
|
|
|
xhandler_get, xhandler_put) \
|
|
|
|
|
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
|
|
|
|
|
.info = snd_soc_info_multi_ext, \
|
|
|
|
|
.get = xhandler_get, .put = xhandler_put, \
|
|
|
|
|
.private_value = (unsigned long)&(struct soc_multi_mixer_control) \
|
|
|
|
|
{.reg = xreg, .shift = xshift, .rshift = xshift, .max = xmax, \
|
|
|
|
|
.count = xcount, .platform_max = xmax, .invert = xinvert} } |
|
|
|
|
#define SOC_SINGLE_EXT_TLV(xname, xreg, xshift, xmax, xinvert,\ |
|
|
|
|
xhandler_get, xhandler_put, tlv_array) \
|
|
|
|
|
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
|
|
|
|
@ -667,6 +675,8 @@ int snd_soc_get_strobe(struct snd_kcontrol *kcontrol, |
|
|
|
|
struct snd_ctl_elem_value *ucontrol); |
|
|
|
|
int snd_soc_put_strobe(struct snd_kcontrol *kcontrol, |
|
|
|
|
struct snd_ctl_elem_value *ucontrol); |
|
|
|
|
int snd_soc_info_multi_ext(struct snd_kcontrol *kcontrol, |
|
|
|
|
struct snd_ctl_elem_info *uinfo); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* struct snd_soc_jack_pin - Describes a pin to update based on jack detection |
|
|
|
@ -1295,6 +1305,11 @@ struct soc_mreg_control { |
|
|
|
|
unsigned int regbase, regcount, nbits, invert; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
struct soc_multi_mixer_control { |
|
|
|
|
int min, max, platform_max, count; |
|
|
|
|
unsigned int reg, rreg, shift, rshift, invert; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/* enumerated kcontrol */ |
|
|
|
|
struct soc_enum { |
|
|
|
|
int reg; |
|
|
|
|