Commit cdffa775 authored by Peter Ujfalusi's avatar Peter Ujfalusi Committed by Mark Brown
Browse files

ASoC: core: Introduce SOC_DOUBLE_R_VALUE macro



With the new macro we can remove duplicated code
for the SOC_DOUBLE_R type of controls.

Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 460acbec
Loading
Loading
Loading
Loading
+10 −9
Original line number Original line Diff line number Diff line
@@ -37,6 +37,10 @@
#define SOC_SINGLE_VALUE_EXT(xreg, xmax, xinvert) \
#define SOC_SINGLE_VALUE_EXT(xreg, xmax, xinvert) \
	((unsigned long)&(struct soc_mixer_control) \
	((unsigned long)&(struct soc_mixer_control) \
	{.reg = xreg, .max = xmax, .platform_max = xmax, .invert = xinvert})
	{.reg = xreg, .max = xmax, .platform_max = xmax, .invert = xinvert})
#define SOC_DOUBLE_R_VALUE(xlreg, xrreg, xshift, xmax, xinvert) \
	((unsigned long)&(struct soc_mixer_control) \
	{.reg = xlreg, .rreg = xrreg, .shift = xshift, .rshift = xshift, \
	.max = xmax, .platform_max = xmax, .invert = xinvert})
#define SOC_SINGLE(xname, reg, shift, max, invert) \
#define SOC_SINGLE(xname, reg, shift, max, invert) \
{	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
{	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
	.info = snd_soc_info_volsw, .get = snd_soc_get_volsw,\
	.info = snd_soc_info_volsw, .get = snd_soc_get_volsw,\
@@ -60,9 +64,8 @@
{	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \
{	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \
	.info = snd_soc_info_volsw_2r, \
	.info = snd_soc_info_volsw_2r, \
	.get = snd_soc_get_volsw_2r, .put = snd_soc_put_volsw_2r, \
	.get = snd_soc_get_volsw_2r, .put = snd_soc_put_volsw_2r, \
	.private_value = (unsigned long)&(struct soc_mixer_control) \
	.private_value = SOC_DOUBLE_R_VALUE(reg_left, reg_right, xshift, \
		{.reg = reg_left, .rreg = reg_right, .shift = xshift, \
					    xmax, xinvert) }
		.max = xmax, .platform_max = xmax, .invert = xinvert} }
#define SOC_DOUBLE_TLV(xname, reg, shift_left, shift_right, max, invert, tlv_array) \
#define SOC_DOUBLE_TLV(xname, reg, shift_left, shift_right, max, invert, tlv_array) \
{	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname),\
{	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname),\
	.access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |\
	.access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |\
@@ -79,9 +82,8 @@
	.tlv.p = (tlv_array), \
	.tlv.p = (tlv_array), \
	.info = snd_soc_info_volsw_2r, \
	.info = snd_soc_info_volsw_2r, \
	.get = snd_soc_get_volsw_2r, .put = snd_soc_put_volsw_2r, \
	.get = snd_soc_get_volsw_2r, .put = snd_soc_put_volsw_2r, \
	.private_value = (unsigned long)&(struct soc_mixer_control) \
	.private_value = SOC_DOUBLE_R_VALUE(reg_left, reg_right, xshift, \
		{.reg = reg_left, .rreg = reg_right, .shift = xshift, \
					    xmax, xinvert) }
		.max = xmax, .platform_max = xmax, .invert = xinvert} }
#define SOC_DOUBLE_S8_TLV(xname, xreg, xmin, xmax, tlv_array) \
#define SOC_DOUBLE_S8_TLV(xname, xreg, xmin, xmax, tlv_array) \
{	.iface  = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \
{	.iface  = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \
	.access = SNDRV_CTL_ELEM_ACCESS_TLV_READ | \
	.access = SNDRV_CTL_ELEM_ACCESS_TLV_READ | \
@@ -155,9 +157,8 @@
	.tlv.p = (tlv_array), \
	.tlv.p = (tlv_array), \
	.info = snd_soc_info_volsw_2r, \
	.info = snd_soc_info_volsw_2r, \
	.get = xhandler_get, .put = xhandler_put, \
	.get = xhandler_get, .put = xhandler_put, \
	.private_value = (unsigned long)&(struct soc_mixer_control) \
	.private_value = SOC_DOUBLE_R_VALUE(reg_left, reg_right, xshift, \
		{.reg = reg_left, .rreg = reg_right, .shift = xshift, \
					    xmax, xinvert) }
		.max = xmax, .platform_max = xmax, .invert = xinvert} }
#define SOC_SINGLE_BOOL_EXT(xname, xdata, xhandler_get, xhandler_put) \
#define SOC_SINGLE_BOOL_EXT(xname, xdata, xhandler_get, xhandler_put) \
{	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
{	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
	.info = snd_soc_info_bool_ext, \
	.info = snd_soc_info_bool_ext, \