|
@@ -36,6 +36,11 @@
|
|
|
{.reg = xreg, .rreg = xreg, .shift = shift_left, \
|
|
|
.rshift = shift_right, .max = xmax, .platform_max = xmax, \
|
|
|
.invert = xinvert, .autodisable = xautodisable})
|
|
|
+#define SOC_DOUBLE_S_VALUE(xreg, shift_left, shift_right, xmin, xmax, xsign_bit, xinvert, xautodisable) \
|
|
|
+ ((unsigned long)&(struct soc_mixer_control) \
|
|
|
+ {.reg = xreg, .rreg = xreg, .shift = shift_left, \
|
|
|
+ .rshift = shift_right, .min = xmin, .max = xmax, .platform_max = xmax, \
|
|
|
+ .sign_bit = xsign_bit, .invert = xinvert, .autodisable = xautodisable})
|
|
|
#define SOC_SINGLE_VALUE(xreg, xshift, xmax, xinvert, xautodisable) \
|
|
|
SOC_DOUBLE_VALUE(xreg, xshift, xshift, xmax, xinvert, xautodisable)
|
|
|
#define SOC_SINGLE_VALUE_EXT(xreg, xmax, xinvert) \
|
|
@@ -171,11 +176,9 @@
|
|
|
.access = SNDRV_CTL_ELEM_ACCESS_TLV_READ | \
|
|
|
SNDRV_CTL_ELEM_ACCESS_READWRITE, \
|
|
|
.tlv.p = (tlv_array), \
|
|
|
- .info = snd_soc_info_volsw_s8, .get = snd_soc_get_volsw_s8, \
|
|
|
- .put = snd_soc_put_volsw_s8, \
|
|
|
- .private_value = (unsigned long)&(struct soc_mixer_control) \
|
|
|
- {.reg = xreg, .min = xmin, .max = xmax, \
|
|
|
- .platform_max = xmax} }
|
|
|
+ .info = snd_soc_info_volsw, .get = snd_soc_get_volsw,\
|
|
|
+ .put = snd_soc_put_volsw, \
|
|
|
+ .private_value = SOC_DOUBLE_S_VALUE(xreg, 0, 8, xmin, xmax, 7, 0, 0) }
|
|
|
#define SOC_ENUM_DOUBLE(xreg, xshift_l, xshift_r, xitems, xtexts) \
|
|
|
{ .reg = xreg, .shift_l = xshift_l, .shift_r = xshift_r, \
|
|
|
.items = xitems, .texts = xtexts, \
|
|
@@ -545,12 +548,6 @@ int snd_soc_get_volsw_sx(struct snd_kcontrol *kcontrol,
|
|
|
struct snd_ctl_elem_value *ucontrol);
|
|
|
int snd_soc_put_volsw_sx(struct snd_kcontrol *kcontrol,
|
|
|
struct snd_ctl_elem_value *ucontrol);
|
|
|
-int snd_soc_info_volsw_s8(struct snd_kcontrol *kcontrol,
|
|
|
- struct snd_ctl_elem_info *uinfo);
|
|
|
-int snd_soc_get_volsw_s8(struct snd_kcontrol *kcontrol,
|
|
|
- struct snd_ctl_elem_value *ucontrol);
|
|
|
-int snd_soc_put_volsw_s8(struct snd_kcontrol *kcontrol,
|
|
|
- struct snd_ctl_elem_value *ucontrol);
|
|
|
int snd_soc_info_volsw_range(struct snd_kcontrol *kcontrol,
|
|
|
struct snd_ctl_elem_info *uinfo);
|
|
|
int snd_soc_put_volsw_range(struct snd_kcontrol *kcontrol,
|